我从最近几个小时开始处理这个问题,并且还搜索了有关堆栈溢出的相关问题 . 我有一个简单的HTML表单
<form name="user_verification" action="action.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="submit" value="submit">
</form>
这是action.php文件中的php脚本
if(isset($_POST['submit']))
{
echo 'yes';
}else{
echo 'no';
}
它始终显示“否” . 我用这个测试了我的php脚本
if(1==1)
{
echo 'yes';
}else{
echo 'no';
}
在这种情况下,它显示“是” . 这意味着问题在于isset($ _ POST ['submit'])函数,但我无法找到解决方案 . 请帮助这方面 . 谢谢
5 回答
你的代码是正确的 .
它仅在您提交表单时有效 .
因此,除非您提交表单,否则它将始终打印
no
.如果单击提交按钮,上面的代码将仅显示提交的值 .
isset() . 这是一个内置函数,用于检查是否已设置变量 . 在圆括号之间,键入要检查的isset() . 对我们来说,这是$ _POST ['Submit'] . 如果用户刚刷新页面,则不会为“提交”按钮设置任何值 . 如果用户单击了“提交”按钮,则PHP将自动返回一个值
您也可以使用
var_dump(isset());
// TRUE输出isset().
的返回值你的代码是正确的,它对我有用 . 见for more info .
在index.php中
在action.php
也许在某个地方$ _POST值被清空/取消 . 这可能是由于php配置或安全措施(即http://php.net/manual/en/ini.core.php#ini.enable-post-data-reading) . 您可以检查$ _REQUEST并检查是否可以获得$ _GET值(表单的方法是get) .
为了鲁棒性,最好根据请求检查方法 .
这是表单处理器验证发布请求的简单示例 .
您仍然需要根据所需字段检查
isset
.