2

最近、Web サイトを XAMPP から MAMP に移行しました。問題は、ログアウト システムが機能しなくなったことです。ログアウト ウィジェット:

<a href="logout.php">Log Out</a>

私のログアウトページ自体:

<?php 
session_start()
session_destroy()
header('Location:login.php');
?>

奇妙なことに、単純な echo ステートメントにするなど、logout.php に何かを変更すると、次のようになります。

<?php 
echo 'test';

//session_start()
//session_destroy()
//header('Location:login.php');
?>

ブラウザに「test」が表示されません。ページのヘッダーをコメントアウトしても、index.php にとどまります。私は 100% リンク パスに問題はありません。

logout.php ファイルを変更するかどうかに関係なく、サーバーが tmp/php のセッション ファイルを削除していないことがわかります。MAC OS X では、誰もがこの tmp/php フォルダーにアクセスして読み書きできるようにしているため、これは奇妙です。

OS: MAC OS X
サーバー: MAMP 内の Apache
PHP:5.4.4
ブラウザー: Google Chrome と Safari の両方で問題が発生

(これは私の処女航海であり、stackoverflow に質問を投稿しています。私の質問を改善するためのヒントがあれば、お知らせください)

4

6 に答える 6

1

以下のコードが含まれているときにlogout.phpを呼び出しても印刷されないtest場合は、他に問題があり、セッションとは何の関係もありません。

<?php 
echo 'test';
//session_start()
//session_destroy()
//header('Location:login.php');
?>

.htaccessあなたはそれがまだindex.phpを示していると言います、それはあなたがlogout.phpからインデックスに呼び出しをリダイレクトするあなたのファイルに書き換え規則を持っていることを私にさせます。ルールについては、htaccessファイルを確認してください。

MAMPのhtaccessに関する情報はここにあります

于 2013-01-02T12:00:57.753 に答える
1

代わりにこれを使用してみてください:

<?
    session_start();

    $_SESSION = array();
    header("Location: index.php");
?>

$_SESSIONをクリアするだけで、常に機能します

于 2013-01-02T11:52:10.497 に答える
0

スクリプトが PHP セッションを使用していると仮定すると、これらはログアウトの重要な部分です。ステートメントの末尾にセミコロンがないため、ログアウト スクリプトによって解析エラーが発生することに注意してください。多分ただのタイプミス。

<?php // RAY_EE_logout.php
session_start();

// CLEAR THE INFORMATION FROM THE $_SESSION ARRAY
$_SESSION = array();

// IF THE SESSION IS KEPT IN COOKIE, FORCE SESSION COOKIE TO EXPIRE
if (isset($_COOKIE[session_name()]))
{
   $cookie_expires  = time() - date('Z') - 3600;
   setcookie(session_name(), '', $cookie_expires, '/');
}

// TELL PHP TO ELIMINATE THE SESSION
session_destroy();

// REDIRECT TO THE HOME PAGE
header("Location: /");
exit;

HTH、〜レイ

于 2013-01-02T11:53:19.847 に答える
0

出力バッファを使用してみてください。

<?php 
ob_start();
session_start();
session_destroy();
header('Location:login.php');
?>
于 2013-01-02T11:53:40.613 に答える
0

私の場合、正しく定義されていないphpコードブロックに関係していました。私は<? ?>代わりに持っていた<?php ?>

これが誰かに役立つことを願っています。

于 2015-09-09T19:45:37.617 に答える
-2

@ tom.e.degroot:前回チェックしたとき、「動作しませんでした」はエラーメッセージではありませんでした。症状をもう少し説明する必要があります。http://SSCCE.orgのガイダンスに従って、独自のサーバーにインストールしてテストできるものを提供してください。ありがとう、〜レイ

于 2013-01-20T21:44:46.110 に答える