-1

重複の可能性:
PHPによってすでに送信されているヘッダー

if($sendmail) {
  echo "<div class=\"success\" class=\"regdet\">Congratulations $name! You have successfully registered for <span>AADAB 2013</span>! An email has been sent to your email with the details of your form.<br><br>If the page does not automatically redirect you in 5 seconds, click <input type=\"button\" value=\"Here\" onclick=\"window.close()\"> to continue.</div>";
  header (refresh: 5, url="form.php");
} else {
  echo "<span style=\"color: red; background: rgba(219,219,219,0.7);\">There was an error in submitting your form. Click <a href=\"form.php\">here</a> to try again!</span>";
}

5秒後にユーザーをフォーム(フォームとPHPコマンドの両方を含む現在のフォーム)にリダイレクトしようとしています...発生していないため、を閉じるボタンを含めようとしています。フォーム確認ページで押された後のウィンドウ。

それも起こっていません。

メッセージが表示され、フォームは私の電子メールアカウントに完全に電子メールを配信していますが、この小さな部分は私を大いに悩ませています!

4

4 に答える 4

1

パラメータを文字列として渡す必要がheader()あります(実際には、生のヘッダー文字列を送信しています)。

だからこのように:

header('refresh:5;url=form.php');

そしてについてwindow.close()。Javascriptでウィンドウを開いておらず、ウィンドウへのハンドラーを使用してウィンドウを閉じようとすると、実際に問題が発生する可能性があります。Javascriptでは、セキュリティ上の理由から、ユーザーに表示されるウィンドウを閉じることはできません。理論的には、JSがこのウィンドウを閉じたいことを通知するブラウザーアラートが表示されるはずです(ただし、IE 9またはFFで機能させることはできませんでした)。

于 2013-01-18T09:45:16.140 に答える
0

「このメソッドは、window.openメソッドを使用してスクリプトによって開かれたウィンドウに対してのみ呼び出すことができます。ウィンドウがスクリプトによって開かれなかった場合、JavaScriptコンソールに次のエラーが表示されます。スクリプトは、スクリプトで開かない。」

ウィンドウを開いたとき、これは変数に割り当てられているはずです。

openedWindow = window.open('moreinfo.htm');

それからあなたがそれを閉じたいとき...

openedWindow.close();

JSでウィンドウを閉じたい場合は、JSでリダイレクトすることもできます...

location.href = 'form.php';
于 2013-01-18T09:51:10.510 に答える
0

ブラウザに何も出力していない場合にのみ、ヘッダーを出力できます。あなたの場合、あなたはecho何かを送ってみてくださいheader()

また、あなたはあなたの議論を引用するべきです:

// no output so far....
header ('refresh: 5; url=form.php');

エラーログを表示すると、次のことがわかります。

PHP警告:ヘッダー情報を変更できません-ヘッダーはすでに送信されています...

于 2013-01-18T09:52:50.323 に答える
-1

window.close()は、最近の多くのブラウザーではそれ自体では機能しません。

それを回避する方法があります:window.closeとchromeの問題

または、新しいウィンドウではなくモーダルポップアップを使用することは可能ですか?

于 2013-01-18T09:41:50.643 に答える