这更像是一种好奇心。每当发表评论时,我网站上的评论系统都会自动生成一封电子邮件给我。其中有一个批准评论的链接,以及一个拒绝评论的链接。
$my_headers = 'MIME-Version: 1.0' . "\n";
$my_headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$my_headers .= 'From: MYSITE.com <[email protected]>' . "\n";
$subject = "Comment Received";
$messagei = "Comment from " . addslashes($_POST['commentName']) ." on ".addslashes($title)."." . "<br /><br />" .addslashes($commentCommment);
$messagei .= "<br /><br />
<strong>OPTIONS:</strong>
<br /><br /><a href='http://www.MYSITE.com/edit/instaprove.php?Approve=Approve&commentid=".$lastID."'>
<h2>http://www.MYSITE.com/edit/instaprove.php?Approve=Approve&commentid=".$lastID."</h2> (Approve Comment)</a>
<br /><br /><br /><a href='http://www.MYSITE.com/edit/instaprove.php?Remove=Remove&commentid=".$lastID."'>
<h2>http://www.MYSITE.com/edit/instaprove.php?Remove=Remove&commentid=".$lastID."</h2> (Delete Comment)</a>";
mail('[email protected]',$subject,$messagei,$my_headers,"[email protected]");
99% 的情况下它工作得很好,但每隔一段时间,而不是正确生成批准链接,如
http://www.mysite.com/edit/instaprove.php?Approve=Approve&commentid=142631
,它生成一个空格,所以我在电子邮件中得到的链接转到
http://www.mysite.com/edit/instaprove.ph%20p?Approve=Approve&commentid=142631
很奇怪吧?
编辑:为了澄清 - 发生这种情况时,链接在电子邮件中正确写出(
.php
),但它指向的链接已损坏( .ph p
)。编辑 8/12:它又发生了。链接文字是正确的:
http://www.mysite.com/edit/instaprove.php?Approve=Approve&commentid=142858
但链接呈现为
http://www.mysite.com/edit/%20instaprove.php?Approve=Approve&commentid=142858
所以,当它出现时,神秘空间会出现在链接的不同点。
最佳答案
我有一个类似的空格问题,而且我的电子邮件来源中出现了奇怪的“!\n”。
这是因为线路很长。在邮件内容中添加一些“\n”可以解决问题。
关于php - PHP 生成的电子邮件中的不可预测行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7019449/