好的,我的网站遇到了这个主要问题。什么事情正在发生,因为我要从一页到另一页,它没有保持其会话。以下是同一目录中的几个源代码。好吧,我有一个带有模式框的索引,其中包含login.php和logout.php的iframe。它记录了我,但是一旦我进入另一个页面它没有进行会话然后当我点击登录时它说我已经登录并且有会话。另外,如何在我的网站上添加cookie,我发现这些令人困惑。
只是片段:
header.php的一部分继续每页
<?php session_start(); if($_SESSION["username"]) { ?>
<div style="display: inline-block; font-size: 14px; padding-left: 20px;">Hello <?php echo $_SESSION['username']; ?>
的login.php
<?php session_start(); require_once('connections/Main.php');
if($_SESSION['username']) {
echo '<div class="error_message">Attention! You, '.$_SESSION['username'].' are already logged in.</div>';
echo "<br />";
echo "Go <a target='top' href='index.php'>back</a> to the page you were viewing before this.</li>";
exit();
}
... database funcctions go here then add session
if($rowCheck > 0) {
while($row = mysql_fetch_array($result)) {
// Start the session and register a variable
session_start();
$_SESSION['username'] = $user;
//session_register('username');
echo '<script> parent.document.location.href = "index.php"; </script>';
}
logout.php
<?php session_start(); ?>
<?php if($_SESSION['username']) {
session_unset();
session_destroy();
header("Location: index.php"); }
else { header("Location: index.php"); } ?>
答案 0 :(得分:1)
找出出现此问题的人真正的错误。您必须确保用户访问的每个网址都是http://website.com或http://www.website.com,但不能混合使用。您不能拥有这两个页面的不同页面,否则会话将消失。这是因为使用www它存储在www / website /而不仅仅是网站/
答案 1 :(得分:0)
Cookie不存储在服务器端。 Cookie的重点是将信息存储在浏览器中,以便在页面之间保持信息。它们记录在客户端的浏览器中。要在传入客户端的浏览器中存储cookie,您需要使用
setcookie(<name-of-cookie>, <value>, <the time the cookie expires>, <path>, <domain>, <flag to indicate whether cookie is transmitted over HTTPS>)
基本上使用前三个参数。如果没有必要,不需要提及其余部分。 一切顺利。