你能帮我吗。。
<?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?
我尝试了一些方法,但没有成功
注意:代码与数据库有连接,但我不在这里写。
因此,为了纠正您的错误,您粘贴的上一个代码已经使用了数据库:
// 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);
现在回答您的问题:要登录用户,您必须将用户密码和用户名与其他地方存储的密码和用户名进行比较。我强烈建议使用数据库来保存这些存储的信息,因为它往往非常敏感,而将用户名和密码存储在文本文件中,在需要时提取这些信息的风险更大,速度也更慢。现在,一旦你比较了用户名和密码,如果它们匹配,你可以让以下代码来做你网站需要做的任何事情,如果它们不匹配,则显示一条错误消息,说明它们不匹配:)。
您将需要使用一个数据库。
如果您没有将登录尝试存储在数据库中,您将如何防止用户从不同的会话或不同的浏览器重试?
非常重要:
如果您将密码存储在数据库中,请不要将其存储为纯文本。您应该对密码进行散列并存储结果值,然后当用户尝试登录时,对他们输入的密码进行散列,并比较这些值以检查是否匹配。
作为入门,请参阅PHP密码的安全哈希和salt。