PHP联系表单无法正常工作

时间:2013-07-31 20:34:50

标签: php html

我目前正在处理网站联系表单的早期阶段,但它显示的是PHP代码,而不是执行代码。

PHP代码在直接执行时(即从localhost / script.php执行时)工作。

以下是代码:

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

           require_once 'Mail.php';

           $from = "mymail@gmail.com";
           $to = "myothermail@gmail.com";
           $subject = "Test subject";
           $body = "Test";

           $host = "ssl://smtp.gmail.com";
           $port = "465";
           $username = "mymail@gmail.com";
           $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

时显示的内容

4 个答案:

答案 0 :(得分: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>';

答案 1 :(得分:0)

你需要在else之后关闭php块,然后在html表单之后再次打开它。

} else { ?>

    start html stuff...
    end html stuff

<?php
    } //end else
?>

答案 2 :(得分:0)

回显HTML表单并确保您的文件使用.php扩展名(.php)

答案 3 :(得分:0)

即使&lt;&gt;是你可以使用的不等运算符!=运算符。因为if语句只有一个运算符。 !=和&lt;&gt;之间的唯一区别优先。

虽然我会使用isset

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

或空

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

因为它们更具可读性。

你也有混合html与PHP。你应该回应PHP中的html。

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::factoryPEAR::isError,并且他们不支持严格的标准。

您可以使用以下函数调用

禁用严格错误
error_reporting(E_ALL ^ E_STRICT);

位于代码顶部。