2013-02-21 2 views
0

Я пытаюсь создать простую форму контакта. Все написано правильно, но когда я попал в submit, это никуда не денется, просто попытайтесь открыть contact.php. Я думаю, что в коде есть что-то, что действительно отправляет сообщение. Я уверен, что это что-то довольно простое, что мне не хватает, но это немного над моей головой. Любая помощь приветствуется.Контактный формуляр Отправка

<form action="mail.php" method="POST"> 
    <p>Name</p> <input type="text" name="name"> 
    <p>Company</p> <input type="text" name="company"> 
    <p>Email</p> <input type="text" name="email"> 
    <p>Phone</p> <input type="text" name="phone"> 
    <p>Message</p><textarea name="message" rows="4" cols="25"></textarea><br /> 
    <input type="submit" value="Submit"> 
    </form> 

<?php 

$name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 

$to ='[email protected]'; 
$send_contact=mail($to,$subject,$message,$header); 

// Check, if message sent to your email 
// display message "We've received your information" 

if($send_contact){ 
echo "We've received your contact information"; 
} 
else { 
echo "ERROR"; 
} 
?> 

EDIT: Я был в состоянии получить электронную почту, наконец, после добавления полного URL для mail.php ... Однако ни одна из информации для сообщения, за исключением не был включен. Отправитель был указан как Apache ... как я могу заверить, что информация, введенная в формы, будет включена в электронное письмо? Спасибо за всю помощь до сих пор.

+0

Он пытается открыть contact.php или mail.php? Убедитесь, что PHP работает правильно на вашем сервере. –

+0

Он пытается открыть mail.php. Я могу видеть информацию и стили из других моих файлов PHP на моей странице (прежде чем нажимать кнопку «Отправить»), если это ответит на ваш вопрос. – usefulbattery

+0

Проверьте свое разрешение на mail.php - попробуйте 755, попробуйте 777. Также зайдите прямо в mail.php и посмотрите, что произойдет. Можете ли вы разместить здесь содержимое mail.php? –

ответ

0

поскольку Вы указываете код на той же странице, вы можете опустить action в свою форму. Кроме того, поставьте условие для запуска PHP после запуска скрипта.

<?php 
if(isset($_POST['submit'])){ 
$name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 

$to ='[email protected]'; 
$send_contact=mail($to,$subject,$message,$header); 

// Check, if message sent to your email 
// display message "We've received your information" 

if($send_contact){ 
echo "We've received your contact information"; 
} 
else { 
echo "ERROR"; 
} } 
?> 
<form action = "<?= $_SERVER["PHP_SELF"]; ?>"method="POST"> 
    <p>Name</p> <input type="text" name="name"> 
    <p>Company</p> <input type="text" name="company"> 
    <p>Email</p> <input type="text" name="email"> 
    <p>Phone</p> <input type="text" name="phone"> 
    <p>Message</p><textarea name="message" rows="4" cols="25"></textarea><br /> 
    <input type="submit" value="Submit" name="submit"> 
    </form> 

Надеюсь, это поможет!

EDIT: Я не уверен, что представляет собой текущее имя файла, но чтобы оно было динамичным, я упомянул $_SERVER["PHP_SELF"], который не рекомендуется использовать. Однако, попробуйте! :)

+0

Спасибо, что помогли. К сожалению, я просто получил сообщение 404 после того, как нажал submit (я, конечно же, записал свой собственный адрес электронной почты вместо строки). Возможно, потому, что он больше не связывается с моим почтовым ящиком. – usefulbattery

+0

Я только что отредактировал свой ответ. Проверьте код сейчас. – Karma

+0

Карма, спасибо. Вместо PHP я просто использовал свой mail.php и включил прямую ссылку ... Я думаю, что это могло бы задержать все время. Однако у меня теперь есть новая проблема .... Я только что получил электронное письмо, однако он заявляет, что он из «Apache» и не содержит ни одной информации, кроме сообщения в письме. Как я могу убедиться, что вся необходимая информация включена? – usefulbattery