PHP联系人表单-表单是否被消息替换?
我最近开始学习PHP,在使用联系人表单时遇到了问题 表单的问题在于,即使在我发送之前,它也不会发送电子邮件并在表单下方回显错误消息。 有时我让它工作,然后它又坏了 此外,我希望“message sent!”消息在发送时替换整个联系人表单。我如何在不链接到其他页面的情况下实现这一点 代码如下:PHP联系人表单-表单是否被消息替换?,php,forms,post,message,contact,Php,Forms,Post,Message,Contact,我最近开始学习PHP,在使用联系人表单时遇到了问题 表单的问题在于,即使在我发送之前,它也不会发送电子邮件并在表单下方回显错误消息。 有时我让它工作,然后它又坏了 此外,我希望“message sent!”消息在发送时替换整个联系人表单。我如何在不链接到其他页面的情况下实现这一点 代码如下: <form method="POST" action="index.php"> <input name="name" type="text" placeholder="Name"&
<form method="POST" action="index.php">
<input name="name" type="text" placeholder="Name">
<input name="email" type="email" required placeholder="Email">
<input name="subject" type="text" placeholder="Subject">
<textarea name="message" rows="15" required placeholder="Message"></textarea>
<input name="submit" type="submit" value="Send">
</form>
<?php
if(isset($_POST['submit']))
{
$name_field=$_POST['name'];
$email_field=$_POST['email'];
$subject_field=$_POST['subject'];
$message_field=$_POST['message'];
$to="example@outlook.com";
$from="example@outlook.com";
$subject="Contact Form Message";
$body="Name: $name_field\n Email: $email_field\n Subject: $subject_field\n Message:\n $message_field";
mail($to,$subject,$body,$from);
echo "<p>Message sent!</p>";
}
else
{
echo "<p>An error occured. Please try again.</p>";
}
?>
非常感谢你的任何帮助。
此外,如果你有任何想法如何使代码更好,更干净或更有效,请告诉我 您没有说什么不起作用,但是为了在表单已提交时不显示表单,您希望将表单移动到php中,并且仅在表单未提交时打印表单 另外,为了帮助您进一步阅读,这里有一些非常好的视频教程,这是专门关于制作联系人表单的:-D 如果表单尚未提交,您似乎也在回显错误消息,因此第一次加载时您将收到错误消息。您的邮件命令看起来不正确
<?php
//if the form hasn't been submitted yet, print the form.
if (!isset($_POST['submit'])){
print <<<END
<form method="POST" action="index.php">
<input name="name" type="text" placeholder="Name">
<input name="email" type="email" required placeholder="Email">
<input name="subject" type="text" placeholder="Subject">
<textarea name="message" rows="15" required placeholder="Message"></textarea>
<input name="submit" type="submit" value="Send">
</form>
END;
}
//if the form has been submitted.
if(isset($_POST['submit']))
{
$name_field=$_POST['name'];
$email_field=$_POST['email'];
$subject_field=$_POST['subject'];
$message_field=$_POST['message'];
$to="example@outlook.com";
$subject="Contact Form Message";
$body="Name: $name_field\n Email: $email_field\n Subject: $subject_field\n Message:\n $message_field";
$headers = "From: example@outlook.com";
if(!mail($to,$subject,$body,$headers)){
echo 'failed !!';
}
else{
echo "<p>Message sent!</p>";
}
}
您没有说什么不起作用,但是为了在表单已提交时不显示表单,您希望将表单移动到php中,并且仅在表单未提交时打印表单
另外,为了帮助您进一步阅读,这里有一些非常好的视频教程,这是专门关于制作联系人表单的:-D
如果表单尚未提交,您似乎也在回显错误消息,因此第一次加载时您将收到错误消息。您的邮件命令看起来不正确
<?php
//if the form hasn't been submitted yet, print the form.
if (!isset($_POST['submit'])){
print <<<END
<form method="POST" action="index.php">
<input name="name" type="text" placeholder="Name">
<input name="email" type="email" required placeholder="Email">
<input name="subject" type="text" placeholder="Subject">
<textarea name="message" rows="15" required placeholder="Message"></textarea>
<input name="submit" type="submit" value="Send">
</form>
END;
}
//if the form has been submitted.
if(isset($_POST['submit']))
{
$name_field=$_POST['name'];
$email_field=$_POST['email'];
$subject_field=$_POST['subject'];
$message_field=$_POST['message'];
$to="example@outlook.com";
$subject="Contact Form Message";
$body="Name: $name_field\n Email: $email_field\n Subject: $subject_field\n Message:\n $message_field";
$headers = "From: example@outlook.com";
if(!mail($to,$subject,$body,$headers)){
echo 'failed !!';
}
else{
echo "<p>Message sent!</p>";
}
}
试试这个,希望对你有用:
<? if (!isset($_POST['submit']))
{?>
<form method="POST" action="test.php">
<input name="name" type="text" placeholder="Name">
<input name="email" type="email" required placeholder="Email">
<input name="password" type="password" required placeholder="Password">
<textarea name="message" rows="15" required placeholder="Message"></textarea>
<input name="submit" type="submit" value="Send">
</form>
<?
}
if(isset($_POST['submit']))
$name_field=$_POST['name'];
$email_field=$_POST['email'];
$subject_field=$_POST['subject'];
$message_field=$_POST['message'];
$to="example@outlook.com";
$from="example@outlook.com";
$subject="Contact Form Message";
$body="Name: $name_field\n Email: $email_field\n Subject: $subject_field\n Message:\n $message_field";
mail($to,$subject,$body,$from);
if($body)
echo "<p>Message sent!</p>";
if(!$body)
{
echo "<p>An error occured. Please try again.</p>";
}
}
?>
试试这个,希望它对你有用:
<? if (!isset($_POST['submit']))
{?>
<form method="POST" action="test.php">
<input name="name" type="text" placeholder="Name">
<input name="email" type="email" required placeholder="Email">
<input name="password" type="password" required placeholder="Password">
<textarea name="message" rows="15" required placeholder="Message"></textarea>
<input name="submit" type="submit" value="Send">
</form>
<?
}
if(isset($_POST['submit']))
$name_field=$_POST['name'];
$email_field=$_POST['email'];
$subject_field=$_POST['subject'];
$message_field=$_POST['message'];
$to="example@outlook.com";
$from="example@outlook.com";
$subject="Contact Form Message";
$body="Name: $name_field\n Email: $email_field\n Subject: $subject_field\n Message:\n $message_field";
mail($to,$subject,$body,$from);
if($body)
echo "<p>Message sent!</p>";
if(!$body)
{
echo "<p>An error occured. Please try again.</p>";
}
}
?>
您忘了告诉我们实际中断的内容。旁注:您可以使用form action=“”而不是硬编码页面名称。是的,很抱歉,我刚刚编辑了问题!在代码中,当消息不存在时,将始终显示此消息。$\u POST['submit']
。当你尝试回音表单时,它将一直存在。你需要这样的结构:if(count($\u POST)>0){if(isset()){echo'send_message';}else{echo'error';}else{echo'some_form_code';}
你忘了告诉我们什么实际坏了。旁注:你可以使用form action=“”而不是硬编码页面名称。是的,很抱歉,我刚刚编辑了这个问题!在代码中,当消息不存在时,将始终显示此消息。$\u POST['submit']
。当你尝试回音表单时,它将一直存在。你需要像这样的结构if(count($\u POST)>0){if(isset()){echo'send_message'.}else{echo'error'.}else{echo'some_form_code'.}
谢谢,听起来很聪明!表单的问题是它不发送电子邮件并回显错误消息。如果表单尚未提交,则看起来您是在回显错误消息。。。。因此,您在第一次加载表单时(在单击“提交”之前)会收到表单下方的错误消息?您对邮件功能的使用也不正确,我已编辑了我的代码,以反映您希望将整个代码更改为的内容。到处都有很多这方面的教程。如果你还在挣扎,请带着更具体的问题或错误回来。谢谢,听起来很聪明!表单的问题是它不发送电子邮件并回显错误消息。如果表单尚未提交,则看起来您是在回显错误消息。。。。因此,您在第一次加载表单时(在单击“提交”之前)会收到表单下方的错误消息?您对邮件功能的使用也不正确,我已编辑了我的代码,以反映您希望将整个代码更改为的内容。到处都有很多这方面的教程。如果您仍在挣扎,请返回一个更具体的问题或错误。