0

基本的に、私はこのコードを別のphpページにナビゲートしようとしています..これはverify_user.phpです

$con = mysqli_connect("localhost", "root", "****", "myDB");
if (!$con){
    die("Connection to database failed: " . mysqli_connect_error());
}

$uname=$_POST['u_name'];
$pass=$_POST['pass'];

$qry = mysqli_query($con, "SELECT * FROM login WHERE user='$uname'");

if(!$qry){
    die("Query Failed: ". mysql_error());
} else {
    $row = mysqli_fetch_array($qry);

        if($_POST['u_name'] == $row["user"] && $_POST['pass'] == $row["password"]) {
            if ($_POST['u_name'] = "admin") {
                session_start();
                $_SESSION['name'] = $_POST['u_name'];
                header("Location:admin_panel.php");
            } else {    
                session_start();
                $_SESSION['name']=$_POST['u_name'];
                header("Location:main.php");
            }       
        } else {
            header("Location:main.php?id=Worng ID / Password!");
        }
    }
    ?>

このコードからわかるように、ユーザーが管理者の場合、admin_panel.php に移動する必要があります。ユーザーが管理者でない場合は、main.php に移動する必要があります。詳細については、これは私の admin_panel.php です

<?php
session_start();
if(isset($_SESSION['name'])){
   if(!$_SESSION['name']=='admin'){
?>



<!-- HTMML CODE -->



<?php
   }
   else
      header("Location:index.php?id=Only for admin.");
}
else
{
header("Location:index.php?id=Only for admin.");
}
?>

しかし、それは機能していません...

4

1 に答える 1

0

変化する

if ($_POST['u_name'] = "admin") {

if ($_POST['u_name'] == "admin") {

変化する

 if(!$_SESSION['name']=='admin'){

 if($_SESSION['name']=='admin'){

実際、あなたは変えることができます

<?php
session_start();
if(isset($_SESSION['name'])){
   if(!$_SESSION['name']=='admin'){
?>



<!-- HTMML CODE -->



<?php
   }
   else
      header("Location:index.php?id=Only for admin.");
}
else
{
header("Location:index.php?id=Only for admin.");
}
?>

<?php
session_start();
if(isset($_SESSION['name']) && $_SESSION['name'] == 'admin'){
?>



<!-- HTMML CODE -->



<?php
}
else
{
header("Location:index.php?id=Only for admin.");
}
?>

また、これは本当に素晴らしいことではありません

header("Location:index.php?id=Only for admin.");

URL にスペースを含めないでください

ところで、このコードは SQL インジェクションに対して脆弱です。

于 2013-11-09T13:19:01.040 に答える