header()は私が望んでいたページにリダイレクトしません。エラーメッセージはなく、ヘッダー関数はXamppでは正常に機能しますが、本番Webサーバーでは機能しません。
私が達成しようとしているのは、リンクのテーブルで、APRボタンをクリックすると、[ステータス]列がすぐに[承認済み]に変わることです。これはローカルホスト環境では機能しますが、本番サーバーでは機能しません。
私はすでにob_startとob_end_flushを試しましたが、空白や線があるかどうかも確認しました。
index.phpの前にある「./」も削除しました。
// this is the reservation.php
if (isset($_GET['apr'])) {
$rsID = $_GET['apr'];
$query = $conn->query("UPDATE reservations SET reservStatus = True WHERE
reservID = $rsID");
header("location: ./index.php");
}
// this is the index.php
<?php
require 'header.php';
if (isset($_SESSION['user_info'])) {
include 'reservation.php';
} else {
include 'login.form.php';
}
include 'footer.php';
index.phpにリダイレクトされ、そこからセッションが開始されている場合は、ページがreservation.phpに戻ると予想していました。
PHPスクリプトは、リダイレクトヘッダーの後でも停止しません。die();
関数を呼び出して、PHPスクリプトが読み込まれ続けるのを停止する必要があります。
// this is the reservation.php
if (isset($_GET['apr'])) {
$rsID = $_GET['apr'];
$query = $conn->query("UPDATE reservations SET reservStatus = True WHERE
reservID = $rsID");
header("location: ./index.php")
// Add these two lines
die();
exit();
}
スクリプト内のすべてのリダイレクトヘッダーの下にこれらの行を追加することもできます。ありがとうございます。
私はあなたの問題を抱えていると思います、私が今までに得たのはあなたのウェブサイトのヘッダーセクションにあなたのウェルカムメッセージが表示された後にあなたがページをリダイレクトしているということです、
PHPは最初に送るので、だから、実際に、あなたは(あなたのケースでは、ヘッダ部で歓迎メッセージ)をブラウザに送信(PHP経由)出力のいずれかのタイプの後に、ヘッダー機能を呼び出すことはできませんContent-type
ブラウザにヘッダを最初からブラウザ上で任意のものを表示する前にPHP
今、あなたはそれへの2つの方法があります
1)リダイレクト用のJavaScriptを含める
reserved.phpのヘッダー行をこれに置き換えます
echo ("<script> window.location = 'http://cdnj-nas.synology.me/cdnj/index.php'; </script>");
または、これが機能しない場合
echo ("<script> location.replace('http://cdnj-nas.synology.me/cdnj/index.php'); </script>");
2)上部のheader.phpファイルでこのリダイレクトの状態を確認できます
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加