我一直在這幾個小時試圖找到我所做的小錯誤,我只是找不到它......我所做的就是將一個變量作爲全局調用功能和它的,雖然它工作得很好與它上面的功能只是甚至沒有工作......mysqli和全局變量
我得到一個錯誤說mysqli的是空...
include 'data/mysqli_connect.php';
function process_login(){
global $mysqli;
$username = $_SESSION['username'];
$sql = "SELECT * FROM auth WHERE user='".mysqli_real_escape_string($mysqli,$username)."'";
$query = mysqli_query($mysqli,$sql);
if(mysqli_num_rows($query)>0){
$sql = "DELETE FROM auth WHERE user='".mysqli_real_escape_string($mysqli,$username)."'";
$query = mysqli_query($mysqli,$sql);
if(!$query){
die(mysqli_error());
}
}
$sql = "INSERT INTO auth (user, session) VALUES ('".mysqli_real_escape_string($mysqli,$username)."', '".$_SESSION['id']."')";
$query = mysqli_query($mysqli,$sql);
if(!$query){
echo "Can not insert info into database!<br />". mysqli_error();
}else{
header("Location:chat.php");
}
}
function logout(){
global $mysqli;
$sql = "DELETE FROM auth WHERE session='".mysqli_real_escape_string($mysqli,$_SESSION['id']). "'";
$query = mysqli_query($mysqli,$sql);
if(!$query){
echo "Can not delete info from database!";
}else{
session_destroy();
header("Location: chat.php");
}
}
function get_username(){
global $mysqli;
$sql = "SELECT * FROM auth WHERE session='".mysqli_real_escape_string($mysqli,$_SESSION['id']). "'";
$query = mysqli_query($mysqli,$sql);
$row = mysqli_fetch_array($query);
if(mysqli_num_rows($query) == "0"){
$username = "Guest";
}else{
$username = $row['user'];
}
return $username;
}
function post_message(){
global $mysqli;
$text = addslashes(htmlentities(htmlspecialchars($_REQUEST['text'])));
$sql = "INSERT INTO chat (time, user, text) VALUES ('".date("H:i")."', '".get_username()."', '".$text."')";
$query = mysqli_query($mysqli,$sql);
if(!$query){
die(mysqli_error());
}
}
mysqli_connect.php
$mysqli = mysqli_connect(localhost, "info", "info", "info");
就像我說的,它的工作對上面的函數這一個,但不是這個,它不會使敏感......我猜我在那裏有一個愚蠢的錯誤,只是不知道在哪裏。
順便說一句,我測試和工作職能是process_login()
和logout()
和get_username()
get_username()
先運行,然後process_login()
。 post_message()
從一個jquery代碼運行,當我按下輸入時,它會調用它,可能工作正常,因爲我可以看到錯誤代碼,當我按Enter鍵。
哦,對不起,代碼格式不正確,不知道如何解決它在這裏。
感謝您的任何幫助或建議,你可能會發現。
那麼......它在做什麼呢? – Jon
開始學習準備好的語句。你所說的*「讓我們清理用戶輸入的文本」*在評論中是完全錯誤的。 – hakre
哦,忘了說我得到的錯誤,$ mysqli爲空,所以空,我測試了它,真的是空的... –