php一个注册程序问题

name.php:
<html>
<body>
<p align="center"><font size="5">注册用户</b></font></p>
<form method="POST" action="join.php">
<p align="center">用户名:<input type="text" name="userid" size="20"></P>
<p align="center">姓名:<input type="text" name="namess" size="20"></P>
<p align="center">密码:<input type="password" name="password" size="20"></p>
<p align="center">确认密码:<input type="password" name="password2" size="20"></p>
<p align="center">email:<input type="text" name="email" size="20"></P>

<p align="center"><input type="submit" value="注册"></p>
</form>
<P> </p>
<p align="center"><b><font size="5"><a href="member.html">tenglu</a>
<a href="index.html" target="_parent">回首页</a></font></b></p>
</body>
</html>
join:
<?
$userid=$_POST['userid'];
$name=$_POST['namess'];
$password=$_POST['password'];
$password2=$_POST['password2'];
$email=$_POST['email'];
echo $userid;
echo $name;
echo $password;
echo $email;
function show($msg){
echo "<center><h2>$msg<hr></h2>";
echo "<form><input type=\"button\" value=\"返回上一页\" onclick=\"javascript:history.go(-1);\"></form>";
echo "</center>";
}
if(empty($userid)||empty($password)||empty($name)||empty($email)){
show("该项目不能为空");
exit;
}
if($password<>$password2){
show('两次密码不一致');
exit;
}
mysql_connect("localhost","root","");
$db=mysql_select_db("tutor");
$aql="select * from user where useid='$userid'";
$row=mysql_query($aql);
$num=mysql_num_rows($row);
if($num!=o){
show("用户名以存在,请重新输入");
exit;
}
$aql="select * from user where email='$email'";
$row=mysql_query($aql);
$num=mysql_num_rows($row);
if($num!=o){
show("email以存在,请重新输入");
exit;
}
$sql="insert into users values('$userid','$password','$email','$name')";
mysql_query($sql);
show('注册成功');
?>
为什么会出来无论我输入什么用户名都提示我用户名以存在呢?
我echo $num;结果是空. 就跳过IF语句了,可我输入和我以有的数据相同的用户名和邮箱的时候不应该为空才对呀.这是什么原因呀.

把if($num!=o)改成if($num>0)
因为mysql_num_rows() 函数来获得 SELECT 所返回的记录行数。
如果最近一次查询失败的话,函数返回 -1。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-26
你这样判断不科学,语句有可能失败,应该把下面的三句:
$aql="select * from user where email='$email'";
$row=mysql_query($aql);
$num=mysql_num_rows($row);
修改为:
$aql="select count(*) from user where email='$email'";
$row=mysql_query($aql);
list($num)=mysql_fetch_rows($row);
第2个回答  2009-05-26
echo $num;看看如果没有数据的时候是0还是null

把判断语句改成
if($num != "" && $num != 0)
{
show("用户名已存在,请...");
exit;
}
第3个回答  2009-05-26
你改成!=''试试

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网