我正在尝试将php添加到我的网站,以便在用户点击提交按钮时发送电子邮件。由于某种原因,我的PHP的一部分显示在浏览器中,我无法弄清楚为什么。我已查找信息,并尝试检查我的报价和类似的东西,但我不知道是什么导致它的一部分显示为文本。
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form id="Contact-Form" action="" method="POST" enctype="multipart/form-data">
<div class="row">
<label for="name">Your name:</label><br />
<input id="name" class="input" name="name" type="text" value="" size="30" /><br />
</div>
<div class="row">
<label for="email">Your email:</label><br />
<input id="email" class="input" name="email" type="text" value="" size="30" /><br />
</div>
<div class="row">
<label for="message">Your message:</label><br />
<textarea id="message" class="input" name="message" rows="7" cols="30"></textarea><br />
</div>
<input id="Submit-Button" type="submit" value="Send email" />
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill the form again.";
}
else
{
$from="From: $name<$email>\r\n Return-path: $email";
$subject="Message sent using your contact form";
mail("email@gmail.com", $subject, $message, $from);
echo "Email sent!";
}
}
?>
答案 0 :(得分:1)
解释为什么会发生这种情况......
请注意,所显示的代码部分只是代码中<$email>
之后的位?特别是>
。
当您在浏览器中打开PHP文件而没有服务器首先处理它时,浏览器会将大多数PHP代码视为一个无效的大HTML标记,除了View Source和文档检查器工具外,它们不会显示。但是,由于您的代码恰好包含>
,因此标记了&#34;无效HTML标记的结尾&#34;在页面中可以看到任何后面的内容。
要解决此问题,请使用服务器! PHP有一个内置的5.4,所以如果你在你的机器上安装它,你可以在PHP的根文件夹中打开一个命令行并运行:
php -S localhost:8000
然后打开浏览器并转到http://localhost:8000/yourfile.php
它将运行。漂亮!