我现在不知道为什么我的表格失败了

时间:2015-05-17 08:49:03

标签: php html

我写了这个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');

?>

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

如果您分析html代码,那么您的文本区域将会错过名称。

您需要在开始标记

中设置文本区域的名称
  <textarea name="comment">Enter text here...</textarea>

另外,如果您使用name =&#39; message&#39;,那么您在服务器端使用的是其他名称。你需要使用&#39; message&#39; in获取POST值

参考: http://www.w3schools.com/tags/att_textarea_name.asp

答案 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');
    }   
    ?>