1つだけ過去を変えられるとしたら?

ローカル環境からWEBサーバに作ったPHPファイルを移動させたのですが、

header(Location:)がうまく動かなくなってしまいました。
アドレスがおかしいのかと思って
いくつか試してみたんですが
ファイルによってうまく行くのと行かないのがあるようです。

傾向としては
$chkに5が入っていたら
test.phpに移動する。

if($_SESSION['chk'] != '5'){
 header('Location: ./test.php');
 exit;
}
はうまく動くのですが
ifでいくつか処理を行ったあとに
if(isset($_POST('submit')){
 いくつかの処理
 header('Location: ./login.php');
}
とするとうまく動かないという状態です。

どのようなケースが考えられるでしょうか
アドバイスよろしくお願いします。

A 回答 (3件)

こんにちは。



うまく動かないと言うのはエラーが出てるということでしょうか?
仕様がわからないのでうまく動かないというのはどう動かないのかがわからないので、
エラーが出てると予想します。
うまく動かない方の「いくつかの処理」のところで文字列等出力していませんか?
ローカルサーバの設定でヘッダ前に文字出力があってもエラー表示しないようにしてあったけど
Web上のサーバはそれを許していないとかが考えられます。

*外していたら申し訳ございません。

この回答への補足

レスありがとうございます。

うまく動かないというのは
そのアドレスに飛ばされないということです。

if(count($result)>0){
 $_SESSION['chk'] = '5';
 header('Location:./test.php');
 exit;
}else{
 $error_fg='on';
 $error_msg='入力されたUser IDとPasswordは未登録です!!';
}

これが問題の動かないheaderの1つでDBに接続して一致するデータがあればchkに5をいれて指定のアドレスにとばす。
一致しなかったら$error_fgをonにして$error_msgにエラーの文を入れる。
という処理をさせているつもりです。
確認のタメにelseになるようにもやってみたのですがそのときは問題なくエラーのメッセージがでてきたので
if文自体はちゃんと機能していると思います。

やはりローカルとWEBサーバのPHP.iniの設定の違いが影響しているのでしょうか?

補足日時:2006/06/15 14:24
    • good
    • 0

> if(isset($_POST('submit')){



ここでエラーが出ていませんか?
$_POST['submit']でなくてはいけませんし、)が一つ足りません。

単なる記載ミス?
    • good
    • 0

header('Location: ./test.php');


をフルパスで記述する。

とか。
    • good
    • 0

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


おすすめ情報