Php表单不工作
所以我有一个PHP表单,包含基本名称、电子邮件和消息输入,但是我无法让它工作!我已经尝试为我的每个表单元素放置ID和名称标签,但它不起作用 下面是php代码片段Php表单不工作,php,forms,input,Php,Forms,Input,所以我有一个PHP表单,包含基本名称、电子邮件和消息输入,但是我无法让它工作!我已经尝试为我的每个表单元素放置ID和名称标签,但它不起作用 下面是php代码片段 <?php if(isset($_POST['submit'])) { $to = "xxx@example.com.br"; $subject = "Success!"; $name_field = $_POST['nome']; $email_field = $_POST['email'];
<?php
if(isset($_POST['submit'])) {
$to = "xxx@example.com.br";
$subject = "Success!";
$name_field = $_POST['nome'];
$email_field = $_POST['email'];
$message = $_POST['mensagem'];
$body = "From: $name_field\n E-Mail: $email_field\n $check_msg\n Message:\n $message\n";
echo "Your form was sent!";
mail($to, $subject, $body);
} else {
echo "Ouch.";
}
?>
形式呢
<form action="../php/send.php" method="post">
<label>Name:</label><input id="name" name="name" /><br />
<label>Email:</label><input id="email" name="email" /><br />
<label>Message:</label>
<textarea id="message" name="message" ></textarea><br />
<button type="submit" id="submit"></button>
</form>
名称:
电子邮件:
信息:
您尚未定义“提交”字段(表单中没有name=“submit”
),因此您的if()
测试失败
检查POST的更好方法是
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
...
}
该条目始终存在,并且比检查特定字段更可靠。我建议您替换此代码:
if(isset($_POST['submit'])) {
用一些显而易见的东西,比如:
if(isset($_POST['email'])) {
此外,还有两个错误:这: 应该是:
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
另外,您需要检查mail()
是否返回true
。更改:
echo "Your form was sent!";
mail($to, $subject, $body);
致:
如果您确信
mail()
实际上执行时没有任何错误,但邮件仍然没有发送/到达收件人,请检查服务器日志,也许您需要配置php(通常不会)或sendmail
而不是$name\u field=$\u POST['name']
在POST checking语句中,使用$name\u field=$\u REQUEST['name']
请求$\u
将始终获取您提交表单的输入字段的名称=
<?php
if(isset($_POST['submit'])) {
$to = "xxx@xxx.com.br";
$subject = "Success!";
$name_field = $_REQUEST['name'];
$email_field = $_REQUEST['email'];
$message = $_REQUEST['message'];
$body = "From: $name_field\n E-Mail: $email_field\n $check_msg\n Message:\n $message\n";
echo "Your form was sent!";
mail($to, $subject, $body);
// now do something else like adding thank you
} else {
echo <<< END
<form action="../php/send.php" method="post">
<label>Name:</label><input id="name" name="name" /><br />
<label>Email:</label><input id="email" name="email" /><br />
<label>Message:</label>
<textarea id="message" name="message" ></textarea><br />
<button type="submit" id="submit"></button>
</form>
END;
}
?>
这应该行得通这只是一个DOM错误,只要更改您的输入字段name=“myname”或其他任何内容,它就会解决您的问题
<form action="../php/send.php" method="post">
<label>Name:</label><input id="name" name="my_name" /><br />
<label>Email:</label><input id="email" name="email" /><br />
<label>Message:</label>
<textarea id="message" name="message" ></textarea><br />
<button type="submit" id="submit"></button>
</form>
名称:
电子邮件:
信息:
提交按钮没有名称属性,您编写的PHP代码将侦听POST数据名称“提交”。更改此项:
<form action="../php/send.php" method="post">
<label>Name:</label><input id="name" name="name" /><br />
<label>Email:</label><input id="email" name="email" /><br />
<label>Message:</label>
<textarea id="message" name="message" ></textarea><br />
<button type="submit" id="submit"></button> <!-- Add a name attribute -->
</form>
名称:
电子邮件:
信息:
为此:
<form action="../php/send.php" method="post">
<label>Name:</label><input id="name" name="name" /><br />
<label>Email:</label><input id="email" name="email" /><br />
<label>Message:</label>
<textarea id="message" name="message" ></textarea><br />
<button type="submit" id="submit" name="submit"></button> <!-- Name attribute added -->
</form>
名称:
电子邮件:
信息:
是否有任何错误消息或消息只是不发送?在html中,这是“name”=>name\u field=$\u POST['nome'];这是“消息”=>$message=$\u POST['mensage'];首先更正您的代码,检查它是否有效,然后再次询问!它是linux还是windows服务器。将您的$body
\n
替换为PHP\u EOL
和$\u POST['mensage']
不应该是$\u POST['message']
@kjy112:\n
将在Windows和Linux服务器上被平等地解析和处理。PHP\u EOL
的真正目的是不同的——处理文件而不用担心平台。另外,PHP\u EOL
不适用于正则表达式,这是一个缺点。只要我的两分钱:)@Andrejs在windows服务器上返回的是\r\n
,因此如果换行符是\n
,则不会发送电子邮件。然后,PHP脚本将检测到此帖子数据已发送。
<form action="../php/send.php" method="post">
<label>Name:</label><input id="name" name="name" /><br />
<label>Email:</label><input id="email" name="email" /><br />
<label>Message:</label>
<textarea id="message" name="message" ></textarea><br />
<button type="submit" id="submit"></button> <!-- Add a name attribute -->
</form>
<form action="../php/send.php" method="post">
<label>Name:</label><input id="name" name="name" /><br />
<label>Email:</label><input id="email" name="email" /><br />
<label>Message:</label>
<textarea id="message" name="message" ></textarea><br />
<button type="submit" id="submit" name="submit"></button> <!-- Name attribute added -->
</form>