2016-11-04 57 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

从这里的经验谈起:回答过于宽泛/不清楚的问题有一个倾向,打开一大堆蠕虫,也有被追赶到深深的兔子洞的风险;我真的很希望你能很好地与你在一起。 –