2012-04-06 22 views
1

私は管理者権限(DBの役割に対して管理者として記録)を持つユーザーのみを許可するページを作成しようとしています。彼らが管理者の場合は、写真をデータベースから取り出して承認します。管理者でない場合、管理ページにリダイレクトされ、画像は表示されません。管理者のみアクセスph

ログインした誰でもそのページを見ることができ、画像が表示されます。私は間違って何をしていますか?

おかげ

<?php 

session_start(); 



$isLoggedIn = isset($_SESSION['first_name']) && isset($_SESSION['username']); 
$username = $_SESSION['username']; 

if ($isLoggedIn && $_SESSION['username']){ 


echo "Welcome ".$_SESSION['first_name']."<br><a href='login/logged_out.php'>log  
out</a>"; 

} 


$username = $_SESSION['username']; 
//var_dump($username); 

include("..\connection\connection.php"); 


// Connect to server and select database. 

mysql_connect($host, $username, $password)or die("cannot connect"); 

mysql_select_db($db_name) or die("cannot select DB"); 

$query=mysql_query("SELECT * FROM users WHERE username = '$username' AND role = 
'admin'"); 

echo(mysql_error()); 

$num_rows = mysql_num_rows($query); 


if ($num_rows =1){     

include("..\connection\connection.php"); 

// Connect to server and select databse. 
mysql_connect($host, $username, $password)or die("cannot connect"); 
mysql_select_db($db_name) or die("cannot select DB"); 


$photo=mysql_query("SELECT * FROM images WHERE approved='N'"); 

echo(mysql_error()); 

$numrows = mysql_num_rows($photo);//counts the number or rows returned from database 
matching the mysql_query. 

if ($numrows==0){ 

echo "There are no images awaiting approval."; 
} 


while($get_photo=mysql_fetch_array($photo)){?> 

<a href="approve_image_submit.php?images=<?php echo $get_photo['big_images']; ?>" 
target=""><img src="<? echo $get_photo['url']; ?>" title=""> 


<? } ?> 
<? 
}else{ 


die ("You do not have permission to view this page. Redirect to index.phph Click <a 
href='login/login_page.php'>here</a> to log in."); 
       // 


} 
?> 

答えて

4
if ($num_rows =1){ 

if ($num_rows==1){ 
+0

ああそうです。もちろん。ありがとう。私は==に変更されましたが、管理者権限を持つユーザーは、管理者以外の役割を持つユーザーと同じ "このページを表示する権限がありません"というメッセージが表示されます。 – user1022772

+0

'if($ num_rows)'だけを試してみませんか? –

+0

うんうん。また、接続ファイルへのパスが認識されないようです。私がmysql_connectと指定したホストなどを入れたとき、それはうまくいった。 – user1022772

1

だから、月のものである必要があり、あなたのスクリプトで間違っている

A. usernamedatabaseユーザ名 B.だから、$_SESSION varriablesとして衝突セット C.無効logic

私はこれが

感謝を役に立てば幸い私は上に行くことができると

に私は、コードを書き換えるために助けを持っていますが、関連情報を

session_start(); 
include ("..\connection\connection.php"); 

$username = @$_SESSION ['username']; 
$rowPhoto = array(); 
$dbHost = ""; 
$dbUser = ""; 
$dbPass = ""; 
$dbName = ""; 

if ($_SESSION ['AUTH'] == true && ! isset ($_SESSION ['username'])) { 
    echo "Welcome " . $_SESSION ['first_name'] . "<br><a href='login/logged_out.php'>log out</a>"; 
    exit(); 
} 
$mysqli = new mysqli ($dbHost, $dbUser, $dbPass, $dbName); // Replace with relevant information 
$result = $mysqli->query ("SELECT * FROM users WHERE username = '$username' AND role = 'admin'"); 

if ($result->num_rows == 1) { 
    $userInfo = $result->fetch_assoc(); 
    $photoResult = $mysqli->query ("SELECT * FROM images WHERE approved='N'"); 
    $_SESSION ['AUTH'] = true; 
    $_SESSION ['first_name'] = $userInfo ['first_name']; // Replace With 
    $_SESSION ['username'] = $username ; 
                 // Information 
    if ($photoResult->num_rows == 0) { 
     echo "There are no images awaiting approval."; 
    } else { 
     $rowPhoto = ""; 
     while ($rowPhoto = $photoResult->fetch_assoc()) { 
      echo "<a href=\"approve_image_submit.php?images={$rowPhoto['big_images']}\" target=\"><img src=\"{$rowPhoto['url']}\" title=\"\">"; 
     } 
    } 

} else { 

    die ("You do not have permission to view this page. Redirect to index.phph Click <a 
      href='login/login_page.php'>here</a> to log in."); 
} 

を交換する必要があります

+0

ありがとう。あなたはおそらく私はまだPHPの基礎を学んでいると言うことができます。あなたのコードは少し消化するつもりです。ありがとう – user1022772

+0

それは大丈夫...マイナーな変更と..私はあなたのスクリプトの作業を得ることができると思う....私はあなたに追加の問題がある場合はお知らせください – Baba

関連する問題