我一直在这几个小时试图找到我所做的小错误,我只是找不到它......我所做的就是将一个变量作为全局调用功能和它的,虽然它工作得很好与它上面的功能只是甚至没有工作......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为空,所以空,我测试了它,真的是空的... –