我正在努力做到这一点,以便我可以将“员工面板”限制为“member_level”为“3”的用户,以便其他人被重定向到 account_page.php,但我目前收到一个错误,该错误仅出现 1 小时以前,这是突然冒出来的,我没有做任何更改,它只是出现了。
这是员工面板的代码:
<?php
ob_start();
mysql_connect('localhost', 'u1908470_cms', 'BeingX1309X')or die("Error: ".mysqlerror());
mysql_select_db('u1908470_cms');
$query1 = mysql_query("SELECT 'member_level' FROM `users` WHERE `username` = '" . mysql_real_escape_string ($_SESSION['user']['username'])."'");
$query2 = mysql_result($query1,0,'member_level') or die(mysql_error());
switch ($query2)
{
case 3:
{
echo "<p>Now Logged into Staff Panel!</p>";
}
break;
case 2:
{
header("location: http://www.cookiedenied.com/account_page.php");
}
break;
case 1:
{
header("location: http://www.cookiedenied.com/account_page.php");
}
break;
}
?>
最佳答案
正确转义字段和表名
代替
SELECT 'member_level', ....
...请使用...
SELECT `member_level`, ....
验证您的查询。
像这样重写你的代码:
$SQL = "SELECT `member_level`
FROM `users`
WHERE `username` = '"
. mysql_real_escape_string($_SESSION['user']['username'])
. "'";
$MyQ = mysql_query($SQL);
$MyR = mysql_result($MyQ,0,'member_level') or die(mysql_error());
...和 var_dump($SQL);
来查看您的语句是否有效。在使用另一个 MySQL 工具(Workbench、phpMyAdmin、SQLyog 或其他工具)执行它时检查它是否生成任何结果。也许 $_SESSION
变量设置不正确或类似的东西,你会通过这种方式发现。
请改用 MySQLi 或 PDO。
来自手册:
Use of the mysql extension is discouraged. Instead, the MySQLi or PDO_MySQL extension should be used.
重新格式化您的开关
-Block。
与您的问题无关,但您的 switch
-Block 看起来过于复杂,无法更轻松地完成某些事情。试试这个:
switch ($query2) {
case 3:
echo "<p>Now Logged into Staff Panel!</p>";
break;
default:
header("location: http://www.cookiedenied.com/account_page.php");
}
关于php - 警告 : mysql_result() [function. mysql-result]:无法跳转到 MySQL 结果索引 2 上的第 0 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135129/