php开发会员登陆系统时不能访问数据库第一条以后的存储数据

来源:百度知道 编辑:UC知道 时间:2024/05/25 10:34:07
我的数据库本身存有三组用户名和密码信息,用第一组存储的用户名和密码登陆时会显示登陆成功,但用其它两组登陆的时候却显示用户名或密码错误。代码如下:

<?php

include("config.php"); //连接访问数据库页面

if($_POST[submit]){
$username=str_replace(" ","","username"); //用户名不能有空格
$sql="select * from user_list where 'username'='$username'";
$query=mysql_query($sql);
$us=is_array($row=mysql_fetch_array($query)); //判断是否取到数据库的值

$ps=$us ? md5($_POST[password].ALL_PS)==$row[password] : FALSE; //与数据库存储的密码值进行对比,相同为真,否则为假

if($ps){

$_SESSION[uid]=$row[uid];
$_SESSION[user_shell]=md5($row[username].$row[password].ALL_PS);

echo "登陆成功";
}else{
echo "密码或者用户名错误";
}

}
//print_r ($row);

?>

<form action=""" method="post">

用户名:<input type

你确定用户名只是 username吗?

$username = str_replace(" ","","username"); //用户名不能有空格

//你的这句话,也就是 $username = 'username';
//你的意思是: $username = str_replace(' ', '', $_POST['username']);

$sql="select * from user_list where 'username'='$username'";
//username为字段,加单引号是错误的,你是想加执行引号? `username`

//另外,数组里面的字符索引最好都加上单引号或双引号

$sql="select * from user_list where 'username'='$username'";
应该写成$sql="select * from user_list where 'username'='".$username."'";单引号不会解析变量。