首页 文章

php isset($ _ post)无法正常工作? [关闭]

提问于
浏览
-2

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

    你的代码是正确的 .

    它仅在您提交表单时有效 .

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

  • 0

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

    isset() . 这是一个内置函数,用于检查是否已设置变量 . 在圆括号之间,键入要检查的isset() . 对我们来说,这是$ _POST ['Submit'] . 如果用户刚刷新页面,则不会为“提交”按钮设置任何值 . 如果用户单击了“提交”按钮,则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(). 的返回值

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

    在action.php

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

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

  • 0

    为了鲁棒性,最好根据请求检查方法 .
    这是表单处理器验证发布请求的简单示例 .

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

    您仍然需要根据所需字段检查 isset .

相关问题