2015-11-26 142 views
2

我目前正在爲我的網站註冊頁面。我只是需要一些幫助,因爲我不確定爲什麼當我輸入註冊詳細信息(只有2個字段)它會轉到謝謝頁面,但是當我檢查我的數據庫時,USERS下沒有新記錄。以下是我的代碼:php註冊頁面將不會註冊用戶

<?php 

$host="*********"; // Host name 
$username="**********"; // Mysql username 
$password="**********"; // Mysql password 
$db_name="arihealthinfo"; // Database name 
$tbl_name="USERS"; // 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 
$ParticipantID=$_POST["ParticipantID"]; 
$password=$_POST["UserPass"]; 

$sql = "SELECT ID FROM USERS WHERE ID = '$participantID'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 

if($count==0) 
    { 
     $sql = "INSERT INTO USERS (ID, PASSWORD) VALUES ('$participantID', '$password')"; 
     echo "Thank you for registering, you can now login:"; 
     ?> 
     <a href= http://www.arihealth.info/index.php>Login Page.</a> 
     <?php 
    } else { 
     echo "Your ID has already been registered:"; 
     ?> 
     <a href= http://www.arihealth.info/registerphp.php>Register Here.</a> 
     <?php 
    } 
?> 
+1

爲了您的信息:MySQL是過時,使用庫MySQLi或PDO – Thamilan

+0

您需要逃生者POST參數並從不將密碼存儲爲純文本! – Svetoslav

回答

5

因爲你只是寫你的查詢不執行它。使用mysql_query()

$sql = "INSERT INTO USERS (ID, PASSWORD) VALUES ('$participantID', '$password')"; 
mysql_query($sql); 

而且

$participantID!=$ParticipantID 

您選擇查詢更改爲

$sql = "SELECT ID FROM USERS WHERE ID = '$ParticipantID'"; 

您所查詢的是開放的SQL注入檢查How can I prevent SQL injection in PHP?

不要存儲明文口令數據庫檢查

http://php.net/manual/en/function.password-hash.php

http://php.net/manual/en/faq.passwords.php

注: - MySQL是不是不贊成使用的mysqli或PDO

+0

如果你的建議和params逃脫,它會很好。 – Svetoslav

+0

@Saty謝謝它現在將記錄插入到數據庫中。但我現在注意到的是,它不檢查插入之前ID是否存在。所以我有一個ID = 111111111數據庫中的記錄,當我試圖用相同的ID註冊時,它簡單地將它插入到數據庫中作爲111111112,而不是拒絕插入和使用else子句。 – CM25

+0

檢查是你的ID設置自動遞增在phpmyadmin – Saty