第一引数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']使った方がよいと思います。