2017-02-07 18 views
0

Мне интересно, что происходит в этой контактной форме. Я не уверен, почему, но он постоянно по умолчанию принимает значение else и говорит Something went wrong, please try again later.. Я не могу понять, почему, и error_log ничего не показывает. Есть ли что-то очевидное, что я пропал? Я довольно новичок в PHP.PHP Контактный формуляр Failing

PHP

<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $phone = $_POST['phone']; 
    $message = $_POST['message']; 
    $captcha = $_POST['captcha']; 
    $from = 'From: HankSmith.com Contact Form'; 
    $to = '[email protected]'; 
    $subject = 'HANK SMITH CONTACT FORM'; 

    $body = " 
      From: $name\n 
      E-Mail: $email\n 
      Phone: $phone\n 
      Message: $message\n"; 

    if ($_POST['submit'] and $captcha == 4) {     
     if (mail ($to, $subject, $body, $from)) { 
     echo '<p style="margin-top: 150; text-align:center; font-size: 18px;">Your message has been sent! Click <a href="../index.php">here</a> to return to the website.</p>'; 
    } else { 
     echo '<p>Something went wrong, try again later!</p>'; 
    } 
} 
?> 

HTML Форма

  <form class="contactform" method="post" action="php/contact.php"> 
       <h3>Name</h3> 
       <input class="form inputboxes" type="text" name="name"> 
       <h3>Email</h3> 
       <input class="form inputboxes" type="text" name="email"> 
       <h3>Phone</h3> 
       <input class="form inputboxes" type="text" name="phone"> 
       <h3>Message</h3> 
       <textarea class="form inputboxes" name="message"></textarea> 
       <h3 class="captchastyle">Are you real? What is 2 + 2?</h3><input class="captcha captchastyle" type="text" name="captcha" maxlength="1"> 
       <input class="form submit" name="submit" type="submit" value="Submit"> 
      </form> 
+1

Возможно, вам нужно будет увидеть форму – nogad

+0

Я обновлю сообщение с помощью формы. –

+1

Опубликовать html-форму. –

ответ

1

Когда я скопировал это в мой текстовый редактор, он бросил синтаксическую ошибку, потому что эхо заявление в если (почта) ... раздел Didn У меня есть закрывающая скобка. Я никогда не использую 'и', я обычно использую '& &', но на самом деле это не имеет значения в этом случае.

if ($_POST['submit'] && $captcha == 4) {     
     if (mail ($to, $subject, $body, $from)) { 
     echo '<p style="margin-top: 150; text-align:center; font-size: 18px;">Your message has been sent! Click <a href="../index.php">here</a> to return to the website.</p>'; 
     } // THIS MUST BE HERE 
    } else { 
     echo '<p>Something went wrong, try again later!</p>'; 
    } 

Кроме того, вы, вероятно, хотите условие «еще» для этого оператора if (mail) .... Если вы видите пустую страницу, то это будет, потому что вы не обрабатывает, что происходит, если почта() функция возвращает ложь:

if (mail ($to, $subject, $body, $from)) { 
    echo '<p style="margin-top: 150; text-align:center; font-size: 18px;">Your message has been sent! Click <a href="../index.php">here</a> to return to the website.</p>'; 
} else { 
    echo '<p>Problem sending mail!'; 
} 

И если честно, родной PHP почты() функция отстой! Вместо этого используйте вместо этого SwiftMailer или PHPMailer.

+0

Я забыл браслет ?? Цифры. Благодарю. Я проверю это. –

+0

Итак, это не дало мне ошибку, просто пустую страницу. Прогресс! –

+0

Да, на самом деле это не обязательно, поскольку вы используете только одно утверждение в условии if. Но, поскольку у вас была открывающая скобка, необходима заключительная скобка. –

1

Использование isset на вашем состоянии:

if (isset($_POST['submit']) && $captcha == 4)

Он проверяет, если поле не пусто, и форма была отправлена ,

И && лучше здесь, чем and видят причину здесь: https://stackoverflow.com/a/11861068

+0

Все еще бросает то же самое на меня, мне интересно, не просто ли сервер, не распространяющийся так быстро, как я обновляю. –

+0

ОК используйте '&&' и закройте '}', как указано в следующем ответе. Он должен работать. –

+0

Ну, вместо сообщения об ошибке я просто получил пустую страницу, поэтому считаю этот прогресс. –

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

  • Нет связанных вопросов^_^