留言板的一个注册登录模块,代码如下。问题是$_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}

解决方案 »

  1.   

    alert(\"注册成功\")  然后你看数据库没有数据??
      

  2.   

    if(!$pwd=$pwd_s)这里应该是if(!$pwd==$pwd_s)
      

  3.   

    照楼上的改了一下,报错了:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /smb/xujun/registr.php on line 16
    而且怎么会跳出“注册失败"??
      

  4.   

    楼上说的那个地方确实是个错误
    但应该不是根本原因
    我不知道你的运行结果是alert了什么
      

  5.   

    $query="INSERT INTO user(user_name,user_pwd) VALUES('".$name."','".$pwd."')";echo $query ;//输出看看是否可以在数据库插入
    //在后面加入错误信息mysql_query($sql)or die(mysql_error());
      

  6.   

    运行结果是报错,加alert”注册失败“,而且关不掉
      

  7.   

    照你说的做了:
    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
      

  8.   

    mysql_num_rows($result) 这个错了   $result$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
    echo $query_user;//看看是否可以查询出数据
           $result=mysql_query($query_user);
      

  9.   

    是啊 
    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
    为什么接收不到啊?
      

  10.   

    <form  name="form1" method="post" action="login.php" >你这是post至登录页面
      

  11.   

     alert(\"注册成功\")后面有分号没
      

  12.   

    大神别蛋疼了。
    问题还没解决啊!
    我刷新一下registr.php页面就报错:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /smb/xujun/registr.php on line 17
    而且会有跳出”注册失败“!
      

  13.   

    mysql_num_rows()加一个@即 @mysql_num_rows()就不会出现上面的错误
      

  14.   

    $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."')";
    前面查询的语句字段是use_name,但后面写入的却是user_name
      

  15.   


    <form name="form1" method="post" action="registr.php" >
    //注册页要这样
      

  16.   

    真服了LZ了
    将这句$query_user="SELECT use_name FROM user WHERE use_name='".$name."'";
    改为:$query_user="SELECT use_name FROM user WHERE user_name='".$name."'";
      

  17.   

     看一下这句话   window.location=\"login.php\";
    当你执行到这句话时 他会定向到login.php页面,也就是你的php代码   根据逻辑  它还会走到注册成功   你看你数据库执行这句话   INSERT INTO user(user_name,user_pwd) VALUES('','') 能成功不
      

  18.   


    <?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');
    ?>
      

  19.   

    <input name="pwd" type="text" size="20">
    你在后面加一个value看看
      

  20.   

       $name=$_POST["user"];
       $pwd=$_POST["pwd"];
       $pwd_s=$_POST["pwd_s"];
    echo $pwd;  分别看看有没有值
      

  21.   

    我之前也遇到过,改一下就行了
    mysql_num_rows()加一个@即 @mysql_num_rows()就不会出现上面的错误
      

  22.   

    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 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');
      

  23.   

    还有,你这一句
    $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
      

  24.   

    先弄明白键名 然后再用empty来判断mysql_query执行后的结果
      

  25.   

    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>";
               }
           }
       }
    改为
    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>";
               }
           }
       }