0

ユーザー入力メールは言うまでもなく、チェックリスト データをメールに送信する方法を見つけるのに本当に苦労しています。他の同様の質問からの回答をたどって適用しようとしましたが、それでも役に立ちません。

私はかなり混乱していますが、これはこれまでのところ私のPHPです。

<?php 
//Check for POST
if (isset($_REQUEST['email'])){
//All your inputs
$expecting = array('checkbox1','checkbox2','checkbox3','checkbox4' ,'checkbox5');

//Start building your email
$email_content = '';
foreach($expecting as $input){
    //Is checkbox?
    if(substr($input,0,8)=='checkbox'){
        $email_content .= ucfirst($input).':'.(isset($_POST[$input]) && $_POST[$input] == 'on' ? 'True' : 'False'.'<br />');

    }else{
        $email_content .= ucfirst($input).':'.(!empty($_POST[$input]) ? $_POST[$input] : 'Unknown').'<br />';
    }
}
print_r($email_content);


if(mail('$email',  'packing list', wordwrap($email_content))){
   //mail sent
}else{
   //mail failed 2 send
}

}
?>

そして、これは私のHTMLです

  <form name="emailform"  method="post" action="send-list.php">
  <div data-role="fieldcontain">
  <label for='name'><h3>Festival name:</h3> </label>
  <input type="text" name="name"> 



<h3>
Essentials
</h3>

<fieldset data-role="controlgroup" data-type="vertical">
<legend>
</legend>
<input name="checkbox1" id="checkbox1" type="checkbox" />
<label for="checkbox1">
Tickets
</label>
<input name="checkbox2" id="checkbox2" type="checkbox" />
<label for="checkbox2">
Parking pass
</label>
<input name="checkbox3" id="checkbox3" type="checkbox" />
<label for="checkbox3">
Directions
</label>
<input name="checkbox4" id="checkbox4" type="checkbox" />
<label for="checkbox4">
Cash &amp; Cards
</label>
<input name="checkbox5" id="checkbox5" type="checkbox" />
<label for="checkbox5">
Keys
</label>
</fieldset>

Email: <input name='email' type='text'><br>
<input type="submit" value="Send">

チェックボックスを電子メールに送信することができれば幸いです。そこから、ユーザー入力電子メールに情報を送信する方法を考え出すことができれば幸いです。

4

2 に答える 2

2

あなたはほとんど正しいことをしていますが、コードはチェックボックスの値が「オン」であることをチェックしています...しかし、フォームにその値を設定しないでください:

<input name="checkbox5" id="checkbox5" type="checkbox" value="on" />
                                                       ^^^^^^^^^^

これも構文バグです。

if(mail('$email',  'packing list', wordwrap($email_content))){
        ^--    ^--

単一引用符で囲まれた文字列は、変数を補間しません。$email$email 変数に含まれるアドレスではなく、という名前のアカウントにメールを送信しようとしています。

試す

if(mail($email,  'packing list', wordwrap($email_content))){

代わりに (引用符がないことに注意してください)。

于 2013-01-28T16:30:18.170 に答える
0

$email変数が定義されていません。

これを入れてください:

  $email = $_REQUEST['email'];

mail関数呼び出しの前に、それを使用mail($email, ...して機能させます。

于 2013-01-28T16:29:46.990 に答える