-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_real_escape_string() が役立ちますが、PDO を使用する必要があります。
  2. 変数の取得は $_GET['variable_name'] 経由で行われます
  3. mysql_query を使用する場合、配列をフェッチするか、while ループを実行して複数の結果をフェッチする必要があります。
  4. 上記で $query['typ'] が使用されている理由を理解できるように、おそらく PHP 配列を読む必要があります。

チェックアウト: 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'ます。

次に、クエリの値を使用する前に、クエリから結果を取得する必要があります。

mysql_.*第 3 に、ステートメントは減価償却され、メソッドは SQL インジェクションに対して脆弱であるため、PDO の使用を検討してください。

編集 (zerkms から): 4 番目に、フィールド名を「`」ティックで囲み、値を一重引用符で囲みます。

于 2013-04-11T22:43:28.193 に答える