我做一個簡單的網絡聊天,我用在<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