php isset($ _ post)无效?

时间:2015-01-02 10:40:42

标签: php forms

我从最近几个小时开始处理这个问题,并且还搜索了有关堆栈溢出的相关问题。我有一个简单的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 个答案:

答案 0 :(得分:0)

也许某处$ _POST值被清空/取消。这可能是由于php配置或安全措施(即http://php.net/manual/en/ini.core.php#ini.enable-post-data-reading)。您可以检查$ _REQUEST并检查是否可以获得$ _GET值(表单的方法是get)。

答案 1 :(得分:0)

如果单击提交按钮,上面的代码将仅显示提交的值。

isset()。这是一个内置函数,用于检查是否已设置变量。在圆括号之间,键入要检查的isset()。对我们来说,这是$ _POST [&#39;提交&#39;]。如果用户刚刷新页面,则不会为“提交”按钮设置任何值。如果用户单击了“提交”按钮,则PHP将自动返回值

$var = '';

// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
    echo "This var is set so I will print.";
}

您也可以使用var_dump(isset()); // TRUE 输出isset().

的返回值

答案 2 :(得分:0)

您的代码是正确的,它对我有用。请参阅此for more info

在index.php中

<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>

in action.php

<?php if(isset($_POST['submit'])) 
 {
 echo 'yes';
 }else{
  echo 'no';
 } ?>

答案 3 :(得分:0)

您的代码是正确的。

仅在您提交表单时才有效。

因此,除非您提交表单,否则它将始终打印no

答案 4 :(得分:0)

为了获得稳健性,最好根据请求检查方法 这是表单处理器验证发布请求的简单示例。

if ('POST' === $_SERVER['REQUEST_METHOD']) {
    if (!isset($_POST['required_data'])) {
        http_send_status(400);
        exit;
    }

    echo 'OK';
}

您仍然需要根据所需字段与isset核对。