第一引数nullのgenURLで絶対URLを生成させる
genURLは重要です。redirectと組み合わせるときはどうしても絶対URIでなければいけません。
ということでこの話題。
komagataさんのストーカーぽいですが許してください。
komagataさんは当初
define('SCRIPT_PATH', strtolower(trim(array_shift(split("/", $_SERVER["SERVER_PROTOCOL"]))))."://".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"])."/index.php");
としていました。
これに対して私は
>$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"])."/index.php"
$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']
で済むというかこの方が良いのでは?
と返したのですが、まだ問題があることに気がつきました。
$_SERVER['HTTP_HOST']ってほんとに信頼できるの?って話です。
HTTPServer: apache2 バーチャルサーバ立てている
デフォルトバーチャルホストの/hoge.php
<?php echo $_SERVER['HTTP_HOST']; ?>
という環境で
$telnet localhost 80 GET /hoge.php HTTP/1.1 HOST: www.google.com
と打つと,
HTTP/1.1 200 OK Date: Sat, 09 Jul 2005 08:53:52 GMT Server: Apache X-Powered-By: PHP/5.0.3 Content-Length: 14 Connection: close Content-Type: text/html www.google.com
と返ってきました。
てことで$_SERVER['SERVER_NAME']使った方がよいと思います。