2014-06-30 31 views
-4

自從昨晚我就陷入了這個問題,所以最後我決定問你們這件事。PHP登錄頁面無法正常工作

我該怎麼做才能解決這個問題?有沒有錯誤?請幫忙;我是PHP新手。

<?php 

$connection = mysql_connect($HOST,$USER,$PASS) Or Die ("Could not connect to the server"); 
mysql_select_db($DBNAME, $connection)Or Die ("Could not connect to the server"); 

error_reporting(0); 

if ($_POST['Register']);{ 
    if($_POST['Username'] && $_POST['Password']); 
    $username = mysql_real_escape_string($_POST['Username']); 
    $password = mysql_real_escape_string(hash("sha512",$_POST['Password'])); 
    $name =''; 
    if($_POST['Name']){ 
    $name = mysql_real_escape_string(strip_tags($_POST[name])); 
    } 
    $check = mysql_fetch_array(mysql_query("SELECT * FROM 'users' WHERE 'Username'='$username'")); 
    if ($check != '0'){ 
    die("Uh Oh! That Username has already taken! Try <i>$username" . rand (1,50) . "</i> instead! <a href='register.php'>&larr; Back </a>"); 
    } 
    if (!ctype_alnum($username)){ 
    die("Uh hum ! Your username conatins special characters unfortunately they are not permitted ! Only letters and numbers are allowed! <a href='register.php'>&larr; Back </a>"); 
    } 
    if (strlen($username) >20){ 
    die("Username Cannot contain more than 20 characters <a href='register.php'>&larr; Back </a>"); 
    } 
    $salt = hash("sha512", rand() .rand(). rand()); 
    mysql_query("INSERT INTO 'users' ('Username','Password','Name','Salt') VALUES('$username','$password','$name','$salt')"); 
    set_cookie("c_user", hash("sha512",$username),time() + 24 * 60 * 60, "/"); 
    set_cookie("c_salt", $salt, $time() + 24 * 60 * 60, "/"); 
    die ("Congrts ! you are now ready to use Hack With Nick! You are now logged in !"); 
} 

?> 

<body style='font-family: sans-serif,verdana;'> 
<div style='width: 80%; padding: 5px 15px 5px ; border: 1px solid #e3e3e3; background-color: #fff; color:000 ; margin-left:auto; margin-right:auto;'> 
    <h1>Register</h1> 
    <br /> 
    <form action='' method='post' > 
    <table> 
    <tr> 
     <td> 
     <b>Username:</b> 
     </td> 
     <td> 
     <input type='text' name='username' style='padding: 4px;' /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <b>Password:</b> 
     </td> 
     <td> 
     <input type='password' name='password' style='padding:4px;' /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <b>Name:</b> 
     </td> 
     <td> 
     <input type='text' name='name' style='padding:4px;' /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <input type='submit' name='register' value='Register' /> 
     <td> 
    </tr> 
    </table> 
    </form> 
</div> 
</body> 
+0

對你的代碼!什麼行導致錯誤?什麼是錯誤? – Cfreak

+0

您可能會發現這對查找PHP錯誤非常有用:[PHP Lint Online](http://www.icosaedro.it/phplint/phplint-on-line.html) – showdev

+0

只需開始:**不要禁用錯誤報告**調試時; **不要使用mysql_ *函數,使用PDO **;和**不依賴於被設置的索引:使用array_key_exists **(或'empty()')。最後,你的SQL代碼包含錯誤;例如它是'用戶',而不是'用戶'。 – LSerni

回答

2

首先,如果您啓用錯誤報告會更好。

error_reporting(E_ALL); 
ini_set('display_errors','1'); 

其次,你輸入名字都被下套管,你必須在名稱字段中缺少報價,因此你的if語句沒有這使得它們沒用任何括號。也作爲Iserni上面提到:如果您嘗試使用php自己的功能,它的time(),您的SQL代碼包含錯誤,例如它是用戶,而不是'用戶'而不是$time

if (isset($_POST['register'])){ 
    if(!empty($_POST['username']) && !empty($_POST['password'])){ 
     $username = mysql_real_escape_string($_POST['username']); 
     $password = mysql_real_escape_string(hash("sha512",$_POST['password'])); 
     $name =''; 
     if(isset($_POST['name'])){ 
     $name = mysql_real_escape_string(strip_tags($_POST['name'])); 
     } 
     $check = mysql_query("SELECT * FROM users WHERE 'Username'='$username'"); 
     if (mysql_num_rows($check) != 0){ 
     die("Uh Oh! That Username has already taken! Try <i>$username" . rand (1,50) . "</i> instead! <a href='register.php'>&larr; Back </a>"); 
     } 
     if (!ctype_alnum($username)){ 
     die("Uh hum ! Your username conatins special characters unfortunately they are not permitted ! Only letters and numbers are allowed! <a href='register.php'>&larr; Back </a>"); 
     } 
     if (strlen($username) >20){ 
     die("Username Cannot contain more than 20 characters <a href='register.php'>&larr; Back </a>"); 
     } 
     $salt = hash("sha512", rand() .rand(). rand()); 
     mysql_query("INSERT INTO users ('Username','Password','Name','Salt') VALUES('$username','$password','$name','$salt')"); 
     set_cookie("c_user", hash("sha512",$username),time() + 24 * 60 * 60, "/"); 
     set_cookie("c_salt", $salt, time() + 24 * 60 * 60, "/"); 
     die ("Congrts ! you are now ready to use Hack With Nick! You are now logged in !"); 
    } 
}