很长一段时间我一直使用用户名作为唯一的选项登录到我的网站帐户,但大多数用户忘记了他们的用户名,所以我想添加电子邮件和用户名作为登录选项。如何允许电子邮件以及用户名登录账户?
这里是我的代码来创建会话并登录用户。
<?php
if(isset($_POST["user_login"]) && isset($_POST["password_login"])) {
$user_login = preg_replace('#[^[email protected]_\(\)\']#i', '', $_POST["user_login"]);
$password_login = preg_replace('#[^[email protected]_]#i', '', $_POST["password_login"]);
$md5password_login = md5($password_login);
$sql = mysql_query("SELECT id FROM users WHERE username='$user_login' AND password='$md5password_login' LIMIT 1");
//check for their existance
$userCount = mysql_num_rows($sql); //count the number of rows returned
if ($userCount == 1) {
while($row = mysql_fetch_array($sql)) {
$id = $row["id"];
}
$_SESSION["id"] = $id;
$_SESSION["user_login"] = $user_login;
$_SESSION["password_login"] = $password_login;
exit("<meta http-equiv=\"refresh\" content=\"0\">");
} else {
echo "Your Username or Password is Incorrect. please try again.";
exit();
}
}
?>
如何添加用户名登录电子邮件?
注意:教我php的老师向我展示了如何使用mysql_query,而不是最新版本,我知道它已被弃用,所以我已经更改了所有的查询,这是一个旧代码。
两个用户名和电子邮件应该在你的电子邮件是独一无二的。提交登录表单后,检查字符串是否包含'@',如果是,请检查电子邮件地址和密码,否则请检查用户名和密码 –