Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在url(地址栏)中包含登录用户id_Php_Mysql_Server - Fatal编程技术网

Php 无法在url(地址栏)中包含登录用户id

Php 无法在url(地址栏)中包含登录用户id,php,mysql,server,Php,Mysql,Server,我试图在用户登录到类似abc.php的系统时回显url中显示的用户id?uid=5原因是,我需要在登录用户发表文章时传递登录的用户id,以便使用他们的用户id在feeds视图页面中显示他们的详细信息。我尝试了各种代码,但无法实现。当我运行下面的代码时,没有任何反应,只是停留在登录页面。请告诉我需要帮助 <?php session_start(); include_once('queryclass.php'); $error = false; if(iss

我试图在用户登录到类似abc.php的系统时回显url中显示的用户id?uid=5原因是,我需要在登录用户发表文章时传递登录的用户id,以便使用他们的用户id在feeds视图页面中显示他们的详细信息。我尝试了各种代码,但无法实现。当我运行下面的代码时,没有任何反应,只是停留在登录页面。请告诉我需要帮助

    <?php
    session_start();
   include_once('queryclass.php');



  $error = false;
  if(isset($_POST['btn-login'])){
  $username = trim($_POST['username']);
  $username = htmlspecialchars(strip_tags($username));

  $password = trim($_POST['password']);
  $password = htmlspecialchars(strip_tags($password));


   if(empty($username)){
    $error = true;
    $errorUsername = 'Please Input Username';
  }

  if(empty($password)){
    $error = true;
    $errorPassword = 'Please Input Password';       
   }elseif(strlen($password)< 6){
    $error = true;
    $errorPassword = 'Password must be at least six characters';
   }    

  if(!$error){


        $password = md5($password);
    $sql = "select * from company where username='$username' ";
    $result = mysqli_query($conn, $sql);
    $count = mysqli_num_rows($result);
    $row = mysqli_fetch_assoc($result);
    if($count==1 && $row['password'] == $password){
        $_SESSION['username'] = $row['username'];
        function do_user_directory(){
        $users = $this->load_all_user_objects();
        foreach($users as $user){?>
        header('location: loggedin.php?uid=<?php echo $user->id;?>');            
        <?php
        }
        }
    }else{
        $errorMsg = 'Invalid Username or Password';
    }
    }

    }


    ?>


   This is the queryclass.php

  <?php 
  require_once('connectdb.php');

  function load_user_object($user_id){
  global $db;

  $table = 'users';

  $query = "
              SELECT * FROM $table
              WHERE ID = $user_id
           ";

   $obj = $db->select($query);
    if(!$obj) {
        return "No user found";
     }

    return $obj[0];

   }

   function load_all_user_objects(){
   global $db;

   $table = 'users';

     $query = "
              SELECT * FROM $table

           ";

   $obj = $db->select($query);

    if(!$obj) {
        return "No user found";
     }

     return $obj;

   }


   ?>

在查询类中。Php查询语句使用单引号作为=“$user\u rid”

,所以让我们也将该id保留在$\u会话中:

在loggedin.php中的某个地方

你喜欢:

if(!isset($_SESSION['user'])) {
  header('Location: logout.php');
  exit(0);
}
获取经过身份验证的用户id,如:

$user_id = $_SESSION['user']['ID'];
如果要在html中的某个地方回显用户id,只需执行以下操作:

<?php $user_id = $_SESSION['user'] ? $_SESSION['user']['ID'] : 'default'; ?>
<img src="/uploads/users/<?=$user_id?>.jpg">

这不是对您问题的回答,但请查找php sql注入漏洞。为什么不在$\u会话['uid']中保留用户id,并在不从$\u GET数组传递数据的情况下使用该数据?这是一个原型。。。我很清楚你所指出的。所以从一开始就没有太多的工作要做。我只是不明白为什么在用户登录时通过$this->load_all_user_对象检索整个users表;把他转移到某个地方?如果表将有10000行呢?嗨,这更像是使用用户id在feeds视图php页面中检索登录的用户信息……就像twitter或facebook feeds页面一样。
<?php $user_id = $_SESSION['user'] ? $_SESSION['user']['ID'] : 'default'; ?>
<img src="/uploads/users/<?=$user_id?>.jpg">