Heim >Backend-Entwicklung >PHP-Tutorial > 这个php登陆代码总是不成功。请看看这是哪里有有关问题

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

WBOY
WBOYOriginal
2016-06-13 12:53:53950Durchsuche

这个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 />




总是输出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 />


------解决方案--------------------
$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……
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn