2016-04-11 29 views
0

セッション修飾子

問題は、私はこれをどこか他のクッキーの名前を変更することはできません、次のとおりです。

session_name('_uid'); 

私の質問は次のとおりです。これらの2つの方法が相互に動作させるためにどのように? また、最初のメソッドの最初のパラメータで「ブラウジングセッションが終了したら」を参照する方法はありますか?

PS:私もphp.iniファイルいじり方法を受け入れる:D

EDIT:session_start()がファイルにあります。

EDIT v2:これを含むファイルは、他のものとは別物であり、これを行うために必要なコード行の数は関係ありません。 include_once()を使用してください。

EDIT v3:これはばかげている。 PHPはドメインの前にドットを置きます: sumPhpCookies
今は私はそれがなぜ本当に失われています。 (。私もここにsession_nameを使用していない)

EDIT v4の:コード:

<?php 
// Somehow rename PHPSESSID cookie 
session_set_cookie_params(-1,'/','www.forcemagic.xyz',true,true); 
session_start(); ?> 
+0

ブラウザはクライアント側です。 (残念なことに)誰かがブラウザを閉じたかどうかを発見する方法はありません。サーバに関する情報をサーバに返信しない(PHPが存在する場所です)ためです。セッションは、ユーザーが指定された有効期間内にページを再読み込みしないと消滅します。 - javascriptソリューションも非常に不正確です。 (私を信じて、私は試しました) – NoobishPro

+0

申し訳ありません、私は理解しています:)あなたができるならば、ちょうど第一の質問で助けてください。すでに編集しました:D – ForceMagic

+0

'session_set_cookie_params'が必要な理由が分かりません。確かにすべてが簡単な 'setcookie'から行うことができます – RiggsFolly

答えて

1
session_name('_uid') 

As the manual says、名前は英数字のみ(文字、数字)を含める必要があり、そして唯一の数字で構成することが許可されていない、それは少なくとも1つの文字が含まれている必要があります。

実際にアンダースコアが問題になりました。

0

session_nameが実際にsession_set_cookie_params宣言する必要があります。

http://php.net/manual/en/function.session-set-cookie-params.php

は、ブラウザがクライアント側で "brandan、bildumgsroman.org"

のコメントを参照してください。 (残念なことに)誰かがブラウザを閉じたかどうかを発見する方法はありません。サーバに関する情報をサーバに返信しない(PHPが存在する場所です)ためです。セッションは、ユーザーが指定された有効期間内にページを再読み込みしないと消滅します。 - javascriptソリューションも非常に不正確です。 (私を信じて、私は試しました)

しかし、ブラウザが閉じられているかどうかを判断する方法があります。しかし、私はそれをお勧めしません。

特定のセッションを持つユーザーがオンラインである単純なタイムスタンプをデータベースに格納する反復的なajax呼び出しを作成できます。次に、nowと最後の(2)pingの差が大きいキープアライブタイムスタンプのデータベースをPHPでチェックしてcronjobを実行すると、ブラウジングが停止したことがcronjobに通知されます。

+2

**マニュアル* * _ php.iniファイルで定義されているCookieパラメータを設定します。この関数の効果は、スクリプトの持続時間だけ持続します。したがって、すべての要求に対してsession_start()が呼び出される前にsession_set_cookie_params()を呼び出す必要があります。 – RiggsFolly

+0

動作しません:c BTW、私はすでにこれを試しました。 – ForceMagic

+0

@RiggsFollyあなたはそれをiniファイルに設定する方がよいと言っていますか?そして私はそれをどのように設定するのですか?/ /申し訳ありませんが、私はセッション処理に関しては初心者です:P/ – ForceMagic