【问题标题】:php isset always returns falsephp isset 总是返回 false
【发布时间】:2016-02-26 13:30:53
【问题描述】:

我承认我是新手,但我花了 2 天时间试图让以下代码在按下提交按钮时回显“按下或未按下”。 我剥离了所有不相关的代码,并留在下面。 这真的是基本的东西,我读过的每个论坛都建议我的代码是正确的。 我只是使用一台装有 Windows 10 和 IE 的笔记本电脑连接到 WAMP 服务器。

<!doctype html>
<html>
<head>
<meta charset="iso-8859-1">
<title>SystemAdministrator</title>
<link href="pval.css" rel="stylesheet">
<link href="system_administrator.css" rel="stylesheet">

<?php
//test to see if submit button was pressed or not
if (isset($_post['create_userdb'])) {
   echo 'pressed';
   $username = $_POST['username'];
   echo $username;
} else {
   echo 'not pressed';
   $username = $_POST['username'];
   echo $username;
}
?>

</head>
<body>
<Form name ="form1" Method ="POST" Action ="system_administrator.php">
<INPUT TYPE = "TEXT" VALUE ="username" Name ="username">
<INPUT TYPE = "Submit" Name = "create_userdb" VALUE = "create_userdb">
</FORM>
</body>
</html>

【问题讨论】:

  • 按钮不向php返回值。
  • @YUNOWORK 是的。
  • $_post['create_userdb'] 将其更改为 $_POST['create_userdb']
  • 非常感谢,这行得通。

标签: php html


【解决方案1】:

$_post 输入错误。应该是 $_POST

if (isset($_POST['create_userdb'])) {
   echo 'pressed';
   $username = $_POST['username'];
   echo $username;
} else {
   echo 'not pressed';
   $username = $_POST['username'];
   echo $username;
}

【讨论】:

    【解决方案2】:

    问题是小写$_post - 它应该如下$_POST

    <!doctype html>
    <html>
        <head>
            <meta charset="iso-8859-1">
            <title>SystemAdministrator</title>
            <link href="pval.css" rel="stylesheet">
            <link href="system_administrator.css" rel="stylesheet">
            <?php
            if( $_SERVER['REQUEST_METHOD']=='POST' ){
                if ( isset( $_POST['create_userdb'])) {
                   echo 'pressed';
                   $username = $_POST['username'];
                   echo $username;
                } else {
                   echo 'not pressed';
                   $username = $_POST['username'];
                   echo $username;
                }
            }
            ?>
        </head>
        <body>
            <Form name="form1" Method ="POST">
                <INPUT TYPE="TEXT" VALUE="username" Name="username" />
                <INPUT TYPE="Submit" Name="create_userdb" VALUE="create_userdb" />
            </FORM>
        </body>
    </html>
    

    【讨论】:

      【解决方案3】:
      1. $_post 错误。你需要$_POST

      2. 提交按钮不向 PHP 返回值。如果您使用var_dump($_POST),则可以从表单中看到所有发布的数据,而create_userdb 将不会出现。

      如果你想检查按钮是否被按下,你可以像这样简单地检查 $_POST 数组:

      <?php
      //test to see if submit button was pressed or not
      if (isset($_POST)) {
         echo 'pressed';
         $username = $_POST['username'];
         echo $username;
      } else {
         echo 'not pressed';
         $username = $_POST['username'];
         echo $username;
      }
      ?>
      

      编辑:所以在我的情况下,它没有返回任何东西。已安装 PHP 5.3。

      test.html

      <!DOCTYPE html>
      <html>
      <head lang="en">
        <meta charset="UTF-8">
        <title></title>
      </head>
      <body>
        <form method="POST" enctype="multipart/form-data" action="test.php">
          <input type="text" value="username" name="username">
          <input type="submit" name="create_userdb" value="create_userdb">
        </form>
      </body>
      </html>
      

      Test.php

      <?php
      var_dump($_POST);
      

      输出:

      array (size=1)
      'username' => string 'username' (length=8)
      

      【讨论】:

      猜你喜欢
      • 2017-01-23
      • 1970-01-01
      • 2012-12-14
      • 2020-12-27
      • 2014-08-26
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多