02 はじめてのメール送信

Post on 22-Dec-2014

587 views 3 download

description

PHPでメール送信を行います。

Transcript of 02 はじめてのメール送信

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っていうものがあるということがわかった。  

おめでとうございます。