質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2491閲覧

ブラウザ上でファイルを書き換え。メール送信すると改行コードが付加されてしまう。

chapp

総合スコア233

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/10/29 14:13

お世話になっております。
下記のようなメールを送信するファイルがあり、ブラウザ上で修正できるようしています。(一部省略)

<?php mb_language("Ja") ; mb_internal_encoding("EUC-JP"); $to = $mail; $subject = "送信テストおお知らせ。"; $message = "$name 様 平素は格別のお引き立てを賜り厚く御礼申し上げます。 http://www.yahoo.co.jp/ ご不明点などございましたら、お手数ではございますが、 下記担当までお問い合わせ下さいますようお願い申し上げます。 今後とも宜しくお願い申し上げます。 "; $fromname = "送信テスト"; $fromname = mb_encode_mimeheader($fromname); $add_header = "From: \"" . $fromname . "\" <".$address.">" . "\nBcc: "; mb_send_mail($to, $subject, $message, $add_header); ?>

私が修正する分にはなんら問題ないのですが、他の方が修正を行うと(PCも含め私とは違う環境下でアクセス・修正)、一部の方から、上記ファイル内にある、メール本文が1行多く改行され、さらにはURLなど、ハイパーリンクが無効になっているという報告がありました。(不具合の起きているPCは、win8.1にOutlookです)

他のメール、全てが同じ不具合なのであれば、PCの設定?(メールソフトの設定?)とも思えるのですが、不具合は上記のように、ブラウザから修正を加えたものだけなので、困り果てている状況です。

以上ですが、このような不具合に遭遇された方はいらっしゃいますでしょうか?
または、この手の不具合になりがちなミス等はあるのでしょうか?

お忙しい中恐縮ですが、ご存知の方、アドバイスを頂戴できれば幸いです。
宜しくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ブラウザ上で修正できるようしています。

ブラウザ上からの修正をどのように実装しているかが不明ですが、
おそらく「ブラウザ/OS毎の改行コードに関する挙動の違いについて考慮していない」のではないかと予想します。

送信を行っているスクリプトでは無くて、修正を行っている一連のスクリプトをご提示頂ければより良い回答が得られると思います。

投稿2015/10/29 14:21

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chapp

2015/10/29 14:29

tanatさん こんばんは。ご親切なアドバイスをありがとうございます。 仰るとおり、修正を行う際のスクリプトを提示するのを忘れていました。 修正をする際のスクリプトは、 //*** ファイル書き込み *** if(isset($_POST["edit"]) AND $post_file_open != "no"){ if (get_magic_quotes_gpc()) { $editfile = stripslashes($_POST["editfile"]); }else{ $editfile = $_POST["editfile"]; } $addstr = file_get_contents($addfname); $fp=@fopen("$addfname","w"); fputs($fp,$editfile); fclose($fp); } //*** 書き込み終了 *** です。 引き続きアドバイスのほど頂戴できれば幸いです。 宜しくお願い申し上げます。
tanat

2015/10/29 15:25

書き込みの直前で $editfile = preg_replace("/\r\n|\r/","\n",$editfile); という感じで改行コードを\nに統一するといけそうな気がします。 POSTされてくるテキストエリア中の改行コードはブラウザによって違う場合があるので、その統一を行っています。
chapp

2015/10/29 15:47

tanatさん 早速の回答をありがとうございます! 手元の環境では何ら問題がないため、困っておりました。 明日、他の環境にて改め確認したいと思います。 取り急ぎの御礼・・・ありがとうございました!
chapp

2015/12/30 16:51

tanatさん ご報告できずに申し訳ございません。tanatさんご指導のもと不具合なく動いていることを確認しています。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問