会有个别会员出现登录后用户名显示不全,老是个别含f用户名登陆后差个f,求教懂得大神,
个人感觉是使用邮箱登陆后账号session不全
login.php里面改
$row1=$dsql->GetOne("select * from sea_member where state=1 and username='$userid'");
if($row1['username']==$userid AND $row1['password']==$pwd)
为
$row1=$dsql->GetOne("select * from sea_member where state=1 and (username='$userid' OR email = '$userid')");
if(($row1['username']==$userid OR $row1['email']==$userid ) AND $row1['password']==$pwd)
增加会员邮箱登录参考资料:
php登录地址,用php登录用户名或电子邮件地址
电子邮件和用户名的login参数相同.如果您有一个接受任何一个的登录框,则不完全错误.
如果您不确定它是电子邮件还是用户名,您可以将条件放在查询中.
$login=$_REQUEST[‘login’];
$query = “select * from user_db where ( username=’$login’ OR email = ‘$login’) and password=’$password'”
编辑:
现在更加优选类似PDO的解决方案,因为上述内容受SQL注入.逻辑保持不变,但你看起来像这样:
$query = “
SET @username = :username
SELECT * FROM user_db
WHERE ( username = @username OR email = @username)
AND password = :password
“;
$statement = $pdoObject->prepare($query);
$statement->bindValue(“:username”, $login, PDO::PARAM_STR);
$statement->bindValue(“:password”, $password, PDO::PARAM_STR);
$statement->execute();












