2016-04-14 9 views
0

名前だけを使って送信者と受信者の電子メールに一致するチームの電子メールフォームがあります。私はリストに載っていない誰かが自分の電子メールを使ってメッセージを送ることができるようにjsプロンプトを追加したい。ここで私が持っているものだPHPがトリガーJSを返し、データをPHPに返す

else { 
    echo "<script type='text/javascript'>prompt('$otheremail');</script>"; 
    $otheremail = file_get_contents("otheremail.json"); 

    #$otheremail=$_POST['data']; 
    $findat2= '@'; 
    $pos2=strpos($otheremail, $findat2); 
    while ($pos2 == false) { 
     $pos2 = 'enter a valid email'; 
     echo "<script type='text/javascript'>prompt('$pos2' , '');</script>"; 
    } 
} 
mail($toaddress, $subject, $message, $headers); 
$success=htmlspecialchars($_GET['to']); 
$success=ucwords($success); 
$valid= 'sent to' . ' ' . $success . ' ' . 'from a php server. Hit the back arrow' ; 
echo "<script type='text/javascript'>alert('$valid');</script>"; 

PHPはそれは常にjavascriptの前に実行され、サーバー側で実行されるので、これは、jquery's ajaxによって達成されなければならないので、あなたがすることはできません

<?php 
    session_start(); 
    $name=htmlspecialchars($_GET['name']); 
    $name=trim($name); 
    $name=ucwords($name); 
    #talkes in the parameter of 'name' from html form then trims it and changes the first letter to uppercase [tells the name of sender] 
    $to=htmlspecialchars($_GET['to']); 
    $to=trim($to); 
    $to=ucwords($to); 
    #takes in the parameter of 'to' from html form then trims it and changes the first letter to uppercase [tells the name of recipient] 
    $from=htmlspecialchars($_GET['from']); 
    $from=trim($from); 
    #takes in the parameter of 'from' from html and trims it [tells the email of the sender] 
    $message=htmlspecialchars($_GET['message']); 
    $message=trim($message); 
    #takes in the message content from the html form 
    $fromsub=htmlspecialchars($_GET['name']); 
    #takes in the parameter of 'name' from the html form and inserts it in the subject field of the email 

    #below is where the email is formatted given the values from the html form 

    $toaddress='[email protected]'; 
    $subject= $fromsub . ' ' . 'sent you a message'; 
    $headers = 'From: ' . $fromsub . "\r\n" . 
       'Reply-To: ' . $from . "\r\n"; 
    $mailcontent= 'Team Member: ' . $fromsub . "\r\n" 
        .'Email: ' . $from . "\r\n" 
        .'Message: '.$message. "\r\n"; 
    $fromaddress= 'From: ' . $from; 

    mail($toaddress, $subject, $message); 

    $nwc=str_word_count($to); 
    #checks that word count of name is at least 2 
    while ($nwc < 2) { 
     $nwc = "Please enter a first and last name"; 
     echo "<script type='text/javascript'>alert('$nwc');</script>"; 
     exit; 
    } 
    #counts words in from sub 
    $fswc=str_word_count($fromsub); 
    #checks that fromsub word count is less at least two 
    while ($fswc < 2) { 
     $fswc = "Please enter a first and last name"; 
     echo "<script type='text/javascript'>alert('$fswc');</script>"; 
     exit; 
    } 

$passemail = htmlspecialchars($_GET['from']); 
$findat = '@'; 
$pos = strpos($passemail, $findat); 
    while ($pos === false) { 
$pos = "Enter a valid email"; 
     echo "<script type='text/javascript'>alert('$pos');</script>"; 
     exit; 
    } 
          /*INDEX OF NAMES --- WILL EVENTUALLY BECOME AN SQL DATABASE --- INDEX OF NAMES*/ 

