目次
あなたのブラウザが Cookie をサポートしていないことを除外するものではありません

phpのsession_idが変化し続ける

Jun 23, 2016 pm 01:58 PM

ページの session_id が変更され続ける理由を教えてください。更新するたびに変更されます。問題の原因は何ですか? (解決策) )

あなたのブラウザは Cookie をサポートしていませんか?

最も可能性が高いのは session.auto_start = 1

session.auto_start = 0

私のブラウザは Cookie をサポートしています


それなら、私は話すコードを投稿するしかありません

RSS。 php

session_start();

$_SESSION["name"] = "lifffffff4";

echo "
";

echo session_id();

? >
最初に上記のファイルにアクセスし、次に次のファイルにアクセスします
Index.php
session_start();
echo $_SESSION["name"]; );

» ["名前"];
echo ""
?>
同じ効果


print_r($_COOKIE); を追加
空の配列をすべて出力しました

session_start();
$_SESSION["name"] = "lifffffff4";

echo $_SESSION["name"];

echo session_id(); Index.php">2222";
print_r($_COOKIE)

echo $_SESSION["name" ]; );
print_r($_COOKIE);
?> ini にセッション関連の設定はありますか?

php.ini を変更していないのですが、どうすればよいですか?

phpsession Cookie がないのはなぜですか?
これは間違いありません。
弱く尋ねます、session_id このプログラムには何か特別な用途がありますか?通常は $_SESSION を操作するだけです

setcookie を使用して Cookie 変数を設定し、それが読み取れるかどうかを確認します

同じコードを他の人のコンピューターに配置することもできます


echo     ini_get("session.use_cookies");//这个值多少
ログイン後にコピー

を使用しています。 setcookie を使用して cookie 変数を設定し、再度読み取れるかどうかを確認してみました。問題はありませんでした。エラー メッセージが表示されるかどうかを確認してください。


次に、セッション関連の php.ini 設定情報を投稿してください。皆さん、分析にご協力ください。

[セッション]
; データの保存/取得に使用されるハンドラー。
; http://php.net/session.save-handler
session.save_handler = ファイル

; save_handler に渡される引数。  ファイルの場合、これはパス
です。 データ ファイルが保存される場所。 注: Windows ユーザーはこれを変更する必要があります
; PHP のセッション関数を使用するための変数。
;
; パスは次のように定義できます:
;
;     session.save_path = "N;/パス"
;
; ここで、N は整数です。  すべてのセッション ファイルを
に保存する代わりに、 /path、これにより、N レベルの深さのサブディレクトリが使用され、
; セッション データをこれらのディレクトリに保存します。  これは、次のような場合に役立ちます
; または、お使いの OS に 1 つのディレクトリ内の多数のファイルに関する問題があり、
; 多くのセッションを処理するサーバーのより効率的なレイアウト。
;
; 注 1: PHP はこのディレクトリ構造を自動的に作成しません。
;         その目的のために、ext/session ディレクトリ内のスクリプトを使用できます。
; 注 2:
を選択した場合は、以下のガベージ コレクションに関するセクションを参照してください。         セッションのストレージにはサブディレクトリを使用します
;
; ファイル ストレージ モジュールは、デフォルトでモード 600 を使用してファイルを作成します。

を使用すると、これを変更できます。
;     session.save_path = "N;MODE;/パス"
;
; ここで、MODE はモードの 8 進表現です。 この
; に注意してください。 プロセスの umask は上書きされません。
; http://php.net/session.save-path
session.save_path = "d:/wamp/tmp"

; Cookie を使用するかどうか。
; http://php.net/session.use-cookies
session.use_cookies = 1

; http://php.net/session.cookie-secure
;session.cookie_secure =

; このオプションにより、PHP は
を保存および維持するために Cookie を取得して使用するようになります。 セッションID。 
との戦いに非常に役立つため、この作戦を推奨します。 独自のセッション ID を指定および管理しない場合のセッション ハイジャック。 それは
です。 セッションハイジャック防御のすべてが終わりではありませんが、良いスタートです。
; http://php.net/session.use-only-cookies
session.use_only_cookies = 1

; セッションの名前(Cookie 名として使用)。
; http://php.net/session.name
session.name = PHPSESSID

; リクエストの起動時にセッションを初期化します。
; http://php.net/session.auto-start
session.auto_start = 0

; Cookie の存続期間 (秒単位)、または 0 の場合はブラウザが再起動されるまでの存続期間。
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 1000

; Cookie が有効なパス。
; http://php.net/session.cookie-path
session.cookie_path = /

; Cookie が有効なドメイン。
; http://php.net/session.cookie-domain
session.cookie_domain =80tao.dev

; httpOnly フラグを Cookie に追加するかどうか。これにより、JavaScript などのブラウザ スクリプト言語にアクセスできなくなります。
; http://php.net/session.cookie-httponly
session.cookie_httponly =

; データをシリアル化するために使用されるハンドラー。  php は、PHP の標準シリアライザです。
; http://php.net/session.serialize-handler
session.serialize_handler = php

; 「ガベージ コレクション」プロセスが開始される確率を定義します
; すべてのセッションの初期化時に。 確率は
を使用して計算されます。 gc_probability/gc_divisor。 ここで、session.gc_probability は分子
です。 gc_divisor は方程式の分母です。 この値を 1 に設定します
; session.gc_divisor の値が 100 の場合、約 1% の確率で
が得られます。 gc はあらゆるリクエストで実行されます。
; デフォルト値: 1
; 開発値: 1
; 生産価値: 1
; http://php.net/session.gc-probability
session.gc_probability = 1

; 「ガベージ コレクション」プロセスが
ごとに開始される確率を定義します。 セッションの初期化。 確率は次の式を使用して計算されます。
; gc_probability/gc_divisor。 ここで、session.gc_probability は分子であり、
です。 session.gc_divisor は方程式の分母です。 この値を 1 に設定します
; session.gc_divisor の値が 100 の場合、約 1% の確率で
が得られます。 gc はあらゆるリクエストで実行されます。 この値を 1000 に増やすと、
が得られます。 0.1% の確率で、gc はどのようなリクエストでも実行されます。 大容量の本番サーバーの場合は、
; これはより効率的なアプローチです。
; デフォルト値: 100
; 開発価値: 1000
; 生産価値: 1000
; http://php.net/session.gc-divisor
session.gc_divisor = 1000

; この秒数が経過すると、保存されたデータは「ゴミ」として見なされ、
; ガベージ コレクション プロセスによってクリーンアップされます。
; http://php.net/session.gc-maxlifetime
session.gc_maxlifetime = 1440

; 注: セッション ファイルの保存にサブディレクトリ オプションを使用している場合
;       (上記の session.save_path を参照)、ガベージ コレクションは*行われません*
;       自動的に起こります。  ゴミは自分で処理する必要があります
;       シェルスクリプト、cron エントリ、またはその他のメソッドを介した収集。
;       たとえば、次のスクリプトは
と同等です。       session.gc_maxlifetime を 1440 (1440 秒 = 24 分) に設定:
;          cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 以下には、
を可能にする文書化されていない機能/バグがあります。 register_globals
の場合でも、グローバル スコープ内のセッション変数を初期化します。 無効になっています。  PHP 4.3 以降では、この機能が使用されている場合に警告が表示されます。
; 機能と警告は個別に無効にすることができます。 現時点では、
; 警告は、bug_compat_42 が有効になっている場合にのみ表示されます。 この機能
; 正しく対処しないと、重大なセキュリティ問題が発生する可能性があります。 
です; 本番サーバーではこの機能を使用しないことをお勧めします。 でも、あなたは
; 開発サーバーでこれを有効にし、警告も有効にする必要があります。 あなたが
; 開発サーバーではこの機能を有効にしないでください。
の場合でも警告は表示されません。 これによって引き起こされる使用エラーやデバッグエラーは追跡が難しい場合があります。
; デフォルト値: オン
; 開発値: オン
; 生産価値: オフ
; http://php.net/session.bug-compat-42
session.bug_compat_42 = オン

; この設定は、
を初期化するときに PHP によって警告を受けるかどうかを制御します。 セッションの価値をグローバル空間に移します。 session.bug_compat_42 は
の前に有効にする必要があります。 これらの警告は PHP によって発行される場合があります。 詳細については、上記のディレクティブを参照してください。
; デフォルト値: オン
; 開発値: オン
; 生産価値: オフ
; http://php.net/session.bug-compat-warn
session.bug_compat_warn = オン

; HTTP リファラーをチェックして、ID を含む外部に保存された URL を無効にします。
; セッションが
になるには、HTTP_REFERER にこの部分文字列が含まれている必要があります。 有効とみなされます。
; http://php.net/session.referer-check
session.referer_check =

; ファイルから読み取るバイト数。
; http://php.net/session.entropy-length
session.entropy_length = 0

; セッション ID を作成するためにここで指定します。
; http://php.net/session.entropy-file
;session.entropy_file = /dev/urandom
session.entropy_file =

; http://php.net/session.entropy-length
;session.entropy_length = 16

; HTTP キャッシュの側面を決定するには、{nocache,private,public,} に設定します
; または、アンチキャッシング ヘッダーの送信を避けるために、これを空のままにしておきます。
; http://php.net/session.cache-limiter
session.cache_limiter = nocache

; ドキュメントは n 分後に期限切れになります。
; http://php.net/session.cache-expire
session.cache_expire = 180

; trans sid サポートはデフォルトでは無効になっています。
; trans sid を使用すると、ユーザーのセキュリティが危険にさらされる可能性があります。
; このオプションは注意して使用してください。
; - ユーザーはアクティブなセッション ID を含む URL を送信できます
;   経由で他の人に送信します。 電子メール/irc/など
; - アクティブなセッション ID を含む URL が保存される場合があります
;   公的にアクセス可能なコンピュータ内。
; - ユーザーは同じセッション ID を使用してサイトにアクセスできます
;   ブラウザの履歴やブックマークに保存されている URL を常に使用します。
; http://php.net/session.use-trans-sid
session.use_trans_sid = 0

; セッション ID の生成に使用するハッシュ関数を選択します。
; 可能な値
;   0 (MD5 128 ビット)
;   1 (SHA-1 160 ビット)
; http://php.net/session.hash-function
session.hash_function = 0

; 変換時に各文字に何ビットを保存するかを定義します
; バイナリ ハッシュ データを読み取り可能なものに変換します。
; 可能な値:
;   4 (4 ビット: 0-9, a-f)
;   5 (5 ビット: 0-9、a-v)
; 6 (6 bits: 0-9, a-z, A-Z, "-", ",")
; Default Value: 4
; Development Value: 5
; Production Value: 5
; http://php.net/session.hash-bits-per-character
session.hash_bits_per_character = 5

; The URL rewriter will look for URLs in a defined set of HTML tags.
; form/fieldset are special; if you include them here, the rewriter will
; add a hidden field with the info which is otherwise appended
; to URLs. If you want XHTML conformity, remove the form entry.
; Note that all valid entries require a "=", even if no value follows.
; Default Value: "a=href,area=href,frame=src,form=,fieldset="
; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
; http://php.net/url-rewriter.tags
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

session.cookie_domain =80tao.dev


这个值去掉吧,,你确认需要?

这个是我项目的一个 配置 有影响吗

你说的去掉指的是什么意思

session.cookie_domain =80tao.dev
把这个去掉就可以了
但是为什么啊

session.cookie_domain =80tao.dev
把这个去掉就可以了
但是为什么啊

看命名还不清楚啊,,限制域啦

那个是设置session对应的cookie在什么域有效的
你是本地测试么?是http://localhost这么去访问你的项目的么?是的话就去掉,如果是正式站点,你改成

#注意加的那个点,表明所有子域有效,包括wwwsession.cookie_domain = .80tao.dev 
ログイン後にコピー

试下。

我填写那个域为什么就不行了啊  默认是空的 为什么 给我解释一下吧

那个是设置session对应的cookie在什么域有效的
你是本地测试么?是http://localhost这么去访问你的项目的么?是的话就去掉,如果是正式站点,你改成
PHP code
#注意加的那个点,表明所有子域有效,包括www
session.cookie_domain = .80tao.dev 

试下。


这个很奇怪啊,我好像没见过.dev的正式域名,有吗?

session.cookie_domain =80tao.dev

表示 session 只在 80tao.dev 域有效

所以需要也在这个域中测试你的代码

引用 24 楼  的回复:

session.cookie_domain =80tao.dev
把这个去掉就可以了
但是为什么啊


看命名还不清楚啊,,限制域啦
我是本地反问

我填写那个域为什么就不行了啊  默认是空的 为什么 给我解释一下吧
是我本地的虚拟主机 配置的虚拟域名

引用 26 楼  的回复:

那个是设置session对应的cookie在什么域有效的
你是本地测试么?是http://localhost这么去访问你的项目的么?是的话就去掉,如果是正式站点,你改成
PHP code
#注意加的那个点,表明所有子域有效,包括www
session.cookie_domain = .80tao.dev

试下。



这个很奇怪啊,我好像没……
怎么一说还真是,有点奇葩了,我也没见过dev的域名。

这个很奇怪啊,我好像没见过.dev的正式域名,有吗?
是我本地的虚拟主机 配置的虚拟域名

好吧 表示我不知道

これが古い投稿であることは承知していますが、私も最近この問題に遭遇しました。また、session_idは変更されず、ショッピングカートとして利用することはできません。次に、人為的に session_id("特定の値") を使用しましたが、セッションは期限切れになりません。ブラウザをどのように閉じても、前のセッションはまだ残っています。ここで誰かが私に答えてくれることを願っています。ありがとう

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか? Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO) PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO) Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

See all articles