谢谢所有愿意帮助我的人。
这是我的代码:
<?php
require("inc/connection.php");
require("inc/common.php");
if(empty($_SESSION['user'])) {
//header("Location: login.php");
exit('No Session');
}
$query = "SELECT rank FROM users WHERE `username` = ? and `rank` = 1";
$result = mysqli_prepare($link, $query);
echo "SELECT rank FROM users WHERE `username` = '" . $_SESSION['user']['username'] . "' and `rank` = 1";
mysqli_stmt_bind_param($result, 's', $_SESSION['user']['username']);
mysqli_stmt_execute($result);
if(mysqli_num_rows($result) < 1) {
//header("Location: login.php");
exit('User Doesnt have one rank');
}
?>我试过很多次..。我的朋友帮了我一点点忙。但他没能让它开始工作。因此,基本上,$Link变量是连接。$_SESSION_[user]是登录用户的会话。
我的第一个错误是:
警告: mysqli_query():无法在第5行的C:\wamp\www\RoLuck\adminpanel.php中获取mysqli
我不知道为什么会这样,只是因为某种原因(我想)没有得到排名。
我的第二个错误是因为我的语法,因为我在php上很新,我尝试在googling上搜索它,我在tehre指南上添加了MYSQLI_BOTH,因为它需要两个参数,但是tehre只是一个,但是没有修复它,但是这里有错误:
警告: mysqli_fetch_array()期望参数1为mysqli_result,在第6行的C:\wamp\www\RoLuck\adminpanel.php中为null
发布于 2015-12-12 18:15:28
试试看:
require("inc/connection.php");
require("inc/common.php");
if(empty($_SESSION['user']['username'])) {
header("Location: login.php");
exit();
}
$result = mysqli_prepare($link, "SELECT rank FROM users WHERE `username` = ? and `rank` = 1");
$result->bind_param('s', $_SESSION['user']['username']);
mysqli_stmt_execute($result);
$result->store_result();
if($result->num_rows() < 1) {
header("Location: login.php");
exit();
}注意准备好的语句用法,它将用户输入与查询分隔开来。有关准备语句的更多信息,请参见http://php.net/manual/en/mysqli.quickstart.prepared-statements.php。
以前,您的查询是无效的,因为$_SESSION[user]是一个字符串,需要引用。对于准备好的语句,这是为您处理的。
另外,让SQL检查排名也更有效。
发布于 2015-12-12 18:11:25
也许,这就是你正在寻找的解决方案。
if((isset($_SESSION['user'])) && ($row['rank'] == 1)) {
header("Location: login.php");
die("Redirecting to login.php");
}发布于 2015-12-12 18:03:31
$_SESSION[user]不是有效的语法。应该是$_SESSION['user']。
请试用此更新代码。
<?php
require("inc/connection.php");
require("inc/common.php");
if((empty($_SESSION['user'])) || (!isset($_SESSION)))
{
echo "Nothing inside session variable";
}
else
{
$result = mysqli_query($link, 'SELECT rank FROM users WHERE `username` = "' . $_SESSION['user'] . '"');
while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
if(empty($_SESSION['user']) || $row['rank'] == 1) {
header("Location: login.php");
die("Redirecting to login.php");
}
}
}
?>https://stackoverflow.com/questions/34243065
复制相似问题