1

我制作了一个表格,将数据通过电子邮件发送到电子邮件 ID。但是在填写表单并提交后,浏览器会说:

服务器错误。该网站在检索 时遇到错误http://localhost/process.php

这是代码:

form1.html

<html>
<head>
<title>Form</title>
</head>
<body>

<form method = "post" action = "process.php">
Enter your name <input type = "text" name = "namee" id = "namee" value = "enter your name" />
Enter your phone number <input type = "text" name = "phone" id = "phone" />
<br>
<input type  = "submit" value = "post it!" />
</form>


</body>
</html>

进程.php

<?php

$person_name = $_POST["namee"];
$person_number = $_POST["phone"];

$to = "example234671_1@gmail.com";
$subject = "form filled up";
$body = $person_name. "<br>" $person_number . "<br>" . $person_name ;


mail($to, $subject, $body);

echo "Thank you!" ;
?>

错误是什么??

4

4 回答 4

2
$body = $person_name. "<br>" $person_number . "<br>" . $person_name ;

这条线是错误的,你缺少一个连接器。

$body = $person_name. "<br>" . $person_number . "<br>" . $person_name ;
于 2013-08-31T15:12:38.970 回答
1

这里有语法错误。

$body = $person_name. "<br>" $person_number . "<br>" . $person_name ;

"<br>"需要跟一个连接点,如下所示:

$body = $person_name. "<br>" . $person_number . "<br>" . $person_name ;

在开发过程中,您需要启用显示 php 错误。看看PHP 运行时配置

于 2013-08-31T15:12:58.270 回答
1

就像已经说过你错过了一个连接点,但我也看到了另一个错误。

"<br>" 

是 HTML,如果没有正确的内容类型,您将无法在电子邮件中显示 HTML。

查看http://php.net/manual/en/function.mail.php以获取更多信息和示例。

或使用 \n 换行。

于 2013-08-31T15:16:59.787 回答
1

为了正确格式化电子邮件,标头 usingtext/html必须用作<br>换行符。

否则,您的电子邮件正文将显示为John Doe<br>213-555-0123<br>etc.

另外,正如其他人已经说过的那样,缺少连接:

$body = $person_name. "<br>" $person_number . "<br>" . $person_name ;

这应该读作:

$body = $person_name. "<br>" . $person_number . "<br>" . $person_name;

用添加的标题重写:

<?php

$person_name = $_POST["namee"];
$person_number = $_POST["phone"];
$to = "example@gmail.com";
$subject = "form filled up";
$from="email@example.com";
$body = $person_name. "<br>" . $person_number . "<br>" . $person_name;

$header = 'MIME-Version: 1.0' . "\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= "From: ". $from . " $from " . "\r\n";

mail($to, $subject, $body, $header);
echo "Thank you!";
?>
于 2013-08-31T15:28:34.927 回答