2013-06-05 71 views
0

我有一个注册脚本不起作用。它曾经工作,但突然停止工作。我不知道我做了什么或发生了什么。我已经尝试了一个小时以找出问题所在,但我似乎无法找到它。注册script.php不起作用

会发生什么?当我点击注册我没有得到任何错误,但它不会上传到数据库中:当我键入

$res = mysql_query($query) or die ("ERROR");它显示ERROR所以我认为这是相关代码:

//=============Configuring Server and Database======= 
$host  = 'localhost'; 
$user  = 'root'; 
$password = ''; 
//=============Data Base Information================= 
$database = 'login'; 

$conn  = mysql_connect($host,$user,$password) or die('Server Information is not Correct'); //Establish Connection with Server 
mysql_select_db($database,$conn) or die('Database Information is not correct'); 

//===============End Server Configuration============ 

//=============Starting Registration Script========== 

$username = mysql_real_escape_string($_POST['username']); 

$password = mysql_real_escape_string($_POST['pass1']); 

$email = mysql_real_escape_string($_POST['email']); 

$country = mysql_real_escape_string($_POST['country']); 

$rights = '0'; 

$IP = $_SERVER['REMOTE_ADDR']; 


//=============To Encrypt Password=================== 

//============New Variable of Password is Now with an Encrypted Value======== 
$query = mysql_query("SELECT username FROM users WHERE username = '".$username."'"); 
if (mysql_num_rows($query) > 0) 
{ 
    echo 'Username or email already in use.'; 
} 
else{ 
    if(isset($_POST['btnRegister'])) //===When I will Set the Button to 1 or Press Button to register 
    { 
     $query = "insert into users(username,password,email,country,rights,IP,registrated)values('$username','$password','$email','$country',$rights,$IP,NOW())" ; 
     $res = mysql_query($query); 

     header("location:load.php"); 
    } 
} 
+6

你可以总是尝试'mysql_query($ query)或死(mysql_error());'然后看看错误是什么。 – andrewsi

+0

对于其中一个,我假设IP被写为VARCHAR,并且这个变量没有引号。在插入语句中。 '$ rights'也是如此。 – Eugene

+0

仅供参考:'mysql_'查询已被弃用并打开SQL注入。改为使用'mysqli'。 –

回答

1

我想是因为你缺少在查询一些报价为两列,你所得到的错误至极真的看起来不是整数

'$email','$country',$rights,$IP,NOW())" //$rights and $ip doesn't have quotes 

所以您的查询看起来像

"insert into users(username,password,email,country,rights,IP,registrated)values('$username','$password','$email','$country','$rights','$IP',NOW())" 
+0

我不能接受,直到5 minutts!但是,嘿!感谢法比奥! :)它的工作......我应该看到,但是,谢谢! :) – carl

+0

@Carl不客气 – Fabio

1

使用mysql_error()以查看错误消息是什么。如果你没有改变脚本中的任何内容,那么它就是你的数据库结构已经改变或者你的权利了。

更新:

你不必在你的IP价值,因为你说的查询工作到现在为止这是令人惊讶的报价。无论如何,你还应该考虑保存IP RIGHT way。祝你好运!

+0

你好。感谢您的重播PHP_nub-qq。它说: 你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,在第1行的'.100.179,NOW())'旁边使用正确的语法 – carl

+0

应该引用ip(可能是字符串)。 –

+0

你没有引用你的IP值,这是令人惊讶的,因为你说查询一直工作到现在。无论如何,你还应该考虑将IP保存为[正确的方式](http://stackoverflow.com/questions/2542011/most-efficient-way-to-store-ip-address-in-mysql)。祝你好运! –