PHPを学ぼう!

▼PHPを学ぶチャプターです。


フリーランスの求人サイト

 

素材メニュー

 ◆Chapter 1

 ◆Chapter 2

 ◆Chapter 3

 ◆Chapter 4

 

制作ヒント

 ◆制作のヒント

 

レッスンメニュー

 ◆Chapter2 練習問題

 ◆Chapter3 DB練習問題

 

サイト運営者がPHPを学んだ
お勧めの書籍です!
これ一冊で基本的なPHPの仕組み、簡単なプログラムの作成、SQLiteを使ったデータベースなどかなり学べる要素が詰まっています!

↓↓↓ ↓↓↓

PHPレッスンブック―PHP5対応

新品価格
¥2,520から
(2013/2/24 04:38時点)

 

 

サイバーテロの技法について書かれた書籍です!
ハッカーの手法を知ることでご自身のサイトがハッカーに攻撃されたときそれを防ぐ手法を紹介しています。

↓↓↓ ↓↓↓

PHPサイバーテロの技法―攻撃と防御の実際

新品価格
¥1,890から
(2013/11/5 10:09時点)

 

 

★初年度100円! サブドメインやメールアカウントを無制限に設置できます。
PHPやCGIは勿論、WordPress、Movable Type Open Source、掲示板、ブログ、ショッピングサイトなどが簡単に導入できるので複数サイトを運営したい場合に便利なサービスです。

↓↓↓ ↓↓↓

 

PHPが動作するサーバー

 

はじめてのHP | 無料素材 | タグ辞典 | CSSガイドEX | PHPを学ぼう!

◆Tip23 - mb_send_mailで改行コードが2重になる?

ホームページからフォームを使い、入力された内容をメールで送信したい場合に以下の関数を利用します。

mail(送信先, タイトル, 本文, ヘッダ,追加パラメータ)

マルチバイト対応、つまり日本語対応ではこちらの方がよく利用されているでしょうか?

mb_send_mail(送信先, タイトル, 本文, ヘッダ, 追加パラメータ)

メールのプログラムの詳細については、『 Chapter 2 - メールの送信 』、『 Chapter 4 - メールマガジンのプログラムを作る 』 をご参照ください。

  

  

これらの関数を使い PHP プログラムから送信した際にメールの文面が意図せずに2重に改行がされてしまうことがあるのです。
通常はこんな文面なのですが、

ご意見・ご要望フォームから送信されました。

【氏 名】
あああ

【メールアドレス】
example@***.ne.jp

【内 容】
ああああ
いいいい
ううう
ええええ
おおおお

2重改行がされてしまうと、

ご意見・ご要望フォームから送信されました。




【氏 名】

あああ



【メールアドレス】

example@***.ne.jp



【内 容】

ああああ

いいいい

ううう

ええええ

おおおお

と、こんな感じになってしまいます。
とても体裁が悪いですよね・・・。
何故このような現象が起こるのか原因はよくわかりませんが、どうやらサーバーとメールソフトの相性だという事らしいです。
サーバーとメールソフトの相性だということであれば、メールマガジンの様に複数の人に送信したい場合には大丈夫なのかなと思ってしましますよね・・・。

  

この現象、新たな問い合せフォームを mb_send_mail を使って制作していたら気がつきました。
"\n"、"\r"、"\rn" の改行コードの問題かと思い変換や削除などを色々と試してみましたが解決できず、試行錯誤の末なんとか解消できたのでそのやり方を紹介します。

  

  

まず改行コードを一度、全て "<>" に置換します。

$body = str_replace(array("\r","\r\n","\n"), "<>", $body);

と、すると文面は次の通り一行となります。

ご意見・ご要望フォームから送信されました。<><>【氏 名】<> あああ<><>【メールアドレス】<> example@***.ne.jp<><>【内 容】<> ああああ<> いいいい<> ううう<> ええええ<> おおおお

  

改行コードの2重部分は、 "<><>" と置換されます。
更に、

$body = str_replace("<><>", "\r", $body);

と、改行コードを再び戻してあげると2重改行問題が解消されます。
改行コード自体の置換は動作しないようです。

  

"<>" は殆ど使わない文字の配列です。 2重改行部分を "<><>" に一度文字列に置換し、再び改行コードに戻すことで動作ができるようになります。
赤文字部分は状況に合わせて "\r" や "\r\n" に変更してください。

  

[2018年3月13日 公開]

  

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

ex-mode.net | ツールEX | 素材EX | アフィモール | 初級者向 初めてのホームページ作り | Htmlタグ辞典 | 初めてのプランター菜園 | リンク・ボード
気のみ気のままなブログ | CSSガイドEX | ホビ★コレ | 班長日記!

▲UP

Copyright (C) ex-mode.net 2018. All Rights Reserved.