<?php$username=$_POST['username']; 代码如下:
$password=$_POST['password']; $conn=mysql_connect ("localhost","root","2295371c."); if ( !$conn) { die ("连接失败!".mysql_errno()); } mysql_query ("set names utf8",$conn) or die ("编码格式错误!".mysql_errno()); mysql_select_db("demodb",$conn) or die ("连接数据库错误!".mysql_errno()); $sql="select password from users where username=$username"; $res=mysql_query($sql,$conn); if ($row=mysql_fetch_assoc($res)){ if ($row=['password']==md5($password)){ header ("location:123.php"); exit(); } }// header ("location: fail.php"); exit(); mysql_free_result($res); mysql_close($conn);?>
数据库表中的内容:
var_dump($sql);在页面中显示的是:string(49) "select password from users where username=changgy"
var_dump($res);在页面中显示的是:bool(false) 为什么会这样呢?PHP怎么不执行sql语句呢?请大侠指点。
加上引号后,还是跳转到 fail.php页面,没有跳转到123.php页面。我感觉不是这里的问题。
追答if ($row=['password']==md5($password)){
header ("location:123.php");
exit();
}
你这里的$row=['password']==md5($password) 是什么意思? 应该是$row['password']吧
$username 是个字符串 ,要单引号引起来。
望采纳 Thx
追问加上引号后,还是没成功。var_dump($sql)后页面出现:string(51) "select password from users where username='changgy'"
var_dump($res)后页面出现: resource(4) of type (mysql result)。
var_dump($res) 是对象资源,
$res=mysql_query($sql,$conn) or die(mysql_error());
试试
不屏蔽这句话:header ("location: fail.php");跳转到fail.php页面,屏蔽后显示空白页。
本回答被网友采纳还是不可以。这里应该没问题。