2012-05-28 77 views
1

我做了一个小网站,非会员可以在网站注册,当他们注册他们的详细资料时应该在数据库表中进行搅动。我有这个工作,但现在不是,除了将详细信息存储在数据库中,它完成了所有工作。任何人都可以帮忙吗?会员注册不起作用

$host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="test"; // Database name 
    $tbl_name="members"; // Table name 

     // Connect to server and select databse. 
     mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
     mysql_select_db("$db_name")or die("cannot select DB"); 

    // username and password sent from form 
    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword']; 
    $repeatpassword=$_POST['repeatpassword']; 

    // To protect MySQL injection (more detail about MySQL injection) 
    $myusername = strip_tags($myusername); 
    $mypassword = strip_tags($mypassword); 
    $repeatpassword = strip_tags($repeatpassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 
    $repeatpassword = mysql_real_escape_string($repeatpassword); 


    if($myusername&&$mypassword&&$repeatpassword) 
    { 
     if ($mypassword==$repeatpassword) 
     { 
      if (strlen($myusername)>10) 
       { 
       header("location:erroruname.php"); 
       } 
       else 
       { 
       if (strlen($mypassword)>10||strlen($mypassword)<5) 

       header("location:errorpword.php"); 

       else 
       { 

       $queryreg = mysql_query(" 

       INSERT INTO $tbl_name VALUES('','$myusername','$mypassword') 
     "); 
      session_register("myusername"); 
      session_register("mypassword"); 
      header("location:insertdetail.php?myusername=" . $username);    
     } 
     } 

} 
else 
    header("location:errornomatch.php"); 
    } 
     else 
       header("location:errorfields.php"); 
+3

从来没有存储密码以纯文本 – 2012-05-28 00:24:17

回答

2

这是从来没有工作,因为你是不是在你的INSERT

INSERT INTO $tbl_name VALUES('','$myusername','$mypassword') 

需要指定任何列名看起来像

INSERT INTO $tbl_name(`column_a`, `username`, `password`) 
VALUES('','$myusername','$mypassword') 
+2

你不需要指定列名。 – 2012-05-28 00:26:49

1

你有在自动增量列那张桌子?如果是这样,请勿使用' ',相反,请勿输入任何内容。在这种情况下,你应该应该只指定两列(用户名和密码)。

+0

谢谢,但仍然不工作,因为它以前工作非常混乱 – user1368371

+1

给我们一些关于您的数据库的信息,然后... – 2012-05-28 00:58:13

0

呼应查询和手动运行SQL查询在phpMyAdmin

echo "INSERT INTO $tbl_name VALUES('','$myusername','$mypassword') "; die();