只有管​​理员才能进入页面

时间:2015-05-29 00:07:49

标签: php session admin

这是我的signin.php文件

我想创建一个只有admin(mousoufi)才能进入的页面。 我创建了一个新页面,我想发布只有管理员才能看到的内容。否则我想回应其他用户,他们没有这里的许可。 我只是在管理页面上进行会话?

有什么想法吗?

<?php
$user=$_POST['user'];
$pass=$_POST['pass'];
$con=new mysqli("localhost","root","","3333");
if (!$con)
 {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}



$sql = "SELECT username FROM `3333` WHERE password='$pass' AND       username='$user'";
$result = mysqli_query($con, $sql);

if (mysqli_num_rows($result) > 0) {
         // outputdata of each row
     while($row = mysqli_fetch_assoc($result)) {
         echo "You are now logged in " . $row["username"]."<br>";
     }
 }
 else {
     echo "Wrong Password Try Again"; }

 // Set session variables
 $_SESSION["username"] = "$user";
 $_SESSION["password"] = "$pass";
 print_r($_SESSION);

if ("$user"=="mousoufi" AND "$pass"=="1234"){
echo "HELLO Mousoufi ";
}


$con->close();
?>

1 个答案:

答案 0 :(得分:1)

如果你想使用会话,你需要在你需要的每一页上启动它们,这就完成了:

session_start();

将它放在php脚本的顶部。

你需要一种方法来区分管理员(如果你将有多个?),但由于你的问题只说一个,这应该适合你:

<?php
// start session
session_start();
// check if username is admin
if($_SESSION['username'] !== 'mousoufi'){
    // isn't admin, redirect them to a different page
    header("Location: /someotherpage.php");
}

备注

  • 你应该有更多可读的表名。 3333并不是最好的,特别是当你把桌子称为同样的东西时......
  • 您至少应该至少清理用户输入变量 - mysqli_real_escape_string()。最好是与PDOMySQLi Prepared Statements一起使用。

你的脚本错了,严重错误。如果您的用户没有正确登录,请不要设置会话。

if (mysqli_num_rows($result) < 0) {
     die("Wrong Password Try Again";);
} else {
     // outputdata of each row
     while($row = mysqli_fetch_assoc($result)) {
         echo "You are now logged in " . $row["username"]."<br>";
         $_SESSION['username'] = $row["username"];
         // and so on...
     }
}

这就是你的块应该是什么样子。