4

プライベート バックエンド (www.mysite.com/admin) を持つ Web サイト (www.mysite.com) を持っています。

管理領域でサイトにコンテンツを追加し、編集中のコンテンツを表示するために同じブラウザ ウィンドウのタブを行ったり来たりすると、セッションが期限切れ/終了/終了し、ログインページをもう一度。

私は同じコードを多くの Web サイト (これは私が自分で作成した CMS です) で何度も何度も使用しましたが、問題はありませんでした。私が考えることができる唯一のことは、この特定の Web サイトが別の Web サーバーでホストされており、php.ini 設定またはサーバー構成の問題である可能性があるということです。何か案は?

4

7 に答える 7

1

これはいくつかの結果である可能性がありますが、私の最初の本能は、セッション Cookie の有効期限がすぐに切れるかどうかを確認することです。サーバー ヘッダーが有効期限の値を変更する場合があります。サーバーから送信されているキャッシュ ヘッダーを確認することもできます。管理領域で非同期機能を使用している場合、何らかの理由でサーバーがキャッシュされたファイルの有効期限を変更している可能性があり、これが影響する可能性があります。

私はこれに対する解決策を見たいと思っています。

于 2012-09-26T03:17:01.527 に答える
1

いくつかの確認事項:

  • session.cookie_lifetime設定 - 短すぎる可能性があります。0 がデフォルトで、ブラウザが閉じるまで Cookie を保持します
  • session.cookie_path設定 - これを「/」にする必要があります
  • セッション ストレージ - セッション データが書き込まれていることを確認します。
  • session_close()セッションがデータベースに保存されている場合は、明示的に呼び出します。これにより、オブジェクトとデータベース リソースが破棄される前に確実に書き込まれます。
  • 任意の種類のプロキシを介してサービスを提供する場合は、変更されたヘッダー情報を確認してください。
  • キャッシュしている場合は、動的ページ (セッションが必要) がキャッシュではなく Web アプリによって提供されていることを確認します。
  • ローカルの /etc/hosts でテストする場合は、最初に Cookie をクリアして、新しいサーバーの Cookie が新鮮で競合しないようにします。
  • Cookie が実際に保存されていることをブラウザで確認します。たぶん、実際にはヘッダーに戻っていません。
于 2012-09-19T15:32:19.517 に答える
1

ブラウザの Cookie を確認しましたか? (実際のクライアント側のもの?) または別のブラウザーで運を試しましたか? 少し奇妙に聞こえるかもしれませんが、同様の問題があり、私の場合はこれらの Cookie に関係していました。あなたの奇妙な問題のために、それを理解する価値があるかもしれません. ご存じかもしれませんが、phpsession の値はその Cookie に保存され、ドメインも保存されます。幸運を!

于 2012-09-20T15:21:16.897 に答える
0

いくつかの理由が考えられます。提供されたサイトに関するコードや詳細がないため、 を使用している場合に問題が発生する可能性があると想定していますhtpasswdhtaccess認証を使用している場合、セッションは破棄されます。

于 2012-09-26T10:32:39.433 に答える
0

このトピックを読んだ後、問題が見つかりました。

ルート ディレクトリにカスタムの php.ini があり、どうやら $_SESSION に干渉しているようです。理由はわかりませんが、削除するとすべて正常に動作します。

最初は、複数のブラウザー タブで異なるサブフォルダーにあるページを開くことが問題のように見えましたが、サブフォルダーの問題と、サブフォルダー間で $_SESSION にアクセスできないという事実に絞り込まれました。

これを理解するために時間を割いてくれたすべての人に感謝したいと思います。

于 2012-09-27T06:48:17.907 に答える
0

経験から、私はあなたにいくつかのことを伝えることができます。

まず、セッションを開始する必要があります

session_start();

セッションを使用するすべてのページの上部。

次に、セッション データを保存するには、別の関数を呼び出して、保存されているデータを保存していることを php に伝える必要があります。その機能は

Session_write_close();

セッションへのデータの書き込みが完了し、後で使用するために保存する場合は、ページの下部にその関数が必要です。

これら 2 つを組み合わせると、セッションに適切に書き込み、入力したデータを保存し、後でサイトでアクセスできるようになります。

幸運を。

于 2012-09-26T12:22:42.250 に答える
0

以前、このような問題がありました。localhost からリモート ホストにサイトをアップロードしたばかりで、まだネームサーバーを変更していません。ホスティング会社は、私の Web サイトを表示できるように一時的な URL を提供してくれました。問題は、この URL がhttps://server_name.grserver.gr:8443/sitepreview/http/my_site.gr/のようになっていたことでした。 SSL 証明書を使用していたため、セッションはまったく機能しませんでした。plesk パネルを少しブラウズしたところ、http プロトコルを使用している別の一時的な URL が見つかりました。これですべて問題ありませんでした。したがって、https を使用している場合は、ssl 証明書に問題があるかどうかを確認してください (期限切れの場合など)。管理ページにログインすると問題が発生するとおっしゃいましたが、

于 2012-09-22T20:09:42.440 に答える