douyan8267 2014-04-24 15:03
浏览 15
已采纳

试图让php了解登录为管理员

<?php
ob_start();
include 'connection.php';

$username = $_POST['username'];
$password = $_POST['password'];
$user_id = $_POST ['user_id'];


$query = "SELECT *  FROM Register WHERE username= '$username' AND  Password = '$password' AND user_id= '$user_id' ";

 $result = mysqli_query($connection, $query) or exit("Error in the query: $query. " .   mysqli_error());

$row = mysqli_fetch_assoc($result);



 if ($row ) {
 $_SESSION['username'] = $username;
 echo '' . $username . '';
 &&  ($row ) {
 $_SESSION['user_id'] = 1;
 header('Location: AdminPage.php');
 }


 else if ($row ) {
 $_SESSION['username'] = $username;
 echo '' . $username . '';``
 header('location:Login.php');
  && ($row ) {
 $_SESSION['user_id'] = > 1;
 header('Location: ProtectedPage.php');
  }
  else {

 $_SESSION['error'] = 'User not recognised';
   echo 'user not recognised';
  header('location:Login.php');

 }

im trying to make my php understand that if the user_id equals 1 then your an admin but i keep getting loads of errors and i know im vulnerable to SQL injection it isn't for live internet website which is why its vulnerable

  • 写回答

1条回答 默认 最新

  • dqblm40280 2014-04-24 15:16
    关注

    I think this is what you want:

    include 'connection.php';
    
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    $query = "SELECT *  FROM Register 
              WHERE username= '" . $connection->real_escape_string($username) . "' 
                AND Password = '" . $connection->real_escape_string($password) . "'";
    
     $result = mysqli_query($connection, $query) or exit("Error in the query: $query. " .   mysqli_error());
    
    $row = mysqli_fetch_assoc($result);
    
    if ($row) {
        $_SESSION['username'] = $username;
        $_SESSION['user_id'] = $row['user_id'];
        if ($row['user_id'] == 1) {
            header('Location: AdminPage.php');
        } else {
            header('Location: ProtectedPage.php');
        }
    } else {
        $_SESSION['error'] = 'User not recognised';
        echo 'user not recognised';
        header('location:Login.php');
    }
    

    In AdminPage.php, you should check that the user is an admin with:

    if (isset($_SESSION['user_id']) && $_SESSION['user_id'] == 1)
    

    ProtectedPage.php just needs to check that the user is logged in:

    if (isset($_SESSION['user_id']))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常