2013-07-31 5 views
-1

В настоящее время я работаю на ранних этапах контактной формы для веб-сайта, но он отображает PHP-код и не выполняет код.Контактный формуляр PHP не работает должным образом

Код PHP работает при выполнении непосредственно (т. Е. При выполнении из localhost/script.php).

Вот код:

<?php 
     if ($_POST['email']<>'') { 

      require_once 'Mail.php'; 

      $from = "[email protected]"; 
      $to = "[email protected]"; 
      $subject = "Test subject"; 
      $body = "Test"; 

      $host = "ssl://smtp.gmail.com"; 
      $port = "465"; 
      $username = "[email protected]"; 
      $password = "mypassword"; 

      $headers = array ('From' => $from, 
      'To' => $to, 
      'Subject' => $subject); 
      $smtp = Mail::factory('smtp', 
      array ('host' => $host, 
       'port' => $port, 
       'auth' => true, 
       'username' => $username, 
       'password' => $password)); 

      $mail = $smtp->send($to, $headers, $body); 

      if (PEAR::isError($mail)) { 
      echo("<p>" . $mail->getMessage() . "</p>"); 
      } else { 
      echo("<p>Message successfully sent!</p>"); 
      } 

     } else { 

      <form method="post"> 
       <input type="text" name="nombre" placeholder="Nombre"><p></p> 
       <input type="text" name="email" placeholder="Email"><p></p> 
       <input type="text" name="telefono" placeholder="Teléfono"><p></p> 
       <textarea rows=6 name="mensaje" class="span4" placeholder="Mensaje"></textarea><p></p> 

       <input type="submit" class="btn btn-primary" value="Enviar"> 
      </form> 

     }; 
    ?> 

Я знаю, что форма (на данный момент) не связана с PHP скрипт, я просто пытаюсь для сценария, чтобы получить казнены.

И это то, что показывает, когда я открываю HTML (http://i.imgur.com/6jhvcpH.jpg)

+2

У вас смешанный HTML и PHP без закрытия и открытия PHP-тегов. Что вы используете для редактора? – DevlshOne

+1

используйте! = Для неравномерного или события лучше "if (! Empty ($ _ POST ['email']))". Проверьте теги открытия и закрытия php, вы добавляете html в php-код, как я вижу. – user1759572

ответ

0

Вы должны закрыть блок PHP после другого, а затем открыть он снова после html-формы.

} else { ?> 

    start html stuff... 
    end html stuff 

<?php 
    } //end else 
?> 
+0

Спасибо! Исправление этого, плюс изменение расширения на .php из .html исправлено – user2020618

0

заменить

<form method="post"> 
     <input type="text" name="nombre" placeholder="Nombre"><p></p> 
     <input type="text" name="email" placeholder="Email"><p></p> 
     <input type="text" name="telefono" placeholder="Teléfono"><p></p> 
     <textarea rows=6 name="mensaje" class="span4" placeholder="Mensaje"></textarea><p></p> 

     <input type="submit" class="btn btn-primary" value="Enviar"> 
    </form> 

с

echo '<form method="post"> 
     <input type="text" name="nombre" placeholder="Nombre"><p></p> 
     <input type="text" name="email" placeholder="Email"><p></p> 
     <input type="text" name="telefono" placeholder="Teléfono"><p></p> 
     <textarea rows=6 name="mensaje" class="span4" placeholder="Mensaje"></textarea><p></p> 

     <input type="submit" class="btn btn-primary" value="Enviar"> 
    </form>'; 
0

эхо HTML формы и обеспечить файл использует расширение .php (.php)

0

Даже если <> является оператор неравенства можно можно использовать! = Оператор. Поскольку оператор if имеет только один оператор. Единственное различие между: = и <> является преимуществом.

Хотя я бы использовал Исеть

if (isset($_POST['email'])) 

или с пустым

if (!empty($_POST['email'])) 

, потому что они более читаемым.

У вас также есть смешанный html с PHP. Вы должны отозвать html из PHP.

echo '<form method="post"> 
    <input type="text" name="nombre" placeholder="Nombre"><p></p> 
    <input type="text" name="email" placeholder="Email"><p></p> 
    <input type="text" name="telefono" placeholder="Teléfono"><p></p> 
    <textarea rows=6 name="mensaje" class="span4" placeholder="Mensaje"></textarea><p></p> 

    <input type="submit" class="btn btn-primary" value="Enviar"> 
    </form>'; 

Ошибки в Вашем комментарии вы получаете, потому что вы звоните Mail::factory и PEAR::isError статически, которые они не поддерживают со строгими стандартами.

Вы можете отключить жесткие ошибки следующего вызова функции

error_reporting(E_ALL^E_STRICT); 

в верхней части вашего кода.

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