2016-11-04 89 views
-1

我想創建一個登錄頁面,以表格形式顯示來自特定用戶數據庫的數據,最多4列和1行,也應該能夠更新表格數據然後註銷。任何人都可以用腳本來幫助我。我需要它使用PHP,MySQL來完成。我已經嘗試過,但我不知道該做什麼。在php登錄頁面和編輯

<html> 
<form action="login.php" method="post"> 
    Username: <input type="text" name="username"><p> 
    Password: <input type="password" name="password"><p> 
       <input type="submit" value="Log in!" > 
</form>   

<?php 

session_start(); 

$username = $_POST['username']; 
$password = $_POST['password']; 

if ($username&&$password) 
{ 
    $connect = mysql_connect("localhost", "root", "") or die("Couldn't connect to the database!"); 
    mysql_select_db("login") or die("Couldn't find database"); 

    $query = mysql_query("SELECT * FROM users WHERE username='$username'"); 

    $numrows = mysql_num_rows($query); 

    if ($numrows!==0) 
    { 
     while($row = mysql_fetch_assoc($query)) 
     { 
      $dbusername = $row['username']; 
      $dbpassword = $row['password']; # code... 
     } 

     if ($username==$dbusername&&$password==$dbpassword) 
     { 
      echo "You are logged in!";# 
      @$_SESSION['usernme'] = $username; 
     } 
     else 
      echo "Your password is incorrect!"; 
    # code... 
    } 
    else 
     die("That user doesn't exists!"); 

} 
else 
    die("Please enter a username and password!") 
?> 
+1

'mysql_connect' < - 請不要使用已棄用的'mysql_ *'擴展名。它已經從PHP中刪除***使用'PDO'或'mysqli'代替 –

+0

把'if($ username == $ dbusername && $ password == $ dbpassword)'放在'while'循環中。另一方面,不要使用這個代碼或它的任何部分;這完全不安全。 –

+0

一些評論:1.不要將密碼存儲在數據庫unhashed(&salted)中。 2.不要使用MYSQL,使用PDO或者打開SQL注入。 3.不要給最終用戶太多的關於數據庫用戶的信息,通過回聲出來的錯誤(可用於暴力攻擊)4.學習PHP,HTML,Mysql,javascript等 – Cagy79

回答

0

爲什麼不直接讓MySQL的檢查,如果用戶名和密碼的組合是正確的?

$query = mysqli_query("SELECT * FROM users WHERE username='" . $username . "' AND password = '" . $password . "'");

只有mysqli_num_rows($query) == 1,有一個有效的登錄。不應超過1行。

+0

可能會有什麼不同? ''$ var''和''「。$ var。」''都做同樣的事情。另外,他們的查詢的其餘部分是確定的。一個應該匹配。 –

+0

我的意思是讓MySQL執行檢查用戶名和密碼組合的工作。引用的東西只是我逃避字符串變量的習慣。 ;-) – Koen

+0

從這裏的經驗談起:回答過於寬泛/不清楚的問題有一個傾向,打開一大堆蠕蟲,也有被追趕到深深的兔子洞的風險;我真的很希望你能很好地與你在一起。 –