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()你的正常工作后,在页面的最顶端-所有页面上-在所有其他页面之前,兄弟,但我有类似的
用于导航栏日志和未登录用户