お仕事で別の環境やバージョンアップしたサーバーでも動作するか確認する必要があり
さっそく試したところものの見事にはまりました。
一つはPHPのエラーレベル。
ヘッダーなんかでページ遷移やトークンのやり取りをしている場面があったのですが、それがうまいこと機能していない。
よくよく見てみてるヘッダーを送信する前にすでに何か出ているのでヘッダーが送れんのんじゃボケというログが残っていた。
元の環境ではエラーは一切表示しないように表示していたため、何も出力されずにヘッダーはそのまま正常に出ていたということだった。
ではなぜエラーが出ていたのかというとPHPのバージョンが上がったことによるエラーだった。
一番大きかったのは「mktime」関数でのエラー。
PHP5.1.0あたりから扱いが変わったらしく、mktimeにセットする値に空がある場合は
Warning: mktime() expects parameter 1 to be long, string given in ~
fatal error: call to undefined function getallheaders()
function getallheaders()
{
global $HTTPSERVERVARS;
if (!empty($HTTPSERVERVARS) && isarray($HTTPSERVERVARS))
{
reset( $HTTPSERVERVARS );
while( $eachHTTPSERVERVARS = each($HTTPSERVERVARS) )
{
$name = $eachHTTPSERVERVARS['key'];
$value = $eachHTTPSERVERVARS['value'];
if(substr($name, 0, 5) == 'HTTP')
$headers[strreplace(' ', '-', ucwords(strtolower(strreplace('', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
関連記事