如何让用户既用户名和电子邮件在PHP登录?

我目前有问题,允许用户与两个用户名或电子邮件,进入登录并与数据库匹配吧,这里是我的代码:

<?php //Login Script if (isset($_POST["user_login"]) && isset($_POST["password_login"])) { $user_login = $_POST["user_login"]; $password_login = $_POST["password_login"]; $md5password_login = md5($password_login); $sql = mysqli_query($conn, "SELECT id FROM users2 WHERE username='$user_login' AND password='$md5password_login' LIMIT 1"); // query the person //Check for their existance $userCount = mysqli_num_rows($sql); //Count the number of rows returned if ($userCount == 1) { while($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)) { $rahul = $row["id"]; } $_SESSION["id"] = $rahul; $_SESSION["user_login"] = $user_login; $_SESSION["password_login"] = $password_login; exit("<meta http-equiv=\"refresh\" content=\"0; url=./home.php\">"); } else { echo 'That information is incorrect, try again'; exit(); } } ?>

我不知道是什么在mysqli_query添加到允许用户从用户名和电子邮件都登录。

--------------解决方案-------------

简单的改变您的查询像这样

$sql = mysqli_query($conn, "SELECT id FROM users2 WHERE (username='$user_login' OR `email`='$user_login') AND password='$md5password_login' LIMIT 1"); // query the person

改变你的SQL查询是这样的:

"SELECT id FROM users2 WHERE (username='$user_login' OR email='$user_login') AND password='$md5password_login' LIMIT 1"

查询将请使用用户名或电子邮件作为主要的登录键,密码为必填字段。

"SELECT id FROM users2 WHERE ( username='$user_login' OR email='$user_login') AND password='$md5password_login' LIMIT 1"

这里$user_login可以是用户名或电子邮件。

为了安全必须转义像输入

$user_login = mysqli_real_escape_string($_POST["user_login"]);
$password_login = mysqli_real_escape_string($_POST["password_login"]);

分类:php 时间:2012-03-18 人气:0
本文关键词: PHP
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.324 (s). 9 q(s)