if (strstr($to, 'Andrew Pitten')) { 
$toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Anna Correia')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Bryanna Bergevin')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Brianna Bergevin')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Caroline Pitten')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Jason Provencher')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Jordan Provencher')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Ryan Bobbit')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Sean Sylvester')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Max Goddard')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'James Davis')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Mr Davis')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Mr. Davis')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Mrs Corliss')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Mrs. Corliss')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Sean Muller')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Mr Muller')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Mr. Muller')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Josh Waxman')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Carissa Yim')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'John Pitten')) { 
    $toaddress='[email protected]u'; 
} 
elseif (strstr($to, 'Zev Sernik')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'YG')) { 
    $toaddress='[email protected]'; 
} 
elseif (strstr($to, 'Tech Support')) { 
    $toaddress='[email protected]'; 
} else { 
    echo "<script type='text/javascript'>alert('$otheremail');</script>"; 
    $otheremail=$_POST['data']; 
    $findat2= '@'; 
    $pos2=strpos($otheremail, $findat2); 
    while ($pos2 == false) { 
     $pos2 = 'enter a valid email'; 
     echo "<script type='text/javascript'>prompt('$pos2' , '');</script>"; 
    } 
} 

mail($toaddress, $subject, $message, $headers); 
$success=htmlspecialchars($_GET['to']); 
$success=ucwords($success); 
$valid= 'sent to' . ' ' . $success . ' ' . 'from a php server. Hit the back arrow' ; 
echo "<script type='text/javascript'>alert('$valid');</script>"; 


/* 
#=================#===============================================================#============== 
|VARIABLE GLOSSARY|      DEFINITON         | 
#=================#===============================================================#============== 
|$fromsub   |takes in from and puts it into email subject     | 
|$fswc   |counts the words in fromsub and makes sure its two words  | 
|$name   |takes in the name of SENDER         | 
|$nwc    |checks that the RECIPIENT is first and last name    | 
|$toaddress  |email address of RECIPIENT from the variable $to    | 
|$to    |takes in 'to'             | 
|$subject   |email subject             | 
|$message   |takes in content from the field 'message'      | 
|$passeamail  |checks that email includes @         | 
|$headers   |email header             | 
|$success   |lets the user know that they have succesfully sent the email | 
|$findat   |set the $passemail value to pos        | 
|$pos    |set the $passemail value to check for @      | 
|$valid   |pushes a javascript alert using $success as a field variable | 
#=================#===============================================================#=============== 
OTHER NOTES 

else echo "I do not recognize this person"; 
nl2br somehwere 
*/ 
    ?> 

答えて

0

相続人は全身簡単にそれをしてください。 はここ(ajaxなし)私の提案です:

  1. 新しいページ(p1.php)を作成し、中に単に電子メール パラメータを受け取り、(、メッセージ、から、に...) - mail.phpを送信投稿するか取得して メールを送信します。
  2. フォームを使用して値を取得し、<form action = "p1.php" method = "post">のようにフォームを設定し、そのフォームに送信する電子メールを選択する入力を表示します。

ここajaxを使用する方法ですが、これはジャバスクリプトです:

これは、ボタンのクリックや他のイベントによってトリガ機能かもしれない...

<script> 
    function send_mail(to_email, message, headers){ 
     var from_email = prompt("Where from?"); 

     var form_data = {from:from_email ,to:to_email, message, headers};//add your own data 

     $.ajax({ 
      url : "send-email-page.php", 
      type: "POST", 
      data : form_data , 
      success: function(data) 
      { 
       //data is what the send-email-page will echo 
       //it could be a message for the user saying 'email sent' 
      } 
     }); 
    } 
</script> 

そして、あなたが何かを持っている可能性がありこれはあなたのPHPページのように:

<a href = "javascript: send_mail(<?php echo "$to,$message,$headers";?>)">Send from another address</a> 

私の答えを編集した後

:あなたはPHPでJSが含まれている場合

もう一度、JSは、HTMLに出力されますが、、それはそれまでは実行されません全てのPHPコードが

を持って多分それはです有効な名前があるかどうかを評価するのに最適であり、そうでない場合は、別の名前を入力する新しいフォームを印刷し、このフォームがサブミットされると、それと同じ(PHPページ) GETパラメータは、ユーザーが挿入した新しい名前を除いて有効なEメール/名前を要求するまで継続的に要求します。名前が有効な場合は、Eメールを送信してフォームを印刷しないでください。

+0

今はjs電子メールフォームを使用する必要がありますか? –

+0

これには、異なる名前を使用して電子メールアドレスを適用するようなコードがたくさんあるので、 –

+0

電子メールアドレスを生成するページ(get、post、...)にこれらの名前をどのように渡しますか? –