2016-09-22 17 views
1
<?php 
if(array_key_exists("logIn",$_POST)) 
{ 
    $link = mysqli_connect("dbaddress", "dbname", "dbpassword", "dbuser"); 

    if(!$_POST['regno']) 
    { 
     $error .= "Please enter your registration number"; 
    } 
    if(!$_POST['password']) 
    { 
     $error .= "Password is required!"; 
    } 
    if($error!="") 
    { 
     echo "<p>There were errors in your forms!</p>".$error; 
    } 
    else 
    { 
          $query = "SELECT * FROM `users` WHERE RegistrationNo = '".mysqli_real_escape_string($link, $_POST['regno'])."'"; 

       $result = mysqli_query($link, $query); 

       $row = mysqli_fetch_array($result); 

       if (isset($row)) { 

        $hashedPassword = md5(md5($row['id']).$_POST['password']); 

        if ($hashedPassword == $row['password']) { 

         $_SESSION['id'] = $row['id']; 
         header("Location: after_login.php"); 
         } 
        else { 
      $error = "That email/password combination could not be found."; 
          }     
          } 
        else { 
      $error = "That email/password combination could not be found."; 
       } 
       }} 
?> 

    <form method="post"> 
<center><input type="text" placeholder="Enter Username" name="regno"  id="log_username" class="sidelog"/> 
<input type="password" placeholder="Enter Password" name="password" id="real_pass" class="sidelog"/> 
</br><button id="button_log" type="submit" name="logIn" > GO </button> </center> 
</form> 

フォームに記入して送信すると、ページがリロードされます。ヘッダーが機能していません。理由を理解できないようです。フォームを空のままにすると、エラー文字列が正しく表示されます。私はパスワードにmd5暗号化を使用しました。データベースのidのmd5をパスワードと連結し、結果の文字列をmd5で暗号化しました。あなたがafter_login.php` `からリダイレクトされますので、PHPログインフォームがmysqlで動作しない

+0

、この意志はあなたを助けるかもしれない試していませんか?そして、パスワードをハッシュするためにmd5を使用すべきではありません。http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords – jeroen

+0

@jeroenこれは実際のコードにあります。それを質問に含めなかった。私の悪い –

+0

ちなみに、ログインに失敗したときにあなたの '$ error'変数を使って何もしていません。エラー処理を追加し、PHPのエラーを表示します。 – jeroen

答えて

0

は冒頭んが`のsession_start() `

 if ($hashedPassword == $row['password']) { 
      $_SESSION['id'] = $row['id']; 
      header("Location: after_login.php"); 
      die(); 
    } 
+0

私はそれを試しました。あなたがdie()を置くと –

+0

が動作しませんでした。 header()の後は、間違いなく動作します。 – kc1994

関連する問題