2015-05-17 2 views
0

Я написал этот код 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 protected]"; 
$subject = "Formulari_contacte"; 

mail ($to, $subject, $message, $email); 
header('Location: ../index.html?message=form_submitted'); 

?> 

Может кто-нибудь помочь?

+0

У вас есть ошибка? Какая часть вашего кода не работает? –

+0

грамматика и правописание – Jahid

ответ

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 protected]"; 
$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. У вас также было название текстового поля в закрывающем теге.

Также обратите внимание, что вы открыты для инъекций. Пользователи могут написать код javascript для вас.

+1

Пожалуйста, исправьте ошибку. textarea name в html - это сообщение, а в php-скрипте вы получаете значение textarea как comentari. –

+0

Теперь он отправляет мне электронное письмо пользователя, но не сообщение – Xalsar

+0

@ Xalsar посмотрите на комментарии, и вы узнаете об ошибке '$ message = $ _POST ['message'];' – SuperDJ

0

Если вы проанализируете код html, то текстовая область будет пропускать имя.

Вы должны задать имя текстовой области в открывающем теге

<textarea name="comment">Enter text here...</textarea> 

Плюс ваши используют другое имя на стороне сервера, если вы используете имя = «сообщения» Вам нужно будет использовать 'сообщение', чтобы получить значение POST

Ссылка: http://www.w3schools.com/tags/att_textarea_name.asp

0

Я думаю, вы не можете извлечь значение, TEXTAREA

<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 name= "comentari" rows="4" cols="50"> 
     </textarea> 
    </p> 
    <input type="submit" value="enviar" > 
    <input type="reset" value="borrar" > 
</form> 
0

Спасибо всем, что ответили на мой вопрос, с вашей помощью и Google я сделал этот бланк, который имеет защиту от нежелательной почты и системы для отправки пользователь на страницу, если почта была отправлена.

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 = "[email protected]"; 
$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'); 
    } 
    ?> 
Смежные вопросы