6

ニュースレターを顧客にメールで送信するために使用するメール プログラムを作成しています。ニュースレターには画像とリンクが含まれます。localhost でテストしたところ、すべて正常に機能し、リンクも機能しました。ただし、それを自分の Web サイトにアップロードすると、リンクと画像のパスが機能しなくなります。

何らかの理由で %22 (二重引用符であることがわかりました) がリンクとパスに追加されるため、メールしたリンクは次のようになります。

/%22http//www.mywebsite.com/%22

画像のパスは次のようになります。

%22http//www.mywebsite.com/content/someimage.jpg/%22

TinyMCE を使用してニュースレターを編集していますが、試してみましrelative_urls : falseconvert_urls : falseが、何も起こりません。これは TinyMCE の問題ではないと思いますが、とにかく言及したいと思います。

何が原因なのかわからないので、わかる方いましたらよろしくお願いします!

更新: コードを確認し、メールで送信されるテキストの html を確認しましたが、リンクが二重引用符で囲まれていないため、サーバーの問題であると推測されます。

4

2 に答える 2

6

これは、magic_quotesphpinfo() がオフになっているかどうかを確認する際の問題です。無効にできる場合は、php.ini で無効にする必要があります。

次のコードを使用して、有効か無効かをテストできます。

<?php
echo "Magic quotes is ";
if (get_magic_quotes_gpc()) {
  echo "enabled.";
} else {
  echo "disabled";
}
?>

別の修正はstripslashes()、スラッシュを削除するために使用することです。これで問題が解決する可能性が高くなります。

ここに関するドキュメントをstripslashes() 読む

簡単な例:

<?php
$str = "Is your name O\'reilly?";

// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>

編集:あなたが試すことができる別のことは、を使用することhtml_entity_encode()です。

例:

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now
?>

情報はこちら

別のSOの答え。html_entity_encode()URL の場合https://stackoverflow.com/a/10001006/1379394

于 2013-06-19T09:46:42.840 に答える
1

php.ini ファイルにアクセスできない場合、これを .htaccess ファイルに追加するのが最も簡単な方法です。

php_flag magic_quotes_gpc オフ

于 2016-12-03T06:54:25.750 に答える