2011-09-14 18 views
0

正しいメールアドレスが入力されても、結果が指定された$toアドレスに送信されない場合、次の形式で「ニュースレターの購読をありがとう」というメッセージが表示されます。また、電子メールが無効な場合、「有効な電子メールを入力してください」というメッセージは表示されません。誰かがこれらのエラーでPHPのnoobを助けてもらえますか?ありがとうPHPメール/検証スクリプトが機能しない

<?php 
$email = $_POST['email']; 
$to  = "[email protected]"; 
$subject = "ADD THIS EMAIL ADDRESS TO THE MAILING LIST"; 
$body = "\n\n"; 
$url  = 'http://10.0.1.3/~143b1'; 

if (! filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ 
    echo '<script> alert("PLEASE ENTER A VALID EMAIL ADDRESS") </script>'; 
    echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">'; 
} 
else 
{ 
    if (mail($to, $subject, $body)) 
    { 
     echo '<script> alert("THANK YOU FOR SUBSCRIBING TO THE NEWSLETTER") </script>'; 
     echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">'; 
    } 
    else 
    { 
     echo '<script> alert("THERE WAS AN UNEXPECTED ERROR. PLEASE TRY AGAIN LATER") </script>'; 
     echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">'; 
    } 
} 
?> 
+0

あなたのユーザーの恋人は? – tripleee

答えて

0

ローカルサーバーで開発していますか? sendmailまたは何らかの種類のSMTPサービスがインストールされていますか?

スクリプトタグのスクリプトタイプもリストされていないため、ブラウザによってはJavaScriptが実行されない場合があります。 PHPを実行すると実際にページにエコーされるのは何ですか?それはあなたに問題がどこにあるのかを示すはずです。 mail()マニュアルページから

1

抜粋:メールが正常にFALSEそうでない場合、配信のために受け入れられた場合

trueを返します。

メールが納品されたというだけの理由で、は、実際に目的の宛先に届くわけではありません。

あなたのコードは問題ないと思いますが、メールサーバーに問題があります。

0

アラートが問題を動作しない場合DOMは、あなたのJSコード を実行したり

if(1==1){ 
    echo "<script>alert('Test');</script>"; 
} 

を試して最初にロードする必要があり、身体終了タグの前にコードを追加する必要がありますが、あなたのコード

の位置であります