我目前正在处理网站联系表单的早期阶段,但它显示的是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)
时显示的内容答案 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::factory
和PEAR::isError
,并且他们不支持严格的标准。
您可以使用以下函数调用
禁用严格错误error_reporting(E_ALL ^ E_STRICT);
位于代码顶部。