2011-07-28 276 views
0

下面的PHP代码呼应错误输入错误的密码之前并给出了 - 注意:未定义指数:密码PHP登录和重定向

<?php 
    //Specify password here 
    $pass='pass'; 
    if($_POST['password']!=$pass) 
    { 
     echo ("<div class='errmg'>Error</div>"); 
    } 
    else 
    { 
     header('Location: admin.php') ; 
    } 
?> 

在下面,我下面的HTML

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
      Enter password: 
      <input name="password" type="password"> 
      <input name="send" type="submit" value="Log in!"> 
     </form> 

请帮我修复这些错误,并使此登录重定向更好

回答

4

如果您还没有提交表格,$_POST为空,所以没有$_POST['password'],就像错误说。经常检查使用它们之前可能会或可能不会被设置的变量是否存在:

if (isset($_POST['password'])) { 
    if ($_POST['password'] == $pass) { 
     header(…); 
    } else { 
     // error 
    } 
} 
+0

提交按钮比我快1秒:P – DaOgre

1

这意味着,$ _ POST [“密码”]设置不正确。我不确定为什么,它看起来在你的代码中找到。我只想看看它是否先设定然后看看它是否正确。

if(isset($_POST['password']) { 
    if($_POST['password'] != $pass) { 
     echo "<div class='errmg'>Error</div>"; 
    } else { 
     header('Location: admin.php'); 
    } 
} 

其次,你应该总是关闭您的HTML标签,无论是输入标签的arent关闭,关闭它们,添加“/>”结尾,而不是仅仅“>”,例如:

<input name="password" type="password" /> 
<input name="send" type="submit" value="Log in!" />