1

管理者権限を持つユーザーのみを許可するページをコーディングしようとしています (DB のロールに対して管理者として記録されます)。彼らが管理者である場合、写真は承認のためにデータベースから取得されます。管理者でない場合、管理者ページにリダイレクトされ、画像が表示されません。

ログインした時点で誰でもページを閲覧でき、画像が表示されます。私は何を間違っていますか?

ありがとう

<?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

2 に答える 2

4
if ($num_rows =1){

する必要があります

if ($num_rows==1){
于 2012-04-06T21:19:49.593 に答える
1

スクリプトに問題がある可能性があります

A.ユーザー名usernameと競合しているdatabaseB. そのため、$_SESSION変数が設定されていた 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." );
}

これが役立つことを願っています

ありがとう

于 2012-04-06T21:50:13.433 に答える