久しぶりに書いてみる。
header('Location: ~~') って書いて実行して、ローカルのアパッチでは問題なくページが遷移できたのに、サーバにアップロードして実行したらページが遷移できなかった、なぜだろう? というお話。
理由を考えてみた。
以下のプログラムをローカル環境、サーバ環境でそれぞれ実行してみた。
■----transition1.php-----■
<?php
echo 'HAHAHA!!';
header('Location: index.php');
?>
■------------------------■
結果、ローカル環境では index.php に遷移し、サーバ環境では遷移せず、『HAHAHA!!』という文字列が出力されました。
というワケで、ローカル、サーバで動きが異なったのは、単純に設定か何かの問題だろうということで無視。
とにかく、やっぱり何かを出力しちゃってるっぽいぞと。
いったいそれはなんなんだと。
で、問題のプログラムを詳しく見ていったら、はい! わかった! 解決!
唐突に問題!
さて、今回の問題は、以下 2 つのプログラムと同様の問題により、header("Location: ~~") が機能しませんでした。
いったいドコが悪いのでしょう?
答えは土曜日くらいに!
解答がなくても土曜日くらいに!
■----function.php--------■
<?php
function process($var){
return $var * 2;
}
?>
■------------------------■
■----transition2.php-----■
<?php
require_once('function.php');
header('Location: index.php');
?>
■------------------------■
header('Location: ~~') って書いて実行して、ローカルのアパッチでは問題なくページが遷移できたのに、サーバにアップロードして実行したらページが遷移できなかった、なぜだろう? というお話。
理由を考えてみた。
- header() の前に何か出力してない?
ははは。まさかそんなワケないっしょ。却下。 - サーバの該当のページに、Basic 認証をかけているから?
Basic 認証をかけているページからかけていないページへ、その逆など、いろいろ試してみたけど特に関係ないみたい。 - 本当に、header() の前に何か出力してないのかい?
・・・やっぱこれかな? よし、調べてみよう。
以下のプログラムをローカル環境、サーバ環境でそれぞれ実行してみた。
■----transition1.php-----■
<?php
echo 'HAHAHA!!';
header('Location: index.php');
?>
■------------------------■
結果、ローカル環境では index.php に遷移し、サーバ環境では遷移せず、『HAHAHA!!』という文字列が出力されました。
というワケで、ローカル、サーバで動きが異なったのは、単純に設定か何かの問題だろうということで無視。
とにかく、やっぱり何かを出力しちゃってるっぽいぞと。
いったいそれはなんなんだと。
で、問題のプログラムを詳しく見ていったら、はい! わかった! 解決!
唐突に問題!
さて、今回の問題は、以下 2 つのプログラムと同様の問題により、header("Location: ~~") が機能しませんでした。
いったいドコが悪いのでしょう?
答えは土曜日くらいに!
解答がなくても土曜日くらいに!
■----function.php--------■
<?php
function process($var){
return $var * 2;
}
?>
■------------------------■
■----transition2.php-----■
<?php
require_once('function.php');
header('Location: index.php');
?>
■------------------------■