プロが教えるわが家の防犯対策術!

お世話になります。
 Linux + Apache 2.0 + PHP Version 4.3.2 を使用しています。
 
 携帯から使用していると、ごくたまに
「Warning: session_start(): The session id contains invalid characters,
valid characters are only a-z, A-Z and 0-9 in」というエラーが出てしまいます。

 セッションIDとして使われる文字列が不正という事だと思うのですが、人為的にセッション変数を触らない限り、このような事は起きないものかと認識しておりましたが、違うのでしょうか?
 その辺の記述が探し出せず、困っています。 

 この辺り、ご経験がある方、ご教示いただけると助かります。

A 回答 (2件)

idをGETで渡しているのであれば、単純にGETの最大長を超えているとかですかね。



公式サイトである場合、各社ともuidを取得するためにパラメータをGWで勝手に付加したりしますし
// 公式サイトでsession_id引き回しなどはしないと思いますけども^^;;
意図しないところでパラメータが切れたりなどする可能性はあります。

GWの仕様が現在どうなっているか知りませんが、パラメータ名が既に定義されているものだったりすると
上書きされてしまったりする可能性もありますね。(uidとか)

ともあれ、エラーケースのsession_idにascii以外の文字が本当に入っているかどうか、
実際に渡っている文字列は何なのか確認する必要があるかと思います。

正常なidでかつエラーが出る状況・・・だとcoreのbugかも知れませんね・・・
    • good
    • 0
この回答へのお礼

お礼遅くなりました。
 有難うございます!!
 パラメタの上書きについては考えてませんでしたのでとても参考になりました!!

お礼日時:2007/12/03 10:25

お使いの端末はなんでしょう。



携帯はほとんどの端末でcookieが使えません。
使える端末でも制限が厳しいです。
cookieが使用できないので当然sessionも使用できません。

この回答への補足

有難うございます。
 セッションIDはcookieを使わず、GETまたはPOSTで引き継ぐ仕様にしております。
 ごくまれに上記エラーが出る以外では、通常通り使用出来ているのですが・・・

 ちなみにエラーが確認出来たのはソフトバンクらしいのですが(他のものでも起こっているかも知れません)、もちろんGETのURLについたセッションIDを手動で書き換えたり、フォームのhidden属性のセッションIDを書き換える等は、していないのです。

補足日時:2007/11/05 11:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!