感谢您阅读本文, 我真的是编程的初学者,我需要一些我想要制作的简单网站的帮助。 我的目标是制作一个向我发送邮件的表单,但是当我按下发送时,它只是将我发送回页面顶部。我在下面粘贴HTML和php。我问你们的另一个问题是我是否必须在我的网络托管服务(ovh)上设置一些内容才能运行php?谢谢大家,再见:)!
html:
<form class="col s12">
<div class="row">
<div class="input-field col s6">
<i class="material-icons prefix">info</i>
<input id="first_name" type="text" class="validate">
<label for="first_name">Prénom</label>
</div>
<div class="input-field col s6">
<i class="material-icons prefix">info</i>
<input id="last_name" type="text" class="validate">
<label for="last_name">Nom de famille</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">phone</i>
<input id="Mail" type="email" class="validate">
<label for="Mail">E-mail</label>
</div>
</div>
<div class="row">
<form class="col s12">
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">chat</i>
<textarea id="message" class="materialize-textarea"></textarea>
<label for="message">Message</label>
</div>
</div>
<button class="btn waves-effect waves-light" type="submit"
name="action">Envoyer
<i class="material-icons right">send</i>
</button>
</form>
PHP:
<?php
if(isset($_POST['submit'])){
$to = "myemail@gmail.com";
$from = $_POST['Mail'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Mail subject";
$message = $first_name . " " . $last_name . " à écrit ceci:" . "\n\n" .
$_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
echo "Mail Sent. Thank you " . $first_name . ", we will contact you
shortly.";
}
?>
答案 0 :(得分:2)
好开始慢,这里有一些错误提交表单是客户端和服务器端的特殊对话框,在这种情况下服务器端PHP,表单标签需要首先要用来发送数据的方法所以或POST或GET但你必须在html FORM TAG中看到这个...所以你的html表单开始标记变为
<form class="col s12" method="post">
第二个问题是您要发送数据的位置?在哪个文件?并且必须在开始使用操作时在表单中写入,因此您的表单将成为。
<form class="col s12" method="post" action="nameOfFilePHPWhereSendData.php">
如果操作在同一页面中,则操作可以留空,因此action =“” 在你不需要写
之后 if( isset($_POST['submit']))
也因为是一个错误你必须使用html名称所以$ _POST ['action']你必须写你的$ _POST
$from = $_POST['Mail'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
AHHH和恕我直言的意见最好使用输入类型=“提交”
答案 1 :(得分:1)
通过PHPMailer
最佳选项发送电子邮件的简便方法。
答案 2 :(得分:0)
你必须定义表单操作,当按钮单击将执行什么PHP脚本时,显然要发送邮件,你的服务器或托管确实需要一些配置
<form action="thephpfilename.php">
</form>
答案 3 :(得分:0)
谢谢大家帮助初学者,谢谢。 我按照你的说明和网络教程修改了一些我的代码,但现在发送了一封邮件,但它完全是emtpty,好像我的变量都是空的。感谢
的index.html
<form class="col s12" method="POST" action="mail.php">
<div class="row">
<div class="input-field col s6">
<i class="material-icons prefix">info</i>
<input id="first_name" type="text" class="validate" name="first_name">
<label for="first_name">Prénom</label>
</div>
<div class="input-field col s6">
<i class="material-icons prefix">info</i>
<input id="last_name" type="text" class="validate" name="last_name">
<label for="last_name">Nom de famille</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">phone</i>
<input id="mail" type="email" class="validate" name="email">
<label for="mail">E-mail</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">chat</i>
<textarea id="message" class="materialize-textarea"></textarea>
<label for="message">Message</label>
</div>
<button class="btn waves-effect waves-light" type="submit" name="action" id="submit" for="submit">Envoyer
<i class="material-icons right">send</i>
</button>
</div>
</form>
mail.php
<?php
error_reporting(E_ALL);
// if (isset($_POST['submit'])) { <<-- not an error, I just wanted to get rid of it w/o deleting it
$prenom = !empty($_POST['first_name']) ? $_POST['first_name'] : NULL;
$nom = !empty($_POST['last_name']) ? $_POST['last_name'] : NULL;
$from = !empty($_POST['mail']) ? $_POST['mail'] : NULL;
$msg = !empty($_POST['message']) ? $_POST['message'] : NULL;
if(mail('hugoleon2002@gmail.com', 'Commande Amarrex', $msg))
{
echo 'Le message a été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
// }
?>
答案 4 :(得分:0)
我终于回答了我自己的问题,谢谢你的时间和帮助:) 再见
index.html:
<form class="col s12" method="POST" action="mail.php">
<div class="row">
<div class="input-field col s6">
<i class="material-icons prefix">info</i>
<input id="first_name" type="text" class="validate" name="first_name">
<label for="first_name">Prénom</label>
</div>
<div class="input-field col s6">
<i class="material-icons prefix">info</i>
<input id="last_name" type="text" class="validate" name="last_name">
<label for="last_name">Nom de famille</label>
</div>
</div>
<div class="row">
<div class="input-field col s6">
<i class="material-icons prefix">mail</i>
<input id="mail" type="email" class="validate" name="email">
<label for="mail">E-mail</label>
</div>
<div class="input-field col s6">
<i class="material-icons prefix">phone</i>
<input id="phone" type="tel" name="phone">
<label for="phone">Téléphone (optionel)</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">chat</i>
<textarea id="message" class="materialize-textarea" name="message"></textarea>
<label for="message">Message</label>
</div>
<button class="btn waves-effect waves-light" type="submit" name="action" id="submit" for="submit">Envoyer
<i class="material-icons right">send</i>
</button>
</div>
</form>
mail.php:
<?php
$prenom = !empty($_POST['first_name']) ? $_POST['first_name'] : NULL;
$nom = !empty($_POST['last_name']) ? $_POST['last_name'] : NULL;
$from = !empty($_POST['email']) ? $_POST['email'] : NULL;
$msg = !empty($_POST['message']) ? $_POST['message'] : NULL;
$tel = !empty($_POST['phone']) ? $_POST['phone'] : NULL;
$headers = 'From: WEBSITE E-MAIL';
// echo "$msg" . "$nom" . "$from";
if(empty($prenom) || empty($nom) || empty($from) || empty($msg))
{
echo 'Mail couldn't be send, a fiel is empty';
}
elseif(mail('EMAIL ADRESS', "Commande Amarrex de $prenom $nom", "$prenom $nom a ecrit : $msg \n\n\n E-mail de contact : $from\n\n Telephone : $tel", "$headers"))
{
echo 'Mail sent.';
}
else
{
echo 'mail not sent, unexpected error';
}
// }
?>
这是有效的,即使它非常混乱也随意使用