フォーム送信を設定してphpメールスクリプトをトリガーし、ユーザーを別のページ/メッセージが通過したことを確認するようにリダイレクトしようとしています。
現在、アクション属性を次のように設定しています。
<form id="contactform" action="send.php" method="post">
そして、メールスクリプトの上にフォームアクションへのリダイレクトを追加する方法があるかどうか疑問に思っていました.
前もって感謝します!
あなたのsend.php
ファイルでは、これを行うことができます:
<?php
// Send the email
$sent = mail("info@example.com", "Subject", "Hello!");
if ($sent) {
// This sends a header redirect to the client's browser
header("Location: http://mysite.com/success.php");
// This causes the redirect to happen immediately,
// instead of continuing to process the page
exit;
} else {
header("Location: http://mysite.com/failure.php");
exit;
}
?>
いいえ。
リダイレクトは、アクションが指すリソースによって開始される必要があります。(応答ヘッダーheader()
を返すために使用します)。Location
(JavaScript への依存関係を追加し、Ajax を使用してデータを送信し、リクエストが成功したかどうかを設定するなど、クレイジーなことを行うこともできますが、リダイレクト応答location
を発行するよりもはるかに複雑で信頼性が低くなります)。send.php
フォームに入れることはできませんが、phpで簡単に行うことができます
header('Location: yourtarget.php');
より動的にしたい場合は、フォーム アクションに GET パラメータを追加できます。
<form id="contactform" action="send.php?redirectto=yourtarget" method="post">
そしてphpで:
header('Location: '.$_GET['redirectto']);