2017-07-10 2 views
-3

"username"というSQLクエリと$ _SESSIONクッキーを作成しました。基本的には、 "members"の "rank"列に含まれている "logged in"ユーザーランクのデータベースをクエリします。私のデータベースのテーブル。ここでSELECTランクFROMメンバーはどこですか?

は私のヘッダコードは、彼らが実際にログインしていることを確認することである(それ以外の場合は、ログインページにリダイレクトし)

session_start(); 
if (!isset($_SESSION['username'])) { 
header("location:login/main_login.php"); 
} 

、ここでは、私は私のクエリのためにこれまでのところありませんが、私は全く持っているものです手がかりは、どのようにのみログインしているユーザを選択して続行する注:私は、私はまた、変数のために設定したクエリが

$result = $conn->query("SELECT rank FROM members WHERE "); 
$userrank = $result->fetchAll(PDO::FETCH_OBJ); 

を完了していないと認識していますMyRankを使用して、特定のコンテンツを表示するユーザーのランクを確認できます。 (わからないことは、本当に私のクエリの面で重要うまくいけば、あなたのアイデアを取得する場合。)

$MyRank = $userrank[1]->rank; 

EDIT:追加情報。

私は基本的に、ユーザーがランク付けした内容に基づいてコンテンツを表示しようとしています。 IE)特定のhtmlを表示したい管理者の場合彼らがユーザーであれば、別のhtmlを表示したいと思う。どのように私は(それが動作していない)は、現在、それをやっているので、のようなif文をPHPである:

if ($MyRank == "Administrator"){ 
      echo adminpanel(); 
}else if ($MyRank == "User") { 
echo userpanel(); 
} 

は基本的に私がいる問題は、私のユーザーや管理者パネルは、すべてのユーザーがない限り表示を文句を言わないということです私のデータベースの "管理者"または "ユーザー"です。そのテーブルに管理者とユーザーが存在する場合は、何も表示されません。推測に基づいて

+0

編集ご質問や、サンプルデータと望ましい結果を提供します。 –

+0

@ GordonLinoffできるだけ多くの情報を追加しようとしました。ハハを説明するのは奇妙な問題です。 – DragonKyn

答えて

0

$authUser = $_SESSION['username']; // get the logged in user from session, guess this is the username 

$result = $conn->query("SELECT rank FROM members WHERE username='$authUser';"); 
// if its userid then userid=$authUser without single quotes 

$userrank = $result->fetchAll(PDO::FETCH_OBJ); 
+0

間違いなく私は少し近くになった。私はこのエラーを受け取りました: '列が見つかりません:1054不明な列 'where節'のDragonKynは私のユーザー名です。権限のあるユーザーを正確に見つけても、テーブルを見ていないように見えることを意味しますか?それを列として扱っています。あなたが提案したように私がどのようにクエリを書いたかは次のとおりです。 '$ result = $ conn-> query(" SELECT rank FROM members WHERE username = $ authUser ");' – DragonKyn

+0

はこのようにする必要があります... username = '$ authUser '....検索(テキスト)値は一重引用符で囲む必要があります。 – blokeish

+0

これはOKですが、潜在的なSQLインジェクションを追加します。 @DragonKyn、ここに示す文字列連結アプローチの代わりにパラメータバインディングを使用していますか? – halfer

関連する問題