こんにちはGuysがindex.phpに変更しない間違いページを見つけようとしています。
ランディングページにリダイレクトしないと、他のすべてが正常に機能します。
レコードはdbから削除され、削除のあるページはyes/noでもOK
<?php
// Process delete operation after confirmation
if(isset($_POST["ID"]) && !empty($_POST["ID"])){
// Include config file
require_once 'config.php';
// Prepare a select statement
$sql = "DELETE FROM cv WHERE ID = ?";
if($stmt = mysqli_prepare($link,$sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "i", $param_ID);
// Set parameters
$param_ID = trim($_POST["ID"]);
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
// Records deleted successfully. Redirect to landing page
header('Location:index.php');
exit;
}else{
echo "Oops! Something went wrong. Please try again later.";
}
}
// Close statement
mysqli_stmt_close($stmt);
// Close connection
mysqli_close($link);
} else{
// Check existence of ID parameter
if(empty(trim($_GET["ID"]))){
// URL doesn't contain ID parameter. Redirect to error page
header("location: error.php");
exit();
}
}
?>
どんな助けも素晴らしいでしょう。
警告:ヘッダー情報を変更できません-26行目の/storage/public_html/crudbd/delete.phpの(/storage/public_html/crudbd/config.php:31で出力が開始された)によって既に送信されたヘッダー
回答 1 件
エコーするとすぐに何でも、HTTPヘッダーが送信されるため、これ以上送信できなくなり、リダイレクトヘッダーがFAILになります。
config.phpのechoステートメントを確認し、display_errorsをオフにし、error_reportingを-1に設定し、ターミナルでログを追跡して、エラーログが原因でPHPが早期に出力されないようにします。
エラーを貼り付けました。
Warning: Cannot modify header information - headers already sent by (output started at /storage/public_html/crudbd/config.php:31) in /storage/public_html/crudbd/delete.php on line 26
ですから、私が言ったように、config.phpに出力があると推測するのは正しかったのですが、エコーではありませんでした。
display_errors
をオンにすると オフ、それは動作するはずです。通知または警告は引き続きログに表示されます。その行で何が起こっているかを調べます。最初に
isset()
でチェックしない未定義の変数がある場合 たとえば、ログ出力をトリガーできます。