Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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 日志登录会话在另一页中不工作_Php_Session_Pdo - Fatal编程技术网

Php 日志登录会话在另一页中不工作

Php 日志登录会话在另一页中不工作,php,session,pdo,Php,Session,Pdo,我有一个页面名authentication.php单击login后,它将在同一页面中显示会话信息,但当我尝试在另一个页面(如userprofile.php中显示相同的登录用户信息时,它不会显示任何内容 <?php if ($_POST) { $logdb = new PDO('mysql:host=localhost;dbname=mydbname', 'root', '12345'); $logdb->setAttribute(PDO::ATTR

我有一个页面名
authentication.php
单击login后,它将在同一页面中显示会话信息,但当我尝试在另一个页面(如
userprofile.php
中显示相同的登录用户信息时,它不会显示任何内容

<?php

    if ($_POST) {

      $logdb = new PDO('mysql:host=localhost;dbname=mydbname', 'root', '12345');
      $logdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $stmt = $logdb->prepare("SELECT * FROM users WHERE username=:username AND password=:password");
      $stmt->bindParam(":username", $_POST['username']);
      $stmt->bindParam(":password", $_POST['password']);
      $stmt->execute();

    $atributes = $stmt->fetch(PDO::FETCH_OBJ);
    if ($atributes) {
        session_start();

         //$_SESSION["loggedIn"] = true;
         $_SESSION['username'] = $_POST['username'];
         $_SESSION["ID"] = $atributes->ID;
         $_SESSION["country"] = $atributes->country;


      } else {
          echo 'Login failed!';
        }
      } else {
          echo '<form name="login" action="" method="POST">
      Username: <br />
      <input type="text" name="username"/><br />
      Password: <br />
      <input type="password" name="password"/><br />
      <button type="submit">Login</button>
      <a href="register.php">Register</a></form>';
      }

?>

<?php 
 echo  ($_SESSION["ID"]);
 echo  ($_SESSION["username"]);
 echo $atributes->country;
 ?>

这是我在一个新页面中用来显示记录的用户信息的内容,但我没有得到任何结果,也没有错误。你能在这方面帮助我吗

<?php 
session_start();

    if(!isset($_SESSION['username'])) {

         $_SESSION["ID"] = $atributes->ID;
         $_SESSION["username"] = $atributes->username;
         $_SESSION["country"] = $atributes->country;

} ?>
    <?php 
     echo  ($_SESSION["ID"]);
     echo  ($_SESSION["username"]);
     echo $atributes->country;
     ?>

在我的页面的标题处,我还有一个导航栏,如下所示

<?php if(!isset($_SESSION['username'])) { 
 include($root . 'includings/unloggedU.php');
}else{
include($root . 'includings/loggedU.php');
} ?>

在第一页设置
$\u会话['country']=$atributes->country因为当前代码中没有为此设置会话变量

在第二页中,您应该可以访问所有会话变量——您可以单独测试这些变量,以查看它们是否已设置

  <?php 
  session_start();  // always put this at the top of the page see Ryan's comments

  echo $_SESSION["ID"] . "<br />";
  echo $_SESSION["username"] . "<br />";
  echo $_SESSION["country"] . "<br />";
  ?>

是的,是的,无论如何,他应该会得到一个错误,因为在该页面中没有$attributes它起作用了,但是我有这样的
}其他{include($root.'includings/HloggedU.php');}?>
用于导航栏loggedin和unlockedusers@Codesoft-但是您现在可以访问会话变量吗?根据Ryan Vincent的评论和我上面的评论,始终最好设置
会话_start()正常工作后,在页面的最顶端-所有页面上-在所有其他页面之前,兄弟,但我有类似的
用于导航栏日志和未登录用户