人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現在PHPにて簡単なWEBアプリを作っています。
さくらインターネットのレンタルサーバに設置したところ、画面遷移が行なわれない症状が出ています。
ローカル環境では問題なく遷移しました。
ローカル環境
・PHP5.3
さくら環境
・PHP 5.2.12 (CGI版)

require('sample.php');
header("Location:http://q.hatena.ne.jp/");

など、どの方法を取っても画面遷移が行なわれません。

自宅環境ではapacheモジュールで動かしています。
さくらインターネットのCGIにしか対応していない点が問題なのでしょうか?

少しでも何か気がつく事があればご教授お願いします。

●質問者: ピ
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache CGI PHP require Web
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● Km1967
●30ポイント

こちらの方と同じ症状ではないか?

http://d.hatena.ne.jp/gaziro2000/20090928/1254138914

なんのこっちゃって、PHPは " ?> " で閉じた後に文字列あると、HTMLとして出力しちゃうんだよね!?

だからrequireされた時点で、ヘッダー付き文字列を外部に送出しちゃうので、

その後にheader関数でリダイレクト仕様としても、もう出ちゃってるよって事(だよね?)

だから、ファイルの最後に不要な改行を入れてしまったのがアウトの原因て事。

(´ρ`)アウ

requireしている sample.php の末尾改行を取れば直る可能性大。

◎質問者からの返答

解決致しました。ありがとうございます。


2 ● ko8820
●50ポイント

FTP転送するときの改行コード&文字コードがさくらインターネット

の仕様にあってないのでは?

おそらく改行コードがCR+LFになってるので、UNIX環境ではちゃんと動作しないと思われる。

◎質問者からの返答

解決致しました。ありがとうございます。


3 ● ホーエンハイム
●50ポイント

まずは障害の切り分けをしましょう


header("Location: http://q.hatena.ne.jp/");

この1行だけで画面遷移はしますか?

◎質問者からの返答

今丁度それを実行したところでした。

その一行だけで試した所、正常に遷移しました。

ので、やはり2番の方の通り、文字コードが原因の可能性が高いと思いますがどうでしょうか?


4 ● ホーエンハイム
●20ポイント

その一行だけで試した所、正常に遷移しました。

sample.phpの中身を拝見しないと何とも言えません。

もし文字コードや改行コードが問題なのであれば、何らかのエラーが返ってくるはずです。

◎質問者からの返答

原因が判明しました。

これはおそらく単純にソース上の問題かと思われます。。。。

下記のように書いており、最初のを削除した所正常に処理されました。

ただ、ローカルではこのままで動いたので、なぜ?という感じですが。

// ログイン処理

?>

ここに実処理

?>


5 ● amagami
●20ポイント

header行の次に「exit;」を入れてみたらいかがですか?

と言うか、入れないと、この後の処理が普通に行われて遷移に失敗してしまうような気がします。

header("Location: http://q.hatena.ne.jp/");

exit;

// この後の処理

◎質問者からの返答

入れておりました。上記の件で解決しました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