0

我收到“无效的电子邮件地址”

一切都为测试而硬编码,缺少什么?谢谢!

<html>
<head><title>PHP Mail Sender</title></head>
<body>
<?php

/* All form fields are automatically passed to the PHP script through the array $HTTP_POST_VARS. */
$email = $HTTP_POST_VARS['example@example.com'];
$subject = $HTTP_POST_VARS['subjectaaa'];
$message = $HTTP_POST_VARS['messageeeee'];

/* PHP form validation: the script checks that the Email field contains a valid email address and the Subject field isn't empty. preg_match performs a regular expression match. It's a very powerful PHP function to validate form fields and other strings - see PHP manual for details. */

if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) {
  echo "<h4>Invalid email address</h4>";
  echo "<a href='javascript:history.back(1);'>Back</a>";
} elseif ($subject == "") {
  echo "<h4>No subject</h4>";
  echo "<a href='javascript:history.back(1);'>Back</a>";
}

/* Sends the mail and outputs the "Thank you" string if the mail is successfully sent, or the error string otherwise. */
elseif (mail($email,$subject,$message)) {
  echo "<h4>Thank you for sending email</h4>";
} else {
  echo "<h4>Can't send email to $email</h4>";
}
?>
</body>
</html>
4

3 回答 3

3

改变

$email = $HTTP_POST_VARS['jaaanman2324@gmail.com'];
$subject = $HTTP_POST_VARS['subjectaaa'];
$message = $HTTP_POST_VARS['messageeeee'];

$email ='jaaanman2324@gmail.com';
$subject ='subjectaaa';
$message = 'messageeeee';
于 2013-10-18T16:24:49.093 回答
2

我想你希望它像这样被硬编码:

$email = 'jaaanman2324@gmail.com';

否则,您将尝试使用以下键从 HTTP_POST_VARS 中获取值jaaanman2324@gmail.com

于 2013-10-18T16:25:08.833 回答
2

首先,不要使用$HTTP_POST_VARS,它是$_POST现在。

其次,通过写作,$HTTP_POST_VARS['jaaanman2324@gmail.com']您正在寻找带有juanman234@gmail.com键的表格元素。那不是你想做的。

如果你想硬编码它,写

$email = 'jaaanman2324@gmail.com';`

如果没有,写

$email = $_POST['email'];

从表单中获取email字段。

于 2013-10-18T16:25:20.160 回答