所以当我读到PDO时,我正在尝试使用if else语句编写临时登录管理面板的方法。如果有人能告诉我这里的错误在哪里,我将不胜感激。
我在稍微查看之后更新了我的代码,但是我仍然没有任何问题出现在我的代码所属的位置并提取它应该的信息。
<?php
$admin = $_SESSION['admin_login'];
$con=mysql_connect("$server","$user","$pass");
if
(!$con)
{
die('Could not Connect' .mysql_error());
}
mysql_select_db($webdb, $con);
$result=mysql_query("SELECT * FROM permissions WHERE username= '$admin' ");
$row = mysql_fetch_assoc($result);
if ($row['permissions']=="3")
{
echo 'Admin Panel';
}
elseif ($row['permissions']=="1")
{
echo 'include acp_error.php';
}
?>
我更新了什么;有没有人在这看到任何问题?
答案 0 :(得分:2)
mysql_query返回一个语句HANDLE,而不是您尝试选择的值/行。你需要FETCH一行数据才能获得你需要比较的值。
$result = mysql_query(...) or die(mysql_error());
$row = mysql_fetch_assoc($result);
if ($row['somefield'] == 3) {
...
}
请注意
之类的内容"$webdb"
是毫无意义的货物崇拜节目。一个简单的
$webdb
就是这样的事情所需要的一切。创建一个新字符串没有意义,它的唯一内容是变量的内容 - 只需使用变量本身。
同样,请注意您通过查询中使用的$ _SESSION值容易受SQL injection攻击。如果这是一个文本值,并且包含用户提供的数据,那么您的服务器对于pwn来说是微不足道的。