我已经用MySQL用php完成了一个登录系统,但我现在想要的是,当我在login.php中写我的用户名时,它也可以是小写字母,当我登录时,我的用户名将被更改为原始用户名,它是如何在数据库中注册的。
<?php
session_start();
if(isset($_SESSION["username"]))
header("location:h_inc/h_pages/me.php");
if(isset($_POST["submit"])){
if(empty($_POST["username"]) || empty($_POST["password"])){
$empty_fields = array();
$empty_fields['error'] = "<font color=\"red\">Please fill all fields.</font>";
}else{
if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($_POST["username"])."' AND password = '".mysql_real_escape_string(md5($_POST["password"]))."' AND rank = '9'")) > 0){
$empty_fields['true'] = "<font color=\"green\">You are now logged in.</font>";
$_SESSION["username"] = $_POST["username"];
$_SESSION["password"] = md5($_POST["password"]);
echo "<script type='text/javascript'> window.location.href = 'index.php';</script>";
}else{
$empty_fields['error'] = "<font color=\"red\">Your datas are incorrect.</font>";
}
}
}
?>发布于 2015-01-27 20:13:14
不使用mysql_num_rows,而是从查询中获取结果,并使用其中的值显示用户名。
正如@Naruto在评论中指出的那样:考虑一下切换到PDO。
发布于 2015-01-27 20:32:16
返回您的查询值,然后从返回值中获取原始名称,并将其赋值到会话变量中
$result = mysql_query("SELECT * FROM users WHERE username = '".mysql_real_escape_string($_POST["username"])."' AND password = '".mysql_real_escape_string(md5($_POST["password"]))."' AND rank = '9'");
if($result) {
while ($row = mysql_fetch_array($result)) {
$username = $row["username"];
}
$_SESSION["username"] = $username;
$_SESSION["password"] = md5($_POST["password"]);
echo "<script type='text/javascript'> window.location.href = 'index.php';</script>";
}else{
$empty_fields['error'] = "<font color=\"red\">Your datas are incorrect.</font>";
}https://stackoverflow.com/questions/28169547
复制相似问题