我写了这个html和php代码来发送一个表单,但我不明白为什么它会失败。
我的代码:
HTML
<form action="formulari.php" method="post">
<p>
Nombre:<input name= "name" type="text";>
</p>
<p>
email:<input name= "email" type="text";>
</p>
<p>Comentario:<textarea rows="4" cols="50">
</textarea name= "message"></p>
<input type="submit" value="enviar" >
<input type="reset" value="borrar" >
</form>
PHP
<?php
$name = $_POST [ 'name'];
$email = $_POST [ 'email'];
$message = $_POST['comentari'];
$to = "email@gmail.com";
$subject = "Formulari_contacte";
mail ( $to, $subject, $message, $email);
header('Location: ../index.html?message=form_submitted');
?>
有人可以帮忙吗?
答案 0 :(得分:0)
如果您分析html代码,那么您的文本区域将会错过名称。
您需要在开始标记
中设置文本区域的名称 <textarea name="comment">Enter text here...</textarea>
另外,如果您使用name =&#39; message&#39;,那么您在服务器端使用的是其他名称。你需要使用&#39; message&#39; in获取POST值
答案 1 :(得分:0)
尝试以下方法:
HTML:
<form action="formulari.php" method="post">
<p>Nombre: <input name="name" type="text"></p>
<p>email: <input name="email" type="text"></p>
<p>Comentario: <textarea rows="4" cols="50" name="message"></textarea></p>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</form>
PHP
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = "email@gmail.com";
$subject = "Formulari_contacte";
$mail = mail( $to, $subject, $message, $email);
// Check if email is send
if( $mail ) {
header('Location: ../index.html?message=form_submitted');
} else {
echo 'Email not send';
}
?>
我删除了“;”和HTML和PHP中不必要的空格。您还在结束标记中有textarea的名称。
另请注意,您可以注射。用户可以为您编写一些javascript代码。
答案 2 :(得分:0)
我猜你无法获取textarea值
extension Range where Element : SignedIntegerType {
var sample: Element? {
guard startIndex < endIndex else { return nil }
let i: ClosedInterval = startIndex...endIndex.predecessor()
return i.random
}
}
extension Range where Element : UnsignedIntegerType {
var sample: Element? {
guard startIndex < endIndex else { return nil }
let i: ClosedInterval = startIndex...endIndex.predecessor()
return i.random
}
}
答案 3 :(得分:0)
感谢大家回答了我的问题,在你的帮助和谷歌的帮助下,我制作了这个具有反垃圾邮件保护的处方集,以及一个系统,如果已发送邮件,则将用户发送到页面。
HTML:
<form action="formulari.php" method="post">
<p>Nombre: <input name="name" type="text"></p>
<p>email: <input name="email" type="text"></p>
<input name="edat" style=" display:none;">
<p>Comentario: <textarea rows="4" cols="50" name="message"></textarea></p>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</form>
PHP:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = "xavicarreragimbert@gmail.com";
$subject = "Formulari_contacte";
if (!empty($_POST['edat'])){
echo "Lo sentimos el sistema antispam ha detectado que es possiblemente un envio realizado a traves de spam";
}
else{
mail( $to, $subject, $message, $email);
header('Location: ../index.html?message=form_submitted');
}
?>