1

PHP(jQueryによって生成されたコンテンツ、AJAXからPHP)を介してメールを送信するたびにPOST、宛先に到達したときに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>

これは次のようになります:

こちらをクリックすると、ログインページなどに移動します。

上記が機能しない場合は、このリンクを使用するか、ブラウザのアドレスバーにコピーしてください:http: //www.example.com/?u = parameter&i = otherparameter

ただし、受信者は、リンクのベースURLがない場合にのみ、同じテキストを取得します。

のリンクのClick HEREURLは/?u=parameter&i=otherparameter、他のリンクにも同じですが、そのリンクのテキストは問題ありません。そのため、メールが開かれているページに移動し、そこにパラメータを追加します。次のようになります。

こちらをクリックすると、ログインページなどに移動します。

上記が機能しない場合は、このリンクを使用するか、ブラウザのアドレスバーにコピーしてください: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: <noreply@example.com>" . "\r\n" .
           "X-Mailer: PHP/" . phpversion();

mail($to, $subject, $message, $headers);
4

1 に答える 1

1

簡単な解決策は、_SERVERグローバル配列でベースURLを定義することです。詳細については、phpマニュアルのドキュメントを参照してください。ただし、メール機能は失敗しないはずです...また、メールの投稿でAJAXはどこに入るのですか...それはphpですmail()関数。ユーザーから値を取得していますか、それともphpまたはデータベースを使用して動的に取得された値です。

于 2012-09-03T15:53:29.893 に答える