我做一个简单的网络聊天,我用在<body onload>
触发一个提示框来获取用户的昵称,脚本是:添加从一个提示框的文本数据库
function Login()
{
var x=prompt("Please enter your name","");
var xmlhttp;
if (window.XMLHttpRequest)
{// Използваните браузъри
xmlhttp=new XMLHttpRequest();
}
else
{// Кой ли ползва тези версии..
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","login.php?u="+x,true);
xmlhttp.send();
}
然后,如果用户输入数据库中的东西,我想添加这个,或者如果不输入任何我只想分配“anonymos”作为nickname.For这个目的,我使用下面的PHP脚本:
<?php
session_start();
$u=$_GET["u"];
$db_connect = mysql_connect('localhost', 'root', '******');
if(!$db_connect)
{
die('Не може да се осъществи връзка с базата данни' . mysql_error());
}
mysql_select_db("chat", $db_connect);
if(is_null($u)==1)
{
$sql = "INSERT INTO users (name) VALUES ('$u')";
mysql_query($sql);
$_SESSION['UserName']=$u;
}
else
{
$_SESSION['UserName']='Anonymos';
}
mysql_close($db_connect);
?>
但代码会产生问题,当没有输入任何内容时,我仍然可以在数据库中获得数据ame填满了我得到空值,有时候,这不会发生,有时甚至如果我输入一些文本,它不会将它推到DB.I'm在这里输了,因为当我做检查If(is_null($u)
有时它在我设置为0时有效,有时在我将其设置为1时有效。表格结构非常简单,只是id和名称字段,但我想知道是否也可能存在问题?谢谢.Leron
我不知道,但也许我找出问题的真正原因是什么 - 现在只有当我按下ESC键而不是某些提示框按钮时,我才得到空记录。我仍然不知道如何解决这个,但因为一直很不稳定我仍然在寻找建议。
看来,当ESC按下时,变量获得默认值“null”,所以现在通过简单地检查$ u!='null“,我避免了以null作为名称值的记录。更多的测试和我如果它工作,它是稳定的,我会认为它解决了。很高兴听到一些意见或解释正在发生的事情。 – Leron 2011-06-03 07:42:11