使用php邮件功能时,在获取参数前面添加了Forward Slash

时间:2011-09-08 16:35:40

标签: php email gmail

我在消息正文中有一个链接

的链接
page.php?id=x&name=y

当我使用php的邮件功能发送邮件时

它将链接(在gmail中,如果重要的话)输出为page.php/?id=x&name=y,即它在get参数"id"前面加上正斜杠。我最终会进行URL重写,但我很好奇如何在不重写URL的情况下阻止PHP中的这种情况发生?

由于

修改

以下是相关的代码部分:

//     $send_email and $rec_email are grabbed from database

 $part_mess = "<b>$sender_name". " says hi</b><br/><a href=profile.php?id=$sender_id&uname=$sender> View $sender_name"."'s profile</a>" ;
 $mess = $part_mess."<br/> Via <a href = 'http://www.mysite.com'>My Site</a>";
 $headers =  "MIME-Version: 1.0" . "\r\n"."Content-type:text/html;charset=iso-8859-1" . "\r\n".'From:'. $send_email . "\r\n";
 mail($rec_email, $subject,$mess,$headers , '-f admin@name.mysite.com');

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,您是否使用1and1.com进行托管?出于某种原因,我与他们一起托管的网站是mail()函数,它使用正斜杠转义所有特殊字符。

试试这个:

//     $send_email and $rec_email are grabbed from database

 $part_mess = "<b>$sender_name". " says hi</b><br/><a href=profile.php?id=$sender_id&    uname=$sender> View $sender_name"."'s profile</a>" ;
 $mess = $part_mess."<br/> Via <a href = 'http://www.mysite.com'>My Site</a>";
 $headers =  "MIME-Version: 1.0" . "\r\n"."Content-type:text/html;charset=iso-8859-1" . "\r\n".'From:'. $send_email . "\r\n";
 mail($rec_email, $subject,stripslashes($mess),$headers , '-f admin@name.mysite.com');