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");
4

3 に答える 3

2

で列名を指定していないため、これは機能しませんでしたINSERT

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

のように見える必要があります

INSERT INTO $tbl_name(`column_a`, `username`, `password`) 
VALUES('','$myusername','$mypassword')
于 2012-05-28T00:25:14.370 に答える
1

そのテーブルに自動インクリメント列はありますか? その場合は、を使用しない' 'でください。代わりに、何も入力しないでください。その場合は、2 つの列 (ユーザー名とパスワード) のみを指定する必要があります。

于 2012-05-28T00:27:34.373 に答える
0

クエリをエコーし​​、phpmyadminでSQLクエリを手動で実行します

echo "INSERT INTO $tbl_name VALUES('','$myusername','$mypassword') "; die();
于 2012-05-28T05:23:31.293 に答える