2012-10-07 52 views
-1

所以我试图写一个临时的方式来登录到管理面板使用if else语句,而我读了PDO。如果有人能告诉我错误在哪里,这将是非常感谢。如果否则查看SQL权限

我已经更新了我的代码后环顾一下有点,但我仍然没有什么问题显示我的代码属于哪里,并拉动它应该的信息。

<?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'; 
       } 

        ?> 

是我更新到;有没有人在这里看到任何问题?

回答

2

mysql_query返回一个语句HANDLE,而不是你想要选择的值/行。您需要获取一行数据才能获得您需要比较的值。

$result = mysql_query(...) or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
if ($row['somefield'] == 3) { 
    ... 
} 

请注意,之类的东西

"$webdb" 

是毫无意义的货物邪教编程。一个简单的

$webdb 

是这样的事情所需要的。创建一个新字符串没有意义,它的唯一内容就是变量的内容 - 只是使用变量本身。

同样,请注意,您通过查询中使用的$ _SESSION值容易受到SQL injection的影响。如果这是一个文本值,并且包含用户提供的数据,那么您的服务器很难打上。

+0

感谢您的意见。我认为变量必须保存在一个新的字符串中。这有可能是导致负载滞后的原因吗?还要感谢SQL注入的输入;这里不是用户提供的所有服务器提供的数据。任何时候我使用用户提供的数据,我把所有的字符串放入变量,并使用mysqli真正的转义字符串*现在至少!* –