2012-08-31 120 views
1

每當我通過PHP發送郵件(由jQuery生成的內容,AJAX POST發送到PHP)時,到達目的地時URL的底部會丟失。當通過PHP發送郵件時,鏈接URL基本消失

因此,舉例來說,我發郵件用了以下機身:

Click <a href="http://www.example.com/?u=parameter&i=otherparameter">HERE</a> to go to the login page, etc, etc.. 

Use this link or copy it to your browser's address bar if the above doesn't work: 
<a href="http://www.example.com/?u=parameter&i=otherparameter">http://www.example.com/?u=parameter&i=otherparameter</a> 

,看起來像這樣:

點擊HERE去到登錄頁面,等等,等等。

如果以上不起作用,請使用此鏈接或將其複製到瀏覽器的地址欄中: http://www.example.com/?u=parameter&i=otherparameter

,接收端收到的相同文字,只是沒了聯繫基地網址..

Click HERE鏈路具有唯一/?u=parameter&i=otherparameter的URL,這同樣適用於其他鏈接,但該鏈接的文字很好。所以它進入郵件打開的頁面並在那裏添加參數。它看起來像這樣:

點擊HERE去到登錄頁面,等等,等等。

使用此鏈接或將其複製到瀏覽器的地址欄,如果上述方法無效: http://www.example.com/?u=parameter&i=otherparameter

正如您所看到的,該鏈接將被定向到stackoverflow.com而不是example.com。發生什麼事情,無論是jQuery,AJAX或PHP剝離我的HTML,還是客戶端問題?

(經測試,在FF15/Chrome20/IE8,jQuery的V1.7.2,PHP v5.3.5)


編輯

這是我如何發送郵件使用PHP:

$to  = $_POST['t']; 
$subject = $_POST['s']; 
$message = $_POST['m']; 

$headers = "MIME-Version: 1.0" . "\r\n" . 
      "Content-type: text/html; charset=iso-8859-1" . "\r\n" . 
      "From: <[email protected]>" . "\r\n" . 
      "X-Mailer: PHP/" . phpversion(); 

mail($to, $subject, $message, $headers); 
+0

你怎麼樣在發送之前知道身體是什麼樣的?在發送給'mail()'之前,你檢查過'$ message'的值了嗎?您是否使用過Chrome或Firefox的開發工具來查看發送到服務器的內容? – rexmac

+0

你檢查過htaccess文件嗎?也許它已被設置在htaccess重定向文件 – bungdito

回答

1

一個快速的解決方案是使用_SERVER全局數組讀取文檔在php手冊中定義基本url以獲得更多的信息,但郵件函數不應該失敗... 此外AJAX進來的郵件張貼...這是PHP郵件()function.Are檢索值的用戶或值是動態檢索使用PHP或數據庫....

+0

「用_SERVER全局數組定義基礎URL」 - 這是由於某種原因造成的,謝謝! –