2015-11-26 94 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