mysql_num_rows($result)总是等于0,为什么?急急

sampson2016 2012-05-29 03:00:22
<?php
session_start();
$db=mysql_connect("localhost","root","205513")or die("unable to connect");
mysql_select_db("guanliku",$db)or die(mysql_error($db));
mysql_query("set names gb2312");
$name=(isset($_POST['name']))?trim($_POST['name']):'';
$password=(isset($_POST['passwrod']))?trim($_POST['password']):'';
$redirect=(isset($_REQUEST['redirect']))?$_REQUEST['redirect']:'tobiao.php';
if(isset($_POST['submit'])&&$_POST['submit']=='Login'){
$query='select access_level from cms_users
where '.'name="'.mysql_real_escape_string($name,$db).'"and
'.'password=PASSWORD("'.mysql_real_escape_string($password,$db).'")';
$result=mysql_query($query,$db)or die(mysql_error($db));
if(mysql_num_rows($result)>0){
$_SESSION['name']=$name;
$_SESSION['logged']=1;
header('Refresh: 5; URL='.$redirect);
echo '<p>'.$name.'你将进入你自己的主页!</p>';
echo '<p><a href="'.$redirect.'">click here</a></p>';
}
else{
$error='<p><strong> 不合法的用户名'.
'密码!</strong> 请 <a href="register.php">点击'.'注册</a> 如果你还没有注册</p>';
}
mysql_free_result($result);
}
?>
<html>
<head>
<title>login</title>
</head>
<body>
<?php
if(isset($error)){
echo $error;
}
?>
<form action="login.php" method="post">
<table>
<tr>
<td><label for="name">姓名:</label></td>
<td><input type="text" name="name" value="<?php echo $name;?>" maxlength="20" size="20"></td>
</tr><tr>
<td><label for="password">密码:</label></td>
<td><input type="password" name="password" value="<?php echo $password;?>" maxlength="20" size="20"></td>
</tr><tr>
<td></td>
<td>
<input type="hidden" name="redirect" value="<?php echo $redirect?>">
<input type="submit" name="submit" value="Login">
</td>
</tr>
</table>
</form>
</body>
</html>



...全文
628 1 收藏 24
写回复
24 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
黄袍披身 2012-05-29
[Quote=引用 23 楼 的回复:]

Sorry,各位,我认真看了下,原来是password写成了passwrod,坚持到现在的都有分啊呵呵
[/Quote]

刚想进来看帖子,结果看到喜剧的一幕.
回复
sampson2016 2012-05-29
Sorry,各位,我认真看了下,原来是password写成了passwrod,坚持到现在的都有分啊呵呵
回复
一起混吧 2012-05-29
$password=(isset($_POST['passwrod']))?trim($_POST['password']):'';
$password=(isset($_POST['password']))?trim($_POST['password']):'';

还是字母打错了。
回复
sampson2016 2012-05-29
就是第二句,一模一样的话,竟然对了,很无语,为什么????
回复
一起混吧 2012-05-29
不知道你在说什么。下面竟然有结果了是指哪里?
回复
sampson2016 2012-05-29
谁可以和我说下为什么吗?无解啊??
回复
sampson2016 2012-05-29
$password=(isset($_POST['passwrod']))?trim($_POST['password']):'';
$password=(isset($_POST['password']))?trim($_POST['password']):'';

大家说说上下有区别吗?下面竟然有结果了,灵异啊
回复
一起混吧 2012-05-29
编码是否弄对。表单页面与处理页面的编码统一一下。
回复
sampson2016 2012-05-29
我这是个登录函数,就是结果还是0
回复
littlebirds 2012-05-29
不能登陆,啥意思啊?
回复
sampson2016 2012-05-29
有结果,但是用PHP就还是不能登录
回复
littlebirds 2012-05-29
echo $query;
将$query的结果放到数据查询工具运行下,看看结果是不是0.
回复
sampson2016 2012-05-29
可是我检查过了,真的没有问题,急死啦
回复
littlebirds 2012-05-29
如果程序能正常执行的话,那就是说明程序本身无问题。结果就是0。检查下筛选条件吧。
回复
sampson2016 2012-05-29
这个是库函数啊
回复
sampson2016 2012-05-29
可是我的确实有内容
回复
littlebirds 2012-05-29
$query="select access_level from cms_users where name='" . mysql_real_escape_string($name,$db) .
"' and password=PASSWORD('" . mysql_real_escape_string($password,$db) . "')";

问得是你这个红色的函数体部分定义在哪里?
回复
xuzuning 2012-05-29
$name = mysql_real_escape_string($name,$db);
$password = mysql_real_escape_string($password,$db);
$query = "select access_level from cms_users
where name='$name' and password=PASSWORD('$passwordb')";

没有符合条件的记录时 mysql_num_rows 就为空,没有什么奇怪的
回复
sampson2016 2012-05-29
注册时: $query='insert into cms_users(user_id,name,email,password)
values('.$user_id.',
"'.mysql_real_escape_string($name,$db).'",
"'.mysql_real_escape_string($email,$db).'",
PASSWORD("'.mysql_real_escape_string($password,$db).'"))';
$result=mysql_query($query,$db)or die(mysql_error($db));
回复
sampson2016 2012-05-29
补充:我打印过结果,就是0, 还有我确实有数据,
回复
加载更多回复
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2012-05-29 03:00
社区公告
暂无公告