http://alex.wbjapan.com/

ブラウザをつけてから初訪問の時に、リンクの最後に「?PHPID=乱数」と出てしまうんですが、
なんででるのかわかりますでしょうか?

どうしたら消せるでしょうか。

一応ソース:http://alex.wbjapan.com/index.phps

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/03/16 03:23:29
  • 終了:--

回答(4件)

id:saoyagi No.1

saoyagi回答回数50ベストアンサー獲得回数02005/03/16 04:43:45

ポイント10pt

php.iniのsession.use_trans_sidを0にしてみてはいかがでしょうか。

id:alexer

ソレをしたらどの様になるのでしょうか?

他になにか起きてしまうのでしょうか?

php.iniはどこにあるのでしょうか?

詳しく分らないので次の回答を待ちます。

2005/03/16 05:12:42
id:ezslalom No.2

ezslalom回答回数12ベストアンサー獲得回数02005/03/16 08:49:04

ポイント10pt

ini_set(”session.use_only_cookies”, ”1”);

を、スクリプトの実行されるなるべく早い位置で実行してみてください。

ブラウザがクッキーを受け付けない設定になっていると

苦肉の策としてURL内にセッションIDを埋め込んで

セッションの維持を行おうとしますので、質問のような状態になるのだと思います。

php.ini は自分のPC上でPHPを使用しているのであれば

UNIX系なら /usr/local/lib ウィンドウズ系なら C:¥windows か C:¥winnt にあります

しかし、レンタルサーバである場合このファイルはユーザーには操作できません

そこで、このように ini_set 関数を使うと、該当ページが読み出される間だけ

php.ini ファイルに設定されている内容を変更できます。

id:alexer

実行しても変わりありませんでした。

なにかおかしいところでもあるのでしょうか。

2005/03/16 11:04:01
id:allows No.3

allows回答回数86ベストアンサー獲得回数02005/03/16 11:31:58

ポイント30pt

セッションの継続

 セッションはセッションIDで管理されます。したがって、複数のPHPファイル間を同一セッションとみなして処理するためには、セッションIDをPHPファイル間で引き渡す必要があります。

■セッションIDの引渡し方法

 PHPファイル間でセッションIDを引き渡す方法はいくつかあります。

(1)Cookieが使用できない場合

a)URLのパラメータとしてGETメソッドでセッションIDを渡す。

1)PHPの設定パラメータ「session.use_trans_sid」が1に指定されている場合

ハイパーリンクの相対URLに、URL Rewriting機能により自動的にセッションIDが追加され、次のファイルに引き渡されます。

PHPの設定パラメータ「session.use_trans_sid」を1に指定する方法には次の二つがあります。

・PHPのコンパイル時にオプションとして「--enable-trans-sid」を指定する。

・php.iniファイルで設定オプション「session.use_trans_sid」を1にし、Apacheをrestartする。

 なお、php.iniファイルの既定のディレクトリは/usr/local/lib/php.iniです。

2)PHPの設定パラメータ「session.use_trans_sid」が0に指定されている場合

ハイパーリンクのURLに、定数SIDを記述し、セッションIDを次のファイルに引き渡します。たとえば、以下のように記述します。

<a href=”next.php?<?=SID?>”>次ページ</a>

Cookieが使用できない場合、定数SIDには、セッション名=セッションIDが代入されます。たとえば、次のように置換されます。

<a href=”next.php?PHPSESSID=5fb6b70b37b53114518ce19ac215e8ea”>次ページ</a>

b)HTMLフォームのhiddenコントロールとしてセッションIDを引き渡す。

たとえば、以下のように記述します。

<input type=”hidden” name=”<?=session_name()?>” value=”<?=session_id()?>”>

具体的には、例えば、以下のように代入されます。

<input type=”hidden” name=”PHPSESSID”

     value=”5fb6b70b37b53114518ce19ac215e8ea”>

(2)Cookieが使用できる場合

 Cookieを使用してセッションIDが引き渡されます。

//ファイル検索

php.iniに関してはディストリビューションで違うので

検索してみてはいかがでしょうか

Windowsは記述しませんが linux系 なら

#find / php.ini

ででてくると思います。

id:alexer

詳しくありがとうございます。

回避するには具体的にどうすればよいのでしょうか。

2005/03/16 12:37:00
id:wintarsnow No.4

wintarsnow回答回数103ベストアンサー獲得回数22005/03/16 20:27:01

ポイント30pt

回避する方法ですが、セッションを使用しなければ良い訳なのですが、必要なのですよね?

では、クッキーを必須にするという方法があります。

これは、クッキーを許可していない閲覧者がセッションで管理されたコンテンツや機能を利用できないという制限がありますが、ほとんどの人がクッキーを許可していることを考えると、企業サイトなどでないかぎり有効な方法だと思います。

お使いのサーバで.htaccessが使用できるのであれば、

php_flag session.use_only_cookies On

php_flag session.use_trans_sid Off

の2行で出来ます。

実際に私はこのようにしてセッション管理をしております。

もし、セッションを使用していないのにご質問の状態になるということでしたら、php.iniでsession.auto_startがOnになっている可能性があります。

これは自動的にセッションが開始してしまう設定なので、これをOffにしてやります。

これも.htaccessに

php_flag session.auto_start Off

と記述すればOffに出来ます。

id:alexer

ありがとうございます!w

なおりましたーw

2005/03/17 13:02:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません