2015-05-13 2 views
-1

пытается настроить веб-страницу с помощью этого PHP. Сначала я получил пустую страницу, а затем отобразил ошибку (-ы), которая была внутренней ошибкой сервера. После небольшого исследования я увидел, что это в основном код, который вызывает проблемы. Если бы кто-нибудь был достаточно любезен, чтобы просмотреть все возможные решения, я был бы признателен. До этого еще есть код html, хотя он не включает ни один из PHP.Ошибка анализа паролей PHP: ошибка синтаксиса; неожиданный конец файла

<?php 
$subjectPrefix = 'Site Contact Request'; 
$emailTo = '***@****.com'; 
if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $name  = stripslashes(trim($_POST['form-name'])); 
    $email = stripslashes(trim($_POST['form-email'])); 
    $tel  = stripslashes(trim($_POST['form-tel'])); 
    $assunto = stripslashes(trim($_POST['form-assunto'])); 
    $mensagem = stripslashes(trim($_POST['form-mensagem'])); 
    $pattern = '/[\r\n]|Content-Type:|Bcc:|Cc:/i'; 
    if (preg_match($pattern, $name) || preg_match($pattern, $email) || preg_match($pattern, $assunto)) { 
     die("Header injection detected"); 
    } 
    $emailIsValid = preg_match('/^[^0-9][A-z0-9._%+-]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $email); 
    if($name && $email && $emailIsValid && $assunto && $mensagem){ 
     $subject = "$subjectPrefix"; 
     $body = "Name: $name <br /> Subject: $assunto <br /> Email Address: $email <br /> Telephone Number: $tel <br /> Message: $mensagem"; 
     $headers = 'MIME-Version: 1.1' . PHP_EOL; 
     $headers .= 'Content-type: text/html; charset=utf-8' . PHP_EOL; 
     $headers .= "From: $name <$email>" . PHP_EOL; 
     $headers .= "Return-Path: $emailTo" . PHP_EOL; 
     $headers .= "Reply-To: $email" . PHP_EOL; 
     $headers .= "X-Mailer: PHP/". phpversion() . PHP_EOL; 
     mail($emailTo, $subject, $body, $headers); 
     $emailSent = true; 
    } else { 
     $hasError = true; 
    } 
} 
?> 

    <?php if(isset($emailSent) && $emailSent): ?> 
     <div class="col-md-6 col-md-offset-3"> 
      <div class="alert alert-success text-center">Your message has been sent.</div> 
     </div> 
    <?php else: ?> 
     <?php if(isset($hasError) && $hasError): ?> 
     <div class="col-md-5 col-md-offset-4"> 
      <div class="alert alert-danger text-center">An error occurred. Please try later.</div> 
     </div> 
     <?php endif; ?> 

    <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" id="contact-form" class="comment_form" role="form" method="post"> 
     <div class="row-fluid"> 
      <div class="span6"> 
       <input type="text" class="form-control" id="form-name" name="form-name" placeholder="Name" required> 
      </div> 
      <div class="span6"> 
       <input type="email" class="form-control" id="form-email" name="form-email" placeholder="Email" required> 
      </div> 
     </div> 
     <div class="row-fluid"> 
      <div class="span6"> 
       <input type="tel" class="form-control" id="form-tel" name="form-tel" placeholder="Telephone (Optional)"> 
      </div> 
      <div class="span6"> 
       <input type="text" class="form-control" id="form-assunto" name="form-assunto" placeholder="Subject" required> 
      </div> 
     </div> 
     <div class="row-fluid"> 
      <div class="span8"> 
       <textarea id="form-mensagem" name="form-mensagem" placeholder="Message"></textarea> 
      </div> 
      <div class="span4"> 
       <button class="btn" type="submit"><i class="li_paperplane"></i>Send message</button> 
      </div> 
     </div> 
    </form> 
+0

Если вы уже пробовали 'error_reporting (-1);' и 'ini_set ('display_errors', 'On');' и получили «Внутреннюю ошибку сервера», а не ошибку PHP, то у вас, вероятно, есть либо разрешения или права собственности на ваш php-файл .... –

+0

Вам не хватает 'endif;' из ''/' ' – Sean

+0

@ Вы правы, хорошо поймать. 2 if и только один endif. –

ответ

0

Вы не закрываете один, если условие при запуске, пожалуйста, измените его следующим образом: -

<?php if(isset($emailSent) && $emailSent): ?> 
     <div class="col-md-6 col-md-offset-3"> 
      <div class="alert alert-success text-center">Your message has been sent.</div> 
     </div> 
    <?php else: ?> 
     <?php if(isset($hasError) && $hasError): ?> 
     <div class="col-md-5 col-md-offset-4"> 
      <div class="alert alert-danger text-center">An error occurred. Please try later.</div> 
     </div> 
     <?php endif; ?> 
     <?php endif; ?> // this is missing and based on your functionality you can move it to anywhere else 

Выход: - http://prntscr.com/74n8d3

Примечание: - это очень первый HTML начал с, если состояние. зависит от вашей функциональности, которую вам нужно настроить, независимо от того, хотите ли вы.

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