这个php登陆代码总是不成功。请看看这是哪里有有关问题

WBOY
Release: 2016-06-13 12:53:53
Original
910 people have browsed it

这个php登陆代码总是不成功。请看看这是哪里有问题 ?

<?php<br />
<br />
 session_start();<br />
 $conn=mysql_connect("localhost","admin","admin") or die ("数据库链接错误".mysql_error());<br />
 mysql_select_db('member',$conn) or die("选择数据库有错".mysql_error());<br />
<br />
 define(ALL_PS, "php123");<br />
<br />
if($_POST[submit])<br />
{<br />
$username=str_replace(" ","",$_POST[username]);<br />
$sql="select * from user_list where 'username' ='$username'";<br />
$query=mysql_query($sql);<br />
$ps = $us ? md5($_POST[password].ALL_PS)==$row[password] : FALSE;<br />
<br />
if($ps){<br />
	$_SESSION[uid]=$row[uid];<br />
	$_SESSION[user_shell]=md5($row[username].$row[password].ALL_PS);<br />
	echo "ok";<br />
}else{<br />
	echo "no";<br />
}<br />
<br />
}<br />
<br />
?><br />
<br />
<form action="" method="post""><br />
用户:<input type="text" name="user" /><br /><br />
密码:<input type="password" name="password" /><br /><br />
<input type="submit" name="submit" value="tttt" /><br />
</form><br />
Copy after login




总是输出no


------解决方案--------------------
if($ps){ ???
在你的代码中 $ps 没有机会为真,所以只能输出 no

代码中唯一对 $ps 赋值的地方是
$ps = $us ? md5($_POST[password].ALL_PS)==$row[password] : FALSE;
由于 $us 没有被赋值,所以 $ps 只能为 FALSE

if($_POST[submit])
{
$username=str_replace(" ","",$_POST[username]);
$sql="select * from user_list where 'username' ='$username'";
$query=mysql_query($sql);
$ps = $us ? md5($_POST[password].ALL_PS)==$row['password'] : FALSE;
应写作:
if($_POST['submit'])<br />
{<br />
$username=str_replace(" ","",$_POST['username']);<br />
$sql="select * from user_list where `username` ='$username'";<br />
$query=mysql_query($sql);<br />
$row = mysql_fetch_assoc($query);<br />
$ps = $row['username'] ? md5($_POST['password'].ALL_PS)==$row[password] : FALSE;<br />
Copy after login


------解决方案--------------------
$sql="select * from user_list where 'username' ='$username'";

把单引号去了。
------解决方案--------------------
user" />

$_POST['username']

这两个写成一样的
------解决方案--------------------
$sql="select * from user_list where 'username' ='".$username."'";
------解决方案--------------------
var_dump($row);看下有没有数据
------解决方案--------------------
你的代码可能有多个错误
你一个一个试,永远也找不到原因的。。。
你先一步步把你的值用var_dump打印出来,看看结果吧
我们只是帮你分析出可能的原因
------解决方案--------------------

引用:
echo var_dump($row);  结果输出:bool(false) 

是下面这几句代码的问题 ?

PHP code?1234$username=str_replace(" ","",$_POST[username]);$sql="select * from user_list where 'username' ='$username'";$query……
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!