use*_*111 8 html php checkbox undefined
我似乎在这里发生了奇怪的事情.如果我检查表单上的复选框,那么php脚本运行完美.如果我不检查框,php报告另一个变量的未定义索引.
那是使用IIS localhost,检查事情.
在网络上,无论如何,已发布的相同脚本都可以工作.好吧,几乎完全相同.我在本地添加了一个变量'test'POST-ed到php并与硬编码值进行比较.就这样.
这是复选框的html:
<tr>
<td>Publish Comment?</td>
<td><input name="publishok" value="NO" type="checkbox"> Check Box For Do spanstyle="font-weight: bold;">Not</span> Publish</td>
</tr>
<tr>
Run Code Online (Sandbox Code Playgroud)
这里是变量的php,'publishok':
$IP = $_SERVER["REMOTE_ADDR"];
$publishok = $_POST['publishok'];
$test = $_POST['test'];
if ($test != 'park') die ("Wrong input. Sorry. Go back, try again");
Run Code Online (Sandbox Code Playgroud)
我怀疑我的编辑器PSPad正在添加虚假(和不可见)字符代码或其他东西,所以我升级到最新版本.没有不同.
想不出什么可能导致这种情况.
有人可以帮忙吗?
发生这种情况是因为如果未选中复选框的数据,则不会将其发送到服务器.对此有点不用是在复选框之前使用具有相同名称的隐藏输入字段,因此如果取消选中该复选框,则会发送该值.
<input name="publishok" value="0" type="hidden">
<input name="publishok" value="NO" type="checkbox">
Run Code Online (Sandbox Code Playgroud)
我相信如果未选择/选中,复选框和单选按钮不会发送获取/发布数据(您可以通过在 $_GET/$_POST 上执行 var_dump/print_r 来验证这一点),因此您应该执行以下操作:
if(isset($_POST['publishok'])){
$publishok = $_POST['publishok'];
}else{
$publishok = "";#default value
}
Run Code Online (Sandbox Code Playgroud)