2016-09-01 5 views
-1

Я пытаюсь получить свою простую форму контакта, чтобы быть функциональной. Я хочу, чтобы эта форма либо отправляла мне по электронной почте, либо где-то записывала контактные данные. Я только сейчас начинаю изучать PHP и Javascript, поэтому мои знания чрезвычайно ограничены.Контактная форма + PHP + Проверка

Валидация, похоже, работает (она будет предупреждать вас, если вы не используете действительный адрес электронной почты, например), но сама форма не отправляется нигде.

Когда вы вводите информацию и нажимаете кнопку «Отправить», вы получите сообщение ERROR 404 - Not Found (Затем он ссылается на contact.php - файл php, который я использую). Как я могу начать устранять это? Кроме того, если у вас есть ясный, простой ресурс для изучения PHP и форм, я был бы более чем счастлив изучить больше. Я искал (на несколько часов) приличные уроки, но большинство из них не дают ясных объяснений - и просто поощряйте вас копировать и вставлять код.

<form role="form" id="contactform" form action="contact.php" method="post"> 
        <div class="form-group"> 
        <label for="name">Your Name</label> 
        <input type="text" class="form-control" id="name"> 
        </div> 
        <div class="form-group"> 
        <label for="email">Email address</label> 
        <input type="email" class="form-control" id="email"> 
        </div> 
        <div class="form-group"> 
        <label for="subject">Subject</label> 
        <input type="subject" class="form-control" id="subject"> 
        </div> 
        <div class="form-group"> 
        <label for="message">Message</label> 
        <textarea class="form-control" id="message" rows="3"></textarea> 
        </div> 
        <button type="submit" class="btn">Submit</button> 
        <div id="msgSubmit" class="h3 text-center hidden">Message Submitted!</div> 
       </form> 

--- PHP ---

<?php 
$name = $_POST["name"]; 
$email = $_POST["email"]; 
$subject = $_POST["subject"]; 
$message = $_POST["message"]; 

$EmailTo = "[email protected]"; 
$Subject = "New Message Received"; 

// prepare email body text 
$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 

$Body .= "Email: "; 
$Body .= $email; 
$Body .= "\n"; 

$Body .="Subject: "; 
$Body .= $subject; 
$Body .= "\n"; 

$Body .= "Message: "; 
$Body .= $message; 
$Body .= "\n"; 

// send email 
$success = mail($EmailTo, $Subject, $Body, "From:".$email); 

// redirect to success page 
if ($success){ 
    echo "success"; 
}else{ 
    echo "invalid"; 
} 

?> 
+0

Предоставить любые соответствующие коды и сообщения об ошибках. Пожалуйста, не ожидайте, что мы отправимся на какой-нибудь случайный сайт, чтобы попытаться диагностировать проблемы. –

+0

Я просто не знаю, какой код включить. HTML, JS и PHP? – whr2206

+0

Мы не знаем? Уточните проблему и ответьте на какой код. Сделайте некоторые отладки. –

ответ

0

Используйте атрибут имени в полях ввода. Только тогда вы сможете зафиксировать их значения в $ _POST как действительный индекс, а не через ids.

Смежные вопросы