2016-08-31 1 views
0

私はいくつかの記事を読んだ後、クッキーがクライアントシステムで有効になっていないとセッションがPHPで動作することを理解しています。したがって、クッキーがクライアントシステムで有効になっていない場合、サーバーはユーザーの一意のセッションIDを作成し、サーバーはこの一意のIDを使用してクライアントを再調整します。クッキーが有効になっていない場合、セッションIDがURLに表示され、ページにフォームがある場合、hidden型の入力はcretadの名前がPHPSESSIDになります。しかし、私はphp.iniの変更を行う場合は、セッションIDはURLに表示されません。私はどのようなフォームを持っていない私のウェブサイト上のページを開き、php.iniの変更を行った場合phpsessidのでURLに表示されないようにして、そのページでセッションデータを取得する方法私はstackoverflowの上の他の回答を見てきまし説明し、誰もがこのような状況にURLのクッキーとセッションIDの可視性が無効である場合のセッションの動作方法

+0

あなたはより一貫した言い方で言い換えることができますか?実際の質問は何ですか? –

+0

クッキーが無効で、URL内のセッションIDの可視性も無効になっている場合、ページ上でセッションを取得する方法 –

答えて

1

を考慮していない私は、次の2つのリンクになりますしてください:

それでも可能ですが、お勧めしません。ユーザーがブラウザを閉じるとすぐにセッションが失われ、再度ログインする必要があります。

+0

ブラウザが閉じられたときにセッションCookieがフラッシュされるため、セッションは失われます。標準(非セッション)Cookieだけが長く生きます。 –

+0

私はすでに上記のリンクを辿っていますが、クッキーとURLからのデータの取得が両方とも無効になっていると、ページ上でセッションを取得する方法がわかりません。 –

+0

@BorisShchegolevしかし、ユーザーがブラウザを閉じていないとどうなりますか –

0

OK、クッキーを受け入れないクライアントがあるとします。また、あなたのWebサーバーにURL SESSIONID転送が無効になっています。あなたは何が起こるのか尋ねていますか?

絶対に何も起こりません。サーバーはクッキーを発行し、クライアントはそれを拒否します。ユーザーが正しいパスワードを入力した場合でも、ユーザーはログインしません。彼は首尾よくログインしますが、次のリクエストでは再びログインするように求められます。

このような状況を回避したい場合は、認証を別々に設計することができます。たとえば、OAUTHまたはその他のトークンベースの認証を使用できます。その後、サーバーはCookieヘッダーを使用せずにトークンを送信します。クライアント側のJavaScriptはそれを(つまりウェブストレージに)保存し、すべての要求でサーバーに送り返します。このアプローチは、AJAXベースのアプリケーションでうまくいきます。

関連する問題