私の問題: メールアドレスに送信されるお問い合わせフォームがあります。通常は問題なく動作しますが、「メール」テキスト フィールド (メールの送信者がメールを入力する場所) にスペースが含まれていると、フォームは送信されません。他のフォームにスペースがある場合でも、フォームは送信されます。
電子メール アドレスにスペースを使用できないことはわかっていますが、電子メール フィールドにスペースを含めてメッセージを送信すると、実際には送信されていないのに、メッセージが送信されたことを示す別のページが表示されます。そのため、誰かが電子メールを入力するときに誤ってスペースを入れた場合、Web サイトはフォームを送信しませんが、送信したと表示されます。
設定方法は次のとおりです。
フォームの電子メール フィールドには、ユーザーがユーザー アカウントの電子メールとして保存したものが自動的に入力されます。この変数はPOST
、フィールドが電子メール アドレスに送信される別のページ 'wl_process.php' を使用して渡されます。ただし、ユーザーの電子メール フィールドが自動的に入力されたとしても、応答を別の電子メールに送り返したい場合があります。
私がしようとしていることと、してはいけ ないこと: スペースを含めるとメールの送信が停止する理由がわかりません。スペースが入っていてもフォームを送信したい。テキスト フィールドからすべてのスペースが削除される PHP タグまたはメソッドを探しています。それが存在するかどうかはわかりません。別の解決策は、メールにスペースがないかどうかを確認することだと思います。スペースがある場合は、何かポップアップが表示され、「無効なメールが入力されました。もう一度やり直してください」と表示されます。しかし、理想的には、メールを送信したいだけです。また、なぜこれを行っているのかを誰かが知っていれば、将来の使用に非常に有益です。
追加情報
電子メール フィールドにスペースが入力されるまで、フォームは完全に機能することに注意してください。他のフィールドにスペースが入力されていても、フォームは送信されます!
また: $var_email は<? include?>
、ページの上部にある から取得されます。インクルードにはいくつかの$_SESSION
情報が含まれておりMYSQLI
、データベースから電子メールを取得して PHP 変数に変換する呼び出しも含まれています。ただし、これが問題と関係があるとは思えません。私の問題は、スペースがメールの送信を停止することです。
重要でないこと
私の命名規則。$email
名前付きの変数が、何らかの方法で電子メール アドレスのように扱われることはないと思い込まないでください。名前は何でもかまいません。ここでは変数とテキスト フィールドのみで、投稿されてから電子メールで送信されます。
マイコード
ページ 1 (フォームがある場所)
<div class="form_box">
...
<div class="field clearfix">
<label>Email <span>*</span></label>
<input id="element_1_email" name="element_1_email" value="<? echo $var_email;?>" size="30" class="validate[optional]" type="text" onClick="(this).value=''"/>
</div>
ページ 2 (データが送信され、郵送される場所)
<?
$name = $_POST['element_0_name'];
$email = $_POST['element_1_email'];
$company = $_POST['element_2_company'];
$date = $_POST['element_3_date'];
$comment = $_POST['element_4_comment'];
$list = $_POST['element_5_list'];
$email_to = "contact@website.com";
$email_subject = "Online Form";
$email_message = "\n\n";
function clean_string($string) {
$bad = array ("content-type", "bcc:", "to:", "cc:", "href");
return str_replace($bad, "",$string);
}
$email_message .= '<div style="font-family:Arial, Helvetica, sans-serif;padding-left: 90px;font-weight: 100;font-size: 14px;color: #2a2a2a;"><table width="1070px" height="685px;"border="0" cellspacing="0" background="http://www.website/image.jpg">
<tr>
<td style="vertical-align:top;padding-left:88px;">
<h2 style="padding-top:150px;padding-left:90px;">Form Information:</h2>';
$email_message .= "Name: ".clean_string($name)."<br>";
$email_message .= "Email: " .clean_string($email). "<br>";
$email_message .= "Company: " .clean_string($company). "<br>";
$email_message .= "Date Required: " .clean_string($date). "<br>";
$email_message .= "Comment: " .clean_string($comment). "<br>";
$email_message .= '<u>List Of Things:<style> tr:nth-child(2n) {background-color:#d6d6d6;}</style> </u><br><table cellspacing="0" style="margin-top:10px;min-width:390px;border:1px solid #cccccc;">' .clean_string($list). '</table>';
$email_message .= "</div>";
$headers = 'From: '.$email."\r\n".
'Reply-To: '. $email."\r\n" .
'X-Mailer: PHP/' .phpversion();
$headers .= "MIME-Version:1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
@mail($email_to, $email_subject, $email_message, $headers);
//
?>