1

以下のこのコードは、ローカルホストで試してみると完全に機能しますが、サーバーにアップロードすると機能しません

$sendquery = "INSERT INTO `message` (`from`, `to`, `subject`, `date`,`message`) VALUES ('".$_SESSION['UID']."', '".$toarray['Uid']."', '$subject','$d', '$message')";
$sendresult = mysql_query($sendquery);

if($sendresult)
{
    header('Location: home.php?action=inbox&success=1');

}
else
{
    header("Location: home.php?action=inbox&success=2");
}

サーバーまたはコードに問題がありますか?

4

4 に答える 4

1

「Location」ヘッダーを設定する前に、コードの何も出力を開始していないことを確認してください。絶対URL
を使用していることを確認してください( HTTP仕様で要求されているとおり)

サンプル:

header('Location: http://' . $_SERVER['HTTP_HOST'] . '/Home.php');

この場合、リダイレクトは機能するはずです。

出力がすでに開始されているいくつかの一般的な理由:

  • BOM(バイト順マーク)が正しく処理されない
  • 警告または情報
  • 最初の前の空白またはその他のHTMLマークアップ<?php ... ?>
于 2012-04-15T19:48:39.300 に答える
1

SQL にエラーがある可能性があります。

何か (エラー メッセージなど) を表示すると、ヘッダーを変更できなくなります。

ヘッダーはエコーの前に送信され、その後の場所の設定は効果がありません。

于 2012-04-15T19:29:33.393 に答える
0

ローカルホストとウェブサーバーには多くの違いがあります。で開発されwindows、ホストされる問題を推測していlinuxます。

すべてのヘッダー文字列を小文字にし、その後実行を停止します

header("location: home.php?action=inbox&success=2");
exit();
于 2012-04-15T19:27:19.443 に答える
0

小切手

var_dump($sendresult); 出口();

エラー報告を有効にします。他のエラーが発生している可能性があります。ところで

$sendresult = 1;

if($sendresult) {

header('Location: home.php?action=inbox&success=1');

} そうしないと {

header("場所: home.php?action=inbox&success=2");

}

これは私にとってはうまくいきます。

于 2015-09-09T12:20:51.700 に答える