-1

我目前正在处理网站联系表单的早期阶段,但它显示的是 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

4 回答 4

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>';
于 2013-07-31T20:42:42.437 回答
0

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

} else { ?>

    start html stuff...
    end html stuff

<?php
    } //end else
?>
于 2013-07-31T20:46:36.427 回答
0

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

于 2013-07-31T20:49:42.910 回答
0

即使 <> 是不等式运算符,您也可以使用 != 运算符。因为 if 语句只有一个运算符。!= 和 <> 之间的唯一区别是优先级。

虽然我会使用 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::factory并且是PEAR::isError静态的,它们不支持严格的标准。

您可以使用以下函数调用禁用严格错误

error_reporting(E_ALL ^ E_STRICT);

在代码的顶部。

于 2013-07-31T21:07:08.253 回答