对大多数人来说这可能是显而易见的,但我无法弄清楚错误;这是一个简单的HTML表单和用于发送电子邮件的PHP代码,包括发送消息的主机(域):
<?php
$domainName = $_SERVER["SERVER_NAME"];
if (isset($_REQUEST['email'])) {
$name = $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$subject = 'Hello :)' ;
$message .= 'E-mail: '.$_REQUEST['email']."\n"."\n" ;
$message .= 'Host: '.$_REQUEST['dname']."\n"."\n" ;
$message .= 'Name: '.$_REQUEST['name']."\n"."\n" ;
$message .= 'Price: '.$_REQUEST['price']."\n"."\n" ;
$message .= 'Message: '.$_REQUEST['message'] ;
$to = "mail@domain.com" ; //e-mail
$header = "From:$name <$email>" ;
mail($to, $subject, $message, $header );
}
?>
<html>
<head>
<title><?php echo $domainName; ?></title>
</head>
<body>
<form method="post" id="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<label for="dname">Host</label>
<input type="text" name="dname" id="dname" value=""/><!-- WORKS -->
<!-- <input type="text" name="dname" id="dname" value="<?php echo $_SERVER['SERVER_NAME']; ?>"/> --> <!-- DOES NOT WORK -->
<label for="name">Name</label>
<input type="text" name="name" id="name" value=""/>
<label for="email">E-mail</label>
<input type="text" name="email" id="email" value=""/>
<label for="price">Price</label>
<input type="text" name="price" id="price" value=""/>
<label for="message">Message</label>
<textarea name="message" id="message"></textarea>
<input type="submit" value="Send" name="submit" title="Send Message!" />
</form>
</body>
</html>
表单工作正常,直到我尝试将域插入第25行:
<input type="text" name="dname" id="dname" value="<?php echo $_SERVER['SERVER_NAME']; ?>"/>
这是表单停止运行的地方,无法弄清楚错误。任何帮助,简短的“我错过了什么......”;)将受到高度赞赏!谢谢!
答案 0 :(得分:0)
该脚本没有PHP错误,导致mail()函数无法正常运行。问题是在使用“echo $ _SERVER ['SERVER_NAME']时在邮件正文中包含了一个URL(链接);”
邮件将毫无问题地发送,但邮件正文中的链接将激活垃圾邮件过滤器,邮件将卡在垃圾邮件文件夹中。从邮件中删除链接(主机/域)后,电子邮件将再次到达收件箱。这引起了混乱。