2013-06-30 56 views
-2

當我wan't登記我在我的網站我要創建我得到這個錯誤登記系統

Notice: Undefined index: username in C:\xampp\htdocs\Code\login.php on line 35 

Notice: Undefined index: password in C:\xampp\htdocs\Code\login.php on line 40 
password doesn't match. 

它是如此的行:

<?php 
    if(isset($_POST['register'])){ 
     if(empty($_POST['rusername']) or empty($_POST['rpassword']) or empty($_POST['crpassword'])){ 
     echo "Fields cannot be empty"; 
     }else{ 
      $do = mysql_query("SELECT * From users WHERE username='".mysql_real_escape_string($_POST['username'])."'"); 
      if(mysql_num_rows($do) == 1){ 
      echo "Users busy."; 
      }else{ 
       $rusername = mysql_real_escape_string($_POST['rusername']); 
       $password = mysql_real_escape_string(sha1($_POST['password'])); 
       $rpassword = $_POST['rpassword']; 
       if($password == $rpassword){ 
        mysql_query("INSET INTO users (username, password) VALUES ('$rusername','$rpassword')"); 
        echo "Account created."; 
       }else{ 
       echo "password doesn't match."; 
       } 
      } 
     } 
    } 
    ?> 

希望有人能幫助我:)

這是HTML代碼:

<form method="post"> 

&nbsp;Anv&#228;ndarnamn:<input type="text" placeholder="Ditt användarnamn" class="mywidth1" name="rusername"><br /> 
    &nbsp;L&#246;senord:<input type="password" placeholder="Ditt lösenord" class="mywidth2" name="rpassword"><br /> 
&nbsp;Verifiera l&#246;senord: <input type="password" placeholder="Skriv lösenordet igen" class="mywidth" name="crpassword"><br /> 
<input type="submit" class="regbutton" value="" name="register"> 
</form> 

對於寄存器

+0

看看r和c的位置太多或丟失...... – bwoebi

+0

對於特定的編程問題,您無需任何幫助。您需要幫助學習我指導您http://dev.mysql.com/doc/和http://php.net/manual/en/index.php的語言,因爲SO不是個人導師。 – PeeHaa

+0

我不認爲你得到錯誤後曾嘗試通過代碼。您沒有使用與html格式相同的變量名稱。此外,您已將sha1用於一個字段,而不是用於其他字段。 –

回答

1

你的代碼是指$_POST['username']它應該是指$_POST['rusername']在這一行:

$do = mysql_query("SELECT * From users WHERE username='".mysql_real_escape_string($_POST['username'])."'"); 

這些線

$password = mysql_real_escape_string(sha1($_POST['password'])); 
$rpassword = $_POST['rpassword']; 
if($password == $rpassword){ 
. 
. 
} 

比較散列,逃脫$_POST['password']版本一個unhashed,非轉義的版本$_POST['rpassword'] - 我不明白這些將如何平等。

在您的HTML中,您的用戶名字段中使用了與您用於電子郵件地址字段相同的名稱。 PHP將使用電子郵件地址作爲用戶名。

您需要查看此代碼並修復這些明顯的錯誤。如果這還不夠清楚,可以考慮聘請某人爲你完成工作。

+0

我的密碼不匹配。''當我註冊時:/ –

+0

如果沒有生成$ _POST變量的HTML表單,您的PHP沒有什麼意義。請張貼。 – 2013-06-30 12:51:07

+0

so post update。 –