2016-12-05 35 views
0

我想从我创建的登录窗体回显密码哈希值。我不知道为什么我得到错误**未定义的索引:signinbtn在D:\ XAMPP \ htdocs \ login_page.php **中。我为我的表单使用POST方法。当我点击signinbtn时没有任何反应。尝试从HTML按钮POST时出现未定义的索引错误

<form action="login_page.php" method="POST"> 
    <div id="container" name="container"> 
     <input type="email" id="email" name="email" placeholder="Email"> 
     <input type="password" id="pswd" name="pswd" placeholder="Password"> 
     <input type="submit" name="signinbtn" value="Login"/> 

     <div id="logo" name="logo"> 
      <img src="captifiy.png" alt="logo" id="logo" width="194" height="218px"/> 
     </div> 

     <div class="forgotpw"><a href="#">Need Help Logging In?</a> 
     </div> 
    </div> 
</form> 
<?php 
if($_POST['signinbtn']) { 
    $email = $_POST['email']; 
    $pswd = $_POST['pswd']; 

    if($email) { 
     if($pswd) { 
      require("dbh.php"); 
      $pswd = md5(md5("wrfoiv" . $pswd . "iujq3b")); 
      echo "$pswd"; 
      $query = mysql_query(""); 
      mysql_close(); 
     } else { 
      echo "You must enter your password."; 
     } 
    } else { 
     echo "You must enter your email."; 
    } 
} 
+0

这是在你第一次加载页面时发生的吗? – bugwheels94

+0

如果你正在编写新代码,** _ please_不要使用'mysql_ *'函数**。它们已经老化并且破损,在PHP 5.5中已经被弃用了(这已经很旧了,它甚至不再接收安全更新),并且在PHP 7中完全删除。使用['PDO'](https://secure.php.net/manual /en/book.pdo.php)或['mysqli_ *'](https://secure.php.net/manual/en/book.mysqli.php)替换为_prepared statements_和_parameter binding_。有关详细信息,请参阅http://stackoverflow.com/q/12859942/354577。 – Chris

+0

请不要推出自己的密码哈希解决方案。使用['password_hash()'](https://secure.php.net/manual/en/function.password-hash.php)和['password_verify()'](https://secure.php.net/ manual/en/function.password-verify.php)。 – Chris

回答

0

if ($_POST['signinbtn']) { 

更改线路

if (isset($_POST['signinbtn'])) { 

此检查变量的存在,以防止代码崩溃加载页面,第一次当。因为在那个时候$ _POST数组不存在,所以你得到这个错误

+0

修复它。完全错过了。谢谢! –

相关问题