留言板的一个注册登录模块,代码如下。问题是$_POST到的数据不能写入数据库表user,各位大侠帮我看看哪错了? require_once('conn.php');//conn.php就是数据库的一些配置文件,那个应该没问题
require_once('smarty_inc.php');
$link=connectDB();
$name=$_POST["user"];
$pwd=$_POST["pwd"];
$pwd_s=$_POST["pwd_s"];
if(!$pwd=$pwd_s){
echo "<script language=\"javascript\">
alert(\"两次输入的密码不一致\");
window.location=\"registr.php\";
</script>";
}else{
$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
$result=mysql_query($query_user);
if(mysql_num_rows($result)>0){
echo "<script language=\"javascript\">
alert(\"用户名已存在\");
window.location=\"registr.php\";
</script>";
}else{
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
if(mysql_query($query)){
echo "<script language=\"javascript\">
alert(\"注册成功\")
window.location=\"login.php\";
</script>";
}else{
echo "<script language=\"javascript\">
alert(\"注册失败\");
window.location=\"registr.php\";
</script>";
}
}
}
$smarty=new Smarty;
$smarty->display('registr.html');
<html>
<head>
<title>注册页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<form name="form1" method="post" action="login.php" >
<p>用户名:
<input name="user" type="text" size="20">
</p>
<p>密码:
<input name="pwd" type="text" size="20">
</p>
<p>确认密码:
<input name="pwd_s" type="text" size="20">
</p>
<input type="button" value="提交" onclick="checksubmit()">
<input type="reset" value="取消">
<p>
<a href='login.php'>返回登陆页面</a>
</form>
{literal}
<script language="javascript">
function checksubmit(){
if(form1.user.value == ""){
alert("用户名不能为空");
form1.user.focus();
return false;
}
if(form1.pwd.value == ""){
alert("密码不能为空");
form1.pwd.focus();
return false;
}
if(form1.pwd_s.value == ""){
alert("确认密码不能为空");
form1.pwd_s.focus();
return false;
}
form1.submit();
return true;
}
</script>
{/literal}
require_once('smarty_inc.php');
$link=connectDB();
$name=$_POST["user"];
$pwd=$_POST["pwd"];
$pwd_s=$_POST["pwd_s"];
if(!$pwd=$pwd_s){
echo "<script language=\"javascript\">
alert(\"两次输入的密码不一致\");
window.location=\"registr.php\";
</script>";
}else{
$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
$result=mysql_query($query_user);
if(mysql_num_rows($result)>0){
echo "<script language=\"javascript\">
alert(\"用户名已存在\");
window.location=\"registr.php\";
</script>";
}else{
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
if(mysql_query($query)){
echo "<script language=\"javascript\">
alert(\"注册成功\")
window.location=\"login.php\";
</script>";
}else{
echo "<script language=\"javascript\">
alert(\"注册失败\");
window.location=\"registr.php\";
</script>";
}
}
}
$smarty=new Smarty;
$smarty->display('registr.html');
<html>
<head>
<title>注册页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<form name="form1" method="post" action="login.php" >
<p>用户名:
<input name="user" type="text" size="20">
</p>
<p>密码:
<input name="pwd" type="text" size="20">
</p>
<p>确认密码:
<input name="pwd_s" type="text" size="20">
</p>
<input type="button" value="提交" onclick="checksubmit()">
<input type="reset" value="取消">
<p>
<a href='login.php'>返回登陆页面</a>
</form>
{literal}
<script language="javascript">
function checksubmit(){
if(form1.user.value == ""){
alert("用户名不能为空");
form1.user.focus();
return false;
}
if(form1.pwd.value == ""){
alert("密码不能为空");
form1.pwd.focus();
return false;
}
if(form1.pwd_s.value == ""){
alert("确认密码不能为空");
form1.pwd_s.focus();
return false;
}
form1.submit();
return true;
}
</script>
{/literal}
解决方案 »
- 正则啊正则?!! 帮忙看看,谢谢
- 请问怎么用正则取出HouseNO的值啊、
- 关于APACHE运行一段时间后会占100%CPU导致死机问题.
- PHP 5.1.4和5.2.0的问题
- 关于PHP push的问题
- 自制超强集成包phpStudy支持apache,nginx,IIS,测试完成。wamp+wnmp+wlmp+wimp超强集成包
- 又来提问了 ~~`关于MYSQL的
- 锐码论坛升级3.0超COOL论坛
- php5.5能不能连接sql server 2005?
- 怎么判断上传文件是否图片或是否安全
- 如何在我的项目中的任意一个文件中,都能加载根目录下的这个global.php文件呢?代码怎么写?
- 跨站提交和接收数据的问题
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /smb/xujun/registr.php on line 16
而且怎么会跳出“注册失败"??
但应该不是根本原因
我不知道你的运行结果是alert了什么
//在后面加入错误信息mysql_query($sql)or die(mysql_error());
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /smb/xujun/registr.php on line 16
INSERT INTO user(user_name,user_pwd) VALUES('','')Query was empty
echo $query_user;//看看是否可以查询出数据
$result=mysql_query($query_user);
SELECT use_name FROM user WHERE use_name=''
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /smb/xujun/registr.php on line 17
为什么接收不到啊?
问题还没解决啊!
我刷新一下registr.php页面就报错:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /smb/xujun/registr.php on line 17
而且会有跳出”注册失败“!
$result=mysql_query($query_user);
if(mysql_num_rows($result)>0){
echo "<script language=\"javascript\">
alert(\"用户名已存在\");
window.location=\"registr.php\";
</script>";
}else{
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
前面查询的语句字段是use_name,但后面写入的却是user_name
<form name="form1" method="post" action="registr.php" >
//注册页要这样
将这句$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
改为:$query_user="SELECT use_name FROM user WHERE user_name='".$name."'";
当你执行到这句话时 他会定向到login.php页面,也就是你的php代码 根据逻辑 它还会走到注册成功 你看你数据库执行这句话 INSERT INTO user(user_name,user_pwd) VALUES('','') 能成功不
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
require_once('conn.php');//conn.php就是数据库的一些配置文件,那个应该没问题
require_once('smarty_inc.php');
$link=connectDB();
$name=$_POST["user"];
$pwd=$_POST["pwd"];
$pwd_s=$_POST["pwd_s"];
if(!$pwd==$pwd_s){
echo "<script language=\"javascript\">
alert(\"两次输入的密码不一致\");
window.location=\"registr.php\";
</script>";
}else{
$query_user="SELECT use_name FROM user WHERE user_name='".$name."'";
$result=mysql_query($query_user);
if(mysql_num_rows($result)>0){
echo "<script language=\"javascript\">
alert(\"用户名已存在\");
window.location=\"registr.php\";
</script>";
}else{
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
if(mysql_query($query)){
echo "<script language=\"javascript\">
alert(\"注册成功\")
window.location=\"login.php\";
</script>";
}else{
echo "<script language=\"javascript\">
alert(\"注册失败\");
window.location=\"registr.php\";
</script>";
}
}
}
}
$smarty=new Smarty;
$smarty->display('registr.html');
?>
你在后面加一个value看看
$pwd=$_POST["pwd"];
$pwd_s=$_POST["pwd_s"];
echo $pwd; 分别看看有没有值
mysql_num_rows()加一个@即 @mysql_num_rows()就不会出现上面的错误
require_once('smarty_inc.php');
$link=connectDB();
$name=$_POST["user"];
$pwd=$_POST["pwd"];
$pwd_s=$_POST["pwd_s"];
if(!$pwd=$pwd_s){
echo "<script language=\"javascript\">
alert(\"两次输入的密码不一致\");
window.location=\"registr.php\";
</script>";
}else{
$query_user="SELECT user_name FROM user WHERE user_name='".$name."'";
$result=mysql_query($query_user);
if(!empty($result)){
echo "<script language=\"javascript\">
alert(\"用户名已存在\");
window.location=\"registr.php\";
</script>";
}else{
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
if(mysql_query($query)){
echo "<script language=\"javascript\">
alert(\"注册成功\")
window.location=\"login.php\";
</script>";
}else{
echo "<script language=\"javascript\">
alert(\"注册失败\");
window.location=\"registr.php\";
</script>";
}
}
}
$smarty=new Smarty;
$smarty->display('registr.html');
$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
和
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
这一句 里面的键名都不一样 一个叫 use_name 一个叫user_name
echo "<script language=\"javascript\">
alert(\"两次输入的密码不一致\");
window.location=\"registr.php\";
</script>";
}else{
$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
$result=mysql_query($query_user);
if(mysql_num_rows($result)>0){
echo "<script language=\"javascript\">
alert(\"用户名已存在\");
window.location=\"registr.php\";
</script>";
}else{
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
if(mysql_query($query)){
echo "<script language=\"javascript\">
alert(\"注册成功\")
window.location=\"login.php\";
</script>";
}else{
echo "<script language=\"javascript\">
alert(\"注册失败\");
window.location=\"registr.php\";
</script>";
}
}
}
改为
if($pwd!=$pwd_s){
echo "<script language=\"javascript\">
alert(\"两次输入的密码不一致\");
window.location=\"registr.php\";
</script>";
}else{
$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
$result=mysql_query($query_user);
if(mysql_num_rows($result)>0){
echo "<script language=\"javascript\">
alert(\"用户名已存在\");
window.location=\"registr.php\";
</script>";
}else{
$query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";
if(mysql_query($query)){
echo "<script language=\"javascript\">
alert(\"注册成功\")
window.location=\"login.php\";
</script>";
}else{
echo "<script language=\"javascript\">
alert(\"注册失败\");
window.location=\"registr.php\";
</script>";
}
}
}