したがって、次の 2 つのページがあります:pageOne.php
とpageTwo.php
。フォームは次のpageOne.php
とおりです。
<form method="post" action="pageTwo.php"> .... </form>
そして、すべてのデータ収集、検証、挿入、およびメールの送信をpageTwo.php
行います (すべてを 2 つの別々のページで行っているのは、ページの更新時にデータが再送信されるのを避けるためです...これが私にとって最も簡単な方法でした)問題)。これまでのところ、すべてが完璧に機能しています。
ここで、フォームの送信後にアラート ボックスを使用して成功/失敗メッセージを表示したいと考えています。たとえば、このソリューションを で試したとき、ポップアップpageTwo.php
ボックスが表示されません。これheader
は、そのページの上にこれがあるためだと思います
<?php header("Location: http://TestPages.com/pageOne.php"); ?>
<?php
if( $_POST ) {
//collect the data
//insert the data into DB
//send out the mails IFF the data insertion works
echo "<script type='text/javascript'>alert('It worked!')</script>";
}else
echo "<script type='text/javascript'>alert('Did NOT work')</script>";
?>
でこの2 番目の解決策を試したところpageOne.php
、ページを更新するたびに警告ボックスがポップアップし、データがデータベースに挿入されてメールが送信されたにもかかわらず、エラー メッセージが表示されました。pageOne.php
:
<html>
<body>
<?php
if( $GLOBALS["posted"]) //if($posted)
echo "<script type='text/javascript'>alert('It worked!')</script>";
else
echo "<script type='text/javascript'>alert('Did NOT work')</script>";
?>
<form method="post" action="pageTwo.php"> .... </form>
</body>
とでpageTwo.php
:
<?php header("Location: http://TestPages.com/pageOne.php"); ?>
<?php
$posted = false;
if( $_POST ) {
$posted = true;
//collect the data
//insert the data into DB
//send out the mails IFF the data insertion works
} ?>
なぜこの単純なことが機能しないのですか :( ? それを修正する簡単な方法はありますか? ありがとう!!
アップデート
だから私はdrrcknlsnの提案に従っていくつかの変更を加えました.これは私がこれまでに持っているものです.... pageOne.php
:
<?php
session_start();
if (isset($_SESSION['posted']) && $_SESSION['posted']) {
unset($_SESSION['posted']);
// the form was posted - do something here
echo "<script type='text/javascript'>alert('It worked!')</script>";
} else
echo "<script type='text/javascript'>alert('Did NOT work')</script>";
?>
<html> <body>
<form method="post" action="pageTwo.php"> .... </form>
</body> </html>
とpageTwo.php
:
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$_SESSION['posted'] = true;
//collect the data
//insert the data into DB
//send out the mails IFF the data insertion works
header('Location: http://TestPages.com/pageOne.php');
exit;
} ?>
これらの変更により、ページのリダイレクトと成功メッセージが機能するようになりましたが、ページを開く/更新するたびに失敗メッセージが表示されます (セッションキーがまだ設定されていないためです)...どうすれば回避できますか? 再度、感謝します!!