アプリ版:「スタンプのみでお礼する」機能のリリースについて

先ほど気がついたのですが

$ENV{'REQUEST_URI'}

が ローカルと サーバー上で 扱いが違うので
統一したいと思います
設定を変更をするにはどうすればいいのでしょうか?


.../abc.cgi?a=1 だとすると

ローカルでは ?より前が返ってきます。
 .../abc.cgi
サーバーでは ?以降もいっしょに返ってきます・・・
 .../abc.cgi?a=1

値が違うので。。。

常に?以降を切り取るようにすればいいかもしれないですが......
簡単に設定で済む方法があればよろしくお願いします

A 回答 (3件)

真っ先に思いつくのは


$ENV{'REQUEST_URI'}
ではなく
$ENV{'QUERY_STRING'}
を参照した方がよいのではないかと。→参考URL


$ENV{'REQUEST_URI'}にこだわるらその理由と、ローカル/サーバのサーバソフト(ApatchとかAnHttpd?)を補足してください。設定といってもサーバソフトによってできるかできないか、またその手段も異なると思いますので。

参考URL:http://www.futomi.com/lecture/form/#s3

この回答への補足

設定がわからないので

プログラムの最初の方で
条件文で
 サーバーにあるときは、切り取るようにしました。

$ENV{'REQUEST_URI'} = (split('\?', $ENV{'REQUEST_URI'}))[0];

補足日時:2005/10/25 20:31
    • good
    • 0
この回答へのお礼

返信ありがとうございます

サーバーは
FreeBSD 4.10 Apache/1.3.33 (Unix)
です。

ローカルは、windows+Anhttpdです。

お礼日時:2005/10/26 09:35

質問を勘違いしてました。


?以降ではなく、?の前だけが欲しいんですね。失礼しました。
    • good
    • 0

> $ENV{'REQUEST_URI'} = (split('??', $ENV{'REQUEST_URI'}))[0];



連想配列%ENVへの書き込みが許されてない環境なのかも、
いったん別変数(ex. $req_uri=split...)に書き出す形にしてみては。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。

書き方がわるかったのですみません。
$ENV には書き込み可能です
$ENV{'REQUEST_URI'} = (split('\?', $ENV{'REQUEST_URI'}))[0];

で 同じ値になるようにとりあえず調整しています。

お礼日時:2005/10/26 09:34

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