-2

我想我在这里搞砸了很多。如果对你们中的一些人来说这似乎很容易,我很抱歉。但是我真的不明白如果用户是管理员或只是用户,我应该如何获取参数。

我的参数是: 如果 typ 是 1 = 用户有管理员权限 如果 typ 是 9 = 用户只有普通权限

从这个特权我很乐意打印一些链接......如果你知道我的意思吗?

include ('./conf/connect.php');
        $typ = mysql_query("SELECT * FROM 'tz_members' WHERE 'typ'=($_GET'$typ')"); 
        if($typ == 1){
            print "POWER, ste prijavljen kot admin.";
            print etc...
            }
        if($typ == 9){
            print "Ste navaden uporabnik";
            print etc...

        }

希望你们中的某个人会如此友善地指导我朝着正确的方向前进。干杯,大卫

4

2 回答 2

1

这是对您的代码的更正,希望可以正常工作:

<?php
include ('./conf/connect.php');

$var = mysql_real_escape_string($_GET['typ']);

$query = mysql_query("SELECT * FROM `tz_members` WHERE `typ`='$var'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['typ'] == 1){
     print "POWER, ste prijavljen kot admin.";
} elseif($data['typ'] == 9){
     print "Ste navaden uporabnik";
}
?>

以您的方式进行操作的问题在于:

  1. 你没有 mysql 注入预防 mysql_real_escape_string() 对此有帮助,但你应该使用 PDO。
  2. 获取变量是通过 $_GET['variable_name']
  3. 使用 mysql_query 时,您必须获取数组或执行 while 循环以获取多个结果。
  4. 您可能应该阅读 PHP 数组,这样您就可以理解为什么上面使用了 $query['typ'](如果您还没有的话)。

查看:http ://www.tizag.com/mysqlTutorial/mysqlquery.php 另外:http ://www.tizag.com/mysqlTutorial/mysqlselect.php

于 2013-04-11T22:48:59.753 回答
0

有几个问题。

首先,它应该$_GET['typ']代替$_GET'$typ'.

其次,您需要在使用查询值之前从查询中获取结果。

第三,考虑使用 PDO,因为mysql_.*语句已被贬低,并且您的方法容易受到 SQL 注入的影响。

编辑(来自zerkms):第四,在字段名称周围使用“`”刻度并在值周围使用单引号。

于 2013-04-11T22:43:28.193 回答