PHP講座(2)!
はじめてのメール送信
この講座では、メール送信について説明します。
HTMLだけではできないことの代表であるメール送信を学ぶことで、
PHPのすごさを皆さんにも感じていただきます。
PHPが動く仕組みのおさらい
10.4.18
2
(C) 株式会社破滅派
Apacheが設定された	
  
Webサーバ	
  
サーバ上でPHPが動くように	
  
設定されたフォルダ	
  
ex.E¥xampplite¥htdocs	
  
PHPの規則にのっとって	
  
書かれたテキストファイル	
  
ex.index.php	
  
PHPが動くのに必要なもの
1.
2.
3. <html>	
  
<head>	
  
<title><?php	
  echo	
  “はじめてのPHP”;	
  ?></title>	
  
</head>	
  
<body>	
  
</body>	
  
</html>
<?php	
  から	
  ?>ま
で囲まれたところ
だけがPHPとして
処理される。	
  
他の部分はそのま
ま表示。
の
に
を置く。
PHPとして書くことと「出力」の関係
10.4.18 (C) 株式会社破滅派
3
<?php	
  から ?>まで囲まれたところだけが	
  
PHPとして処理される。	
  
他の部分はそのまま表示。
<?php	
  から ?>で囲まれたところは	
  
わざわざecho	
  しないと出力されない。	
  
出力はプログラムの一機能。
PHPのデフォルト設定
10.4.18 (C) 株式会社破滅派
4
 拡張子が.phpのものがPHPとして処理される。	
  
 	
  <?php	
  ?>で囲まれた部分だけがプログラムとして
処理される。	
  
 	
  <?php	
  ?>で囲まれていない部分はそのまま出力さ
れる。	
  
 デフォルトの出力フォーマットはtext/html。	
  
PHPはWebに特化した	
  
プログラミング言語です。	
  
ここまでは前回の復習です。
どうやってユーザーの入力を取得するの?
10.4.18 (C) 株式会社破滅派
5
PHPで動的なサイトを作るためには、	
  
ユーザが入力した情報を元に処理を行う必要があります。
ということは、ユーザが入力した情報を	
  
取得する必要があります。
フォームを使います。
フォームとは?
10.4.18 (C) 株式会社破滅派
6
<form	
  method=“post”	
  action=“mai.php”>	
  
	
  <input	
  type=“text”	
  name=“mail”	
  />	
  
	
  <input	
  type=“text”	
  name=“name”	
  />	
  
	
  <input	
  type=“submit”	
  value=“送信”	
  />	
  
</form>	
  
<!—	
  
	
  	
  	
  action属性 	
  リンク先	
  
	
  	
  	
  method属性 	
  $_GETか$_POSTか	
  
	
  	
  	
  type属性 	
  どんな形のボタンか	
  
	
  	
  	
  method=“post”で$_POST[“name”]で	
  
	
  	
  	
  ユーザーの入力値が取れます。	
  
	
  	
  	
  たとえば、$_POST[“mail”]でユーザーが	
  
	
  	
  	
  入力したメールアドレスが取れます。	
  
-­‐-­‐>	
  
formタグはユーザーが入力した値を	
  
取得するための大事なHTMLタグです。
やってみよう!
10.4.18 (C) 株式会社破滅派
7
formタグから	
  
得られる情報を	
  
取得してみよう!
できましたか?	
  
おめでとうございます。	
  
では、メールを送ってみましょう。
普通のHTMLがやってること
10.4.18 (C) 株式会社破滅派
8
index.htmlをくれ!
HTMLを表示するだけ
ならPHPは何もしない
…
Apacheはブラウザに求
められたファイルを表
示する
Apache
ほらよ
PHP
Xampp
PHPがメール送信を行う仕組み
10.4.18 (C) 株式会社破滅派
9
HTMLフォームから	
  
メール情報を送信	
  
$_POST[“mail”]と	
  
$_POST[“name”]
PHPがデータ処理を行
い、MTA(メール送信
システム)を起動する
了解!
PHPは他のアプリケー
ションを起動すること
ができる! すごい!
Apache
PHPさん!
メールサー
バさん!
了解!
Sendmail
PHP
Xampp
ほらよ
おらよ
メール送信の仕組み
10.4.18 (C) 株式会社破滅派
10
Xampp(みなさんの持ってるUSB)は	
  
実のところメールを送信できません。
デジハリに限らず、きちんと	
  
外部に公開されるよう設定された	
  
サーバでないと、メールは送れません。
先生が用意しました。
やってみよう!
10.4.18 (C) 株式会社破滅派
11
formタグから	
  
得られる情報を	
  
元にメールを送ってみよう!
できましたか?	
  
おめでとうございます。	
  
では、チェックしてみましょう。
なんでもかんでもメール送っちゃだめだよね
10.4.18 (C) 株式会社破滅派
12
みなさんが受け取っているスパムメールは、他人が作った	
  
メールフォームを利用していたりします。
誰でも好きな宛先に遅れるメールフォームを作るのは危険!	
  
宛先が決まったメールアドレスにだけ送るようにします。
ではどうやって?
制御構文
10.4.18 (C) 株式会社破滅派
13
【条件分岐構文(制御構文)】
if(条件1){	
  
	
  //条件1に合致する場合	
  
	
  //ここに書いた処理が行われる	
  
}elseif(条件2){	
  
	
  //条件2に合致する場合	
  
	
  //ここに書いた処理が行われる	
  
}else{	
  
	
  //いずれにも合致しない場合	
  
	
  //ここの処理が行われる	
  
}
if(条件){	
  
	
  //条件に合致する場合のみ	
  
	
  //ここに書いた処理が行われる	
  
}
if(条件1){	
  
	
  //条件に合致する場合	
  
	
  //ここに書いた処理が行われる	
  
}else{	
  
	
  //合致しない場合	
  
	
  //ここの処理が行われる	
  
}
条件はtrueかfalseで評価する 	
   	
  →どうやって?
二者択一的条件分岐
排他的な条件分岐 複数条件分岐
条件がtrueかfalseか確かめる方法
10.4.18 (C) 株式会社破滅派
14
1.比較演算子を使う
== 	
   	
  等しい 	
   	
   	
  ex.	
  “犬”	
  ==	
  “犬” 	
   	
   	
  //true	
  
!= 	
   	
  等しくない	
   	
  ex.	
  わたし	
  !=	
  たわし	
   	
  //true(等しくない)	
  
<,> 	
   	
  小さい,大きい 	
  ex.	
  100	
  <	
  101	
   	
   	
  	
   	
  //true	
  
>=,	
  <= 	
  以上、以下	
   	
  ex.	
  5	
  >=	
  5 	
   	
   	
   	
  //true
2.関数を使う
is_int($hoge)	
  
	
  $hogeが整数の場合はtrue、整数じゃなければfalseとなる。	
  
条件の作り方はいくらでもある!
まとめ
10.4.18 (C) 株式会社破滅派
15
 PHPがどうやって動くかわかった。	
  
 $_GETとか$_POSTでユーザーの情報が
取得できることがわかった。	
  
 ifっていうものがあるということがわ
かった。	
  
おめでとうございます。

02 はじめてのメール送信