0

好的,我的网站一直存在这个主要问题。发生的事情是当我从一个页面到另一个页面时它没有保持它的会话。这是同一目录中的几个源代码。好的,所以我有一个带有模式框的索引,其中包含 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']; ?>

登录.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>';

          } 

注销.php

 <?php session_start(); ?>
    <?php if($_SESSION['username']) {
    session_unset(); 
    session_destroy(); 
    header("Location: index.php"); } 
    else { header("Location: index.php"); } ?>
4

2 回答 2

1

找出遇到此问题的任何人的真正问题所在。您必须确保用户访问的每个 URL 都是http://website.comhttp://www.website.com但不能混用。您不能同时拥有不同的页面,否则会话将消失。这是因为 www 它存储在 www/website/ 而不仅仅是 website/

于 2012-07-31T17:27:48.123 回答
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>)

基本上使用前三个参数。其余如非必要无需赘述。一切顺利。

于 2012-07-07T06:18:29.353 回答