Php 检查用户名是否存在-跨浏览器问题!建议?

Php 检查用户名是否存在-跨浏览器问题!建议?,php,javascript,html,mysql,ajax,Php,Javascript,Html,Mysql,Ajax,我有一个注册表,它会动态检查数据库中现有的用户名和电子邮件地址。然而,它似乎在FireFox或IE上都不起作用,但在Safari和Chrome上效果很好。代码如下: <input type="text" name="username" id="username" placeholder="Username" class="registerinvitel" onKeyUp="resettooltip();" onFocusOut="check_register_exist('username

我有一个注册表,它会动态检查数据库中现有的用户名和电子邮件地址。然而,它似乎在FireFox或IE上都不起作用,但在Safari和Chrome上效果很好。代码如下:

<input type="text" name="username" id="username" placeholder="Username" class="registerinvitel" onKeyUp="resettooltip();" onFocusOut="check_register_exist('username');" autocomplete="off" />
有什么想法我可以改变它使它工作吗?AJAX check.php代码如下所示,但我认为这不是问题所在:

<?

include  "../conf/config.php";

if(isset($_GET['meth'])) { $meth = $_GET['meth']; } else { $meth = ''; }
if(isset($_GET['u'])) { $u = $_GET['u']; } else { $u = ''; }


if ( $meth == 'username' ) {


$query_chkuser = mysql_query("SELECT * FROM members WHERE Username = '$u'");
$query_nr_res = mysql_num_rows($query_chkuser);

if ( $query_nr_res == '1' ) { echo "exist"; } else { echo "ok"; }


} 

elseif ( $meth == 'email' ) {


$query_chkuser = mysql_query("SELECT * FROM members WHERE Email = '$u'");
$query_nr_res = mysql_num_rows($query_chkuser);

if ( $query_nr_res == '1' ) { echo "exist"; } else { echo "ok"; }


} 

else {}
尝试使用onBlur而不是onFocusOut


编辑:或者,更好的是,onChange-毕竟,如果用户没有更改文本,您不需要重新检查。

会发生什么?你需要提供更多的细节,而不是说它不起作用。你知道如何调试吗?设置断点,看看代码在哪里工作或不工作。它只是不显示工具提示说有错误,而是允许我用相同的用户名注册第二个帐户。你的函数被调用了吗,你看到Ajax请求发出了吗?你需要找出它在哪里坏了。check.php中有一个SQL注入漏洞。改用。您需要在所有查询字符串参数上使用encodeURIComponent。@PaoloBergantino同意。我也对这个突兀的javascript有同样的感觉……非常感谢!真不敢相信这是那么明显。我一直在努力解决这个问题大约一个小时了。呸!谢谢,谢谢,谢谢!!但是在这里,因为它的ajax请求onBlur更好,因为它不浪费时间bandwidth@imsiso嗯,为什么?当然使用onChange来防止带宽浪费会更好吗?@imsiso你的想法正好相反。模糊文本框并不意味着值发生了变化——它可能会改变。但是,当你可以肯定onchange时,你为什么要冒险呢?如果值没有更改,为什么要发送请求?@imsiso onChange仅在字段失去焦点时激发,并且仅当值在收到焦点后更改时激发。
<?

include  "../conf/config.php";

if(isset($_GET['meth'])) { $meth = $_GET['meth']; } else { $meth = ''; }
if(isset($_GET['u'])) { $u = $_GET['u']; } else { $u = ''; }


if ( $meth == 'username' ) {


$query_chkuser = mysql_query("SELECT * FROM members WHERE Username = '$u'");
$query_nr_res = mysql_num_rows($query_chkuser);

if ( $query_nr_res == '1' ) { echo "exist"; } else { echo "ok"; }


} 

elseif ( $meth == 'email' ) {


$query_chkuser = mysql_query("SELECT * FROM members WHERE Email = '$u'");
$query_nr_res = mysql_num_rows($query_chkuser);

if ( $query_nr_res == '1' ) { echo "exist"; } else { echo "ok"; }


} 

else {}