使用POST方法进行PHP登录验证

时间:2014-06-21 13:35:05

标签: php validation login

我尝试了一个简单的代码来进行登录......当我提交详细信息时它完全正常...并在屏幕上给出正确的响应..但是当我第一次在浏览器上加载它时会显示一条错误消息说: 注意:未定义的索引:第14行的C:\ wamp \ www \ test \ first.php中的usser 和 注意:未定义的索引:第15行的C:\ wamp \ www \ test \ first.php中的usser 无法识别它存在的问题。

<html>
    <head>
        <title>My First PHP Program!</title>
         <link type="text/css" rel="stylesheet" href="stylesheet.css"/>
    </head>

    <body>
        <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
          <p>username <input type="text" name="usser"/></p>
          <p>password <input type="password" name="pass" /></p>
          <p>   <input type="submit" name="submit"  /></p>
        </form>
        <?php 
            $name = $_REQUEST['usser']; 
            $pas=$_REQUEST['pass'];
            if($name=="mandeep"&&$pas=="mani"){
                echo "successful";
            }
            else{
                echo "Login Failed";
            }
       ?>
    </body>
</html>

3 个答案:

答案 0 :(得分:2)

您需要先验证是否已设置该变量。如果您正在使用帖子操作,我建议您使用$_POST变量。并使用===进行相同的比较。

    <?php 
        if (isset($_POST['usser']) && isset($_POST['pass'])){
            $name = $_POST['usser']; 
            $pas= $_POST['pass'];
            if($name === "mandeep" && $pas === "mani"){
                echo "successful";
            }
            else{
                echo "Login Failed";
            }
        }
   ?>

POST php reference
PHP comparison operators

答案 1 :(得分:0)

您必须检查表单的新帖子

<?php 
if (!empty($_POST)) {
    $name = $_REQUEST['usser']; 
    $pas=$_REQUEST['pass'];
   if($name=="mandeep"&&$pas=="mani"){
  echo "successful";
   }
   else{
   echo "Login Failed";
   } }
   ?>

答案 2 :(得分:0)

当页面加载时,你仍然在表单后面的php块中运行代码。

您可以使用isset来验证它已被设置。