2015-07-19 6 views
-1

Итак, я пытаюсь узнать, как создать контактную форму PHP на XAMPP, просто такую, которая отправляет имя, электронную почту и сообщение по электронной почте.PHP form form parsing error

Так что с какой-то код, который я нашел в пару учебников и смешал его с какой-то нуб «Я думаю, что это идет здесь» магия и сделал это:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    </head> 
    <body> 

    <?php 
    //This is where the variables are given empty values 
    $nameErr = $emailErr = $textErr = ""; 
    $name = $email = $message = ""; 

    //The variable for the JavaScript 
    $js = <<<JS 
<script> 
document.getElementById("contactform").style.display = "none"; 
</script> 
JS; 

    if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     if (empty($_POST["name"])) { 
      $nameErr = "Name is required"; 
     } else { 
      $name= test_input($_POST["name"]); 
     } //this checks if the name contains only letters and whitespaces: 
      if (!preg_match("/^[a-zA-Z ]*$/",$name)) { 
       $nameErr = "Only letters and white space allowed"; 
      } 


     if (empty($_POST["email"])) { 
      $emailErr = "Email is required"; 
     } else { 
      $email = test_input($_POST["email"]); 
     } // this is where the e-mail address's form is checked 
      if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
       $emailErr = "Invalid email format"; 
      } 


     if (empty($_POST["message"])) { 
      $textErr = "Aren't you going to say something?" 
     } else { 
      $message = test_input($_POST["message"]); 
     } 

    } 
    function test_input($data) { 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlentities($data); 
     return $data; 
    } 


    if ($SERVER["REQUEST_METHOD"] == "POST") { 
     if (empty($nameErr && $emailErr && $textErr)) { 
      $to = "[email protected]"; 
      $subject = "Form Submission from "$name"."; 
      $messageall = "$message \n From: $name \n Reply to: $email"; 
      mail($to,$subject,$message,$from); 
      echo $js; 
      echo "Thanks, we will contact you back shortly!" 
     } 
    } 
    ?> 

     <form id="contactform" method="POST" action=""> 
      Name:<br><input type="text" name="yourname"> 
      <?php echo $nameErr;><br> 
      E-mail:<br><input type="text" name="youremail"> 
      <?php echo $emailErr;><br> 
      Message:<br><textarea name="message" rows="6" cols="25"></textarea> 
      <?php echo $textErr;> 
      <br><br> 
      <input type="submit" value="Submit"><input type="reset" value="clear"><br> 
      <?php echo $formErr;> 
     </form> 
    </body> 
</html> 

Так что, когда я запустил страницу, я получил это:

Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\form\index.php on line 43 

Я проверил свои скобки, и я не уверен, где я ошибся. Я переместил их и получил другие ошибки синтаксического анализа.

Если кто-то поможет мне в этом вопросе и что-нибудь еще, я, возможно, прищурился, но не знал, что я еще ... Я был бы очень благодарен. Всем спасибо!

+2

У вас не хватает длинных запятой в строка 42 '$ textErr =« Разве вы не собираетесь что-то сказать? »;' – Yasel

ответ

2

Я не проверял, но я думаю, что вы пропустили точку с запятой на этой линии:

$textErr = "Aren't you going to say something?" 
+0

Спасибо, Майкл, что исправил его (ну, эта проблема хотя бы lol). –

2

Если вы посмотрите на строку 42, вы заметите, что вам не хватает точки с запятой в конце строки, поэтому строка в строке 43 неожиданна, так как она ожидает точку с запятой.

Обновление линии 42 до:

$textErr = "Aren't you going to say something?";