0

私のサイトでこの大きな問題が発生しています。何が起こっているのかというと、ページからページへと移動しているときに、SESSIONが維持されていません。同じディレクトリにあるいくつかのソースコードを次に示します。さて、login.phpとlogout.phpのiframeを含むモーダルボックスのあるインデックスがあります。ログインしますが、別のページに移動するとセッションが実行されず、[ログイン]をクリックすると、Imはすでにログインしていて、セッションがあります。また、どうすれば自分のWebサイトに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"); } ?>
4

2 に答える 2

1

この問題を抱えている人にとって本当に何が悪いのかを見つけました。ユーザーがアクセスするすべてのURLがhttp://website.comまたはhttp://www.website.comであることを確認する必要がありますが、混合してはなりません。これらの両方で異なるページを持つことはできません。そうしないと、セッションが消えます。これは、wwwでは、website/だけでなくwww/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>)

基本的に、最初の3つのパラメーターが使用されます。必要がなければ、残りは言及する必要はありません。ではごきげんよう。

于 2012-07-07T06:18:29.353 に答える