-1

DBの更新後にページをリダイレクトしようとしていますが、エラーが発生しました。助けてください。

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\lucent\updatedb.php:1) in C:\xampp\htdocs\lucent\updatedb.php on line 18

コード

<?php
$con = mysql_connect("localhost","root","") ;
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("pdk company", $con);
mysql_query("UPDATE servicetbl SET date_expiry='2012-06-13'
WHERE id =1");
mysql_close($con);
$URL="login_success.php";
header ("Location: $URL");
?>
4

3 に答える 3

2

すでにクライアントに送信されたコンテンツがあります。ただし、コードは何も出力していないようです。そのため、ファイルの先頭に空白があるか、誤ってPHPファイルをBOM(Byte Order Mark)を使用してUTF8として保存した可能性があります。BOM(3バイト)がクライアントに出力され、ヘッダーも強制的に送信されます。その時点で、他のヘッダーを送信することはできなくなります。

于 2012-04-13T05:48:20.097 に答える
-1

2つのヒント

  • ob_start()直後のページ上部で使用<?php
  • exit();直後に書くheader();

    ob_start():この関数は出力バッファリングをオンにします。出力バッファリングがアクティブな間、スクリプトからの出力(ヘッダー以外)は送信されません。代わりに、出力は内部バッファーに格納されます。

于 2012-04-13T05:54:44.097 に答える
-2

別の方法として、HTML Meta-Refresh を提案できます。コード内でこれを使用できます。php-tag の前に他のコードや空白がないことを確認する必要はありません。

<?php
    echo '<meta http-equiv="refresh" content="0; url='.$URL.'">';
    exit;
?>
于 2012-04-13T05:50:29.993 に答える