2016-04-17 26 views
0

你能幫助我..嘗試(3倍),在用戶登錄的PHP

<?php 
    session_start(); // Starting Session 
$error=''; // Variable To Store Error Message 
if (isset($_POST['submit'])) { 
    if (empty($_POST['ID']) || empty($_POST['password'])) { 
     $error = "You must enter a username and password"; 
    } 
    else 
    { 
     // Define $username and $password 
     $date = date('m/d/y - h:i A'); 
     $ID=$_POST['ID']; 
     $password=$_POST['password']; 
     // To protect MySQL injection for Security purpose 
     $ID = stripslashes($ID); 
     $password = stripslashes($password); 
     $ID = mysql_real_escape_string($ID); 
     $password = mysql_real_escape_string($password); 
     // Selecting Database 
     $db = mysql_select_db($database, $connection); 

     // SQL query to fetch information of registerd users and finds user match. 
     $query = mysql_query("SELECT ID, password, pin, time FROM facultymember ". 
          "WHERE password='$password' AND ID='$ID'", $connection); 



     $query2 = mysql_query("SELECT time FROM facultymember ". 
          "WHERE password='$password' AND ID='$ID'", $connection); 
     $row = mysql_fetch_assoc($query); 

     list($lastlogin) = mysql_fetch_row($query2); 

     $update = mysql_query("UPDATE facultymember SET time=NOW() WHERE ID='$ID'",$connection); 
     $_SESSION['lastlogin'] = $lastlogin; 


     if (($_POST['ID']) != ($row['ID']) ||($_POST['password']) != ($row['password'])) { 
     $error = "You entered an invalid username or password, your attempt has been stored."; 

     } else { 

     if(false != $row){ // user info exists/correct 
      $_SESSION['login_user'] = $row['ID']; 

      if('1' == $row['pin']) { //not admin 
       header("location: homeFM.php"); // Redirecting To Other Page 
       die; 
      } else { 
       //admin 
       header("location: homeA.php"); // Redirecting To Other Page 
       die; 
      } 
     } else { //login doesn't exist 
      $error = "Username or Password is invalid"; 
     } 
     $_SESSION['login_user'] = 1; 
     mysql_close($connection); // Closing Connection 
    } 
} 

} 
?> 

上面的代碼登錄代碼PHP

我如何可以嘗試針對特定用戶ID登錄?

我嘗試了一些方法可以做到這一點,但沒有成功

需要注意的是:該代碼有連接到數據庫,但我不寫在這裏。

回答

0

所以纔來糾正你,你已經粘貼以前的代碼使用數據庫:

// Selecting Database 
    $db = mysql_select_db($database, $connection); 

    // SQL query to fetch information of registerd users and finds user match. 
    $query = mysql_query("SELECT ID, password, pin, time FROM facultymember ". 
         "WHERE password='$password' AND ID='$ID'", $connection); 



    $query2 = mysql_query("SELECT time FROM facultymember ". 
         "WHERE password='$password' AND ID='$ID'", $connection); 
    $row = mysql_fetch_assoc($query); 

    list($lastlogin) = mysql_fetch_row($query2); 

    $update = mysql_query("UPDATE facultymember SET time=NOW() WHERE ID='$ID'",$connection); 
    $_SESSION['lastlogin'] = $lastlogin; 

您的代碼首先檢查是否有人試圖登錄到您的網站的用戶名和密碼:

if (empty($_POST['ID']) || empty($_POST['password'])) { 
    $error = "You must enter a username and password"; 
} 
else 
{ .... } 

然後你的代碼保存的用戶名和密碼,用戶寫進兩個變量,做了一點「清潔」的:

$date = date('m/d/y - h:i A'); 
    $ID=$_POST['ID']; 
    $password=$_POST['password']; 
    // To protect MySQL injection for Security purpose 
    $ID = stripslashes($ID); 
    $password = stripslashes($password); 

現在回答您的問題:要登錄用戶,您必須將用戶密碼和用戶名與其他地方存儲的密碼和用戶名進行比較。我強烈建議使用數據庫來保存這些存儲的信息,因爲它往往非常敏感,並且將用戶名和密碼存儲在文本文件中的風險更高,並且在您需要時提取信息方面會更慢。現在,一旦比較了用戶名和密碼,如果它們匹配,則可以使用以下代碼執行您的網站所需的任何操作,如果它們不匹配,則顯示錯誤消息,說明它們不匹配:)。

0

您將需要使用數據庫。

如果您沒有登錄嘗試存儲在數據庫中,您將如何防止用戶再次嘗試從不同的會話或不同的瀏覽器?

非常重要:

如果您存儲在數據庫中的密碼,那麼請不要將它們存儲爲純文本。您應該散列密碼並存儲結果值,然後當用戶嘗試登錄時,散列它們輸入的密碼並比較值以檢查匹配。

作爲首發,請參閱Secure hash and salt for PHP passwords