私はphpとmysqlでプログラミングした顧客管理システムを持っています。会社はマーケティングや注文のために顧客の詳細を記録するためにそれを使用します。フォームにはさまざまなフィールドがあり、そのうち1つはビジネス名です。テキストフィールド内のアンパサンドがフィールドデータの表示に悩まされています
フィールドは電子メールにインポートされ、顧客の見積もりなどに送信されます。フィールドの内容はデータベースから取り込まれ、さまざまな文字列に格納されます。例えば、事業名は$name
に格納されています。
Joe Blogs & Sons
のような企業名が入力された場合、電子メールシステムにインポートされる終了点はJoe Blogs
であり、それはアンパサンドを含むアンパサンドが切り捨てられた後のものです。彼らがJoe Blogs and Sons
を使用する場合、これはうまく動作し、電子メールが出るときにはDear, Joe Blogs and Sons
と表示されますが、誰かが&
と入力すると、それはちょうどDear, Joe Blogs
となります。
&
さんのエスケープ方法と一緒に行くには、tr_replace
またはpreg_replace
のようなものが正しいでしょうか? 。
は、あなたがチェックしましたか?そうであれば、変数に 'htmlentities()'関数を適用して電子メールに出力/エコーするだけでよいでしょう。 – entropid
情報が少なすぎます。道には多くの措置がありますが、テキストはどこに欠落していますか? – deceze
データベースから引き出された後に文字列にecho'dを追加すると、その文字列がエコーされてしまいます。名前は、編集時にフィールドに戻されるため、データベースに保存されます。 –