0

以下のコードを使用して、新しいユーザーのサインアップを警告する電子メールを自分のアドレスに送信しています。

<?php
$errors  = '';
$myemail = 'name@mydomain.com';
if (empty($_POST['email']) || empty($_POST['email']) || empty($_POST['email'])) {
    $errors .= "\n Error: all fields are required";
}

$name          = $_POST['name'];
$email_address = $_POST['email'];
$message       = $_POST['message'];

if (!preg_match(
      "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
      $email_address
   )) {
    $errors .= "\n Error: Invalid email address";
}

if (empty($errors)) {
    $to            = $myemail;
    $email_subject = "Invitation Request: $email_address";
    $email_body    = "has received a new invitation request. " .
                     "\n Email: $email_address";

    $headers = "From: $myemail\n";
    $headers .= "Reply-To: $email_address";

    mail($to, $email_subject, $email_body, $headers);
    //redirect to the 'thank you' page
}
?>

現在、ユーザーを新しいページにリダイレクトしますが、代わりに、最新のWebサイトで使用されているものと同じようにjavascriptポップアップの成功/失敗メッセージを許可したいと思います。

メッセージコード(CSSおよびJavascript)は次のとおりです。

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<style type="text/css">
/* Status Message */
.message { 
    display: none; 
    margin: 0 0 13px 0; 
    padding: 13px 13px 13px 52px; 
    background: url('icon_check.gif') left no-repeat #EFA; 
    background-position: 13px 5px; 
    border: solid 1px #BD8; '
    width: 300px; 
}
</style>

<script language="javascript" type="text/javascript">
$(document).ready(function(){
   $("#Button1").click(function(event){
     $(".message").show();
     $(".message").fadeOut(2500);
   });
 });
</script>

成功メッセージのhtmlは次のとおりです。

<div class="message">Your Invitation Request Has Been Received!</div>

これを行うことは可能ですか?私は過去2日間、いくつかの場所で答えを探しましたが、正しいことを変えることができないようです。どんな助けでもいただければ幸いです。

4

2 に答える 2

1

現在の設定では、これを行うための最良の方法は、そこからウィンドウを開くようにページに指示するクエリ文字列を使用して、サインアップページにリダイレクトすることです。

header("Location: /signup.php?success=true");

とJSで

<script>

<?php
if(isset($_GET['success']) && $_GET['success'] == 'true'){
     echo "window.open( '/success.html', 'success', '[options],[..],[..]' );";
}
?>

</script>

また、filter_varを使用して電子メールを検証することをお勧めします。

filter_var('bob@example.com', FILTER_VALIDATE_EMAIL) 
于 2012-04-24T21:21:03.547 に答える
0

これを行う最も簡単な方法は、PHPメール関数をHTMLページと組み合わせるためです。AJAXを使用してメール送信PHPページをDIVにロードすると、そのDIVのコンテンツがPHP関数の結果の出力で上書きされます。これにより、フォームをPHPページに送信しても機能するため、JSを使用しないユーザーのフォールバックが可能になります。

于 2012-04-24T21:09:27.653 に答える