2009-12-20 149 views
0

我正在使用jQuery注册表单,并且使用jQuery检查所有输入,剩下的唯一事情就是查看用户是否正在选择已经注册的名字。

这里是我的Ajax请求:

$.ajax({ 
    type: "POST", 
    url: "check_user.php", 
    data: "username="+username, 
    success: function(){ 
    errors.push('Your username is taken.'); 
    } 
}); 

而且check_user.php:

<?php 
include_once('../lib/config.php'); 

$username = $_POST['username']; 
$query = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'"); 
if(mysql_num_rows($query) == 1) { 
    header("HTTP/1.1 200 OK"); 
} 

?> 

我知道errors.push();因为当我试图弄清楚Ajax请求之前出现了什么问题时,只要点击“注册”,我的注册页面就会显示“用户名已接受”消息。现在什么都没有显示出来。

这里是我所有的整个注册页面:http://pastebin.org/66815

+0

如果你连线错误或完成事件会被解雇吗? – Goyuix

+0

你是什么意思? – Andrew

+2

一旦你了解了$ .ajax的使用情况,并基于这里显示的check_user.php片段,我建议寻找编码来防止PHP请求端的SQL注入。看准备的统计http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php/60496#60496和过滤http://stackoverflow.com/questions/60174/best- way-to-stop-sql -injection-in-php/60442#60442一切顺利。 – micahwittman

回答

2

文件(signup.php)位于C:\ XAMPP \ htdocs中\注册\用户\ signup.php

我使用.htaccess文件和RewriteRule ^signup user/signup.php并在http://localhost/signup查看。当我删除该重写规则并得到http://localhost/register/user/signup.php,一切工作正常。

因此,我将url: "check_user.php"更改为"url: user/check_user.php",它一切正常。我不知道.htaccess是那个坏蛋。