8.簡単メールフォーム HTML部分の説明
さて、前回のHTMLフォームの部分の説明の続きです。
まずソースですが
<form method="post" action="<? echo $PHP_SELF; ?>">
<INPUT TYPE = "hidden" name = "set" value = "post">
<TABLE>
<TR>
<TD>お名前</TD><TD><input name="name" type="text" size="12"></TD>
</TR>
<TR>
<TD>メールアドレス</TD><TD><input name="mail" type="text" size="50"></TD>
</TR>
<TR>
<TD>タイトル</TD><TD><input name="title" type="text" size="50"></TD>
</TR>
<TR>
<TD>本文</TD><TD><textarea name="main" rows="5" cols="50"></textarea></TD>
</TR>
<TABLE>
<input type="submit" value="送信"></form>
</form>
ですね。
この中から、TABLEタグと文字の部分を取り除いてみましょう。
TABLE部分は見栄えを整えているだけなので。
<form method="post" action="<? echo $PHP_SELF; ?>">
<INPUT TYPE = "hidden" name = "set" value = "post">
<input name="name" type="text" size="12">
<input name="mail" type="text" size="50">
<input name="title" type="text" size="50">
<textarea name="main" rows="5" cols="50"></textarea>
<input type="submit" value="送信"></form>
</form>
この部分が、今回目的としているPHPにデータを送信する部分になります。
まずは
<form method="post" action="<? echo $PHP_SELF; ?>">
ですが、この部分がPHPにデータを送信するって言う命令に当たります。
そして、送信するデータの終わりは</form>になります。
action= "~"
~の部分がデータを送信する先のPHPを指示しています。
今回は"<? echo $PHP_SELF; ?>"
としています。
これは、自分自身(今回のソースは拡張子がPHPなので)にデータを送るという意味です。
そして、"<? echo $PHP_SELF; ?>"の部分をURLにして
action="http://www.office-kzm.com/7000/7100/source/mail_form.php"
として、PHPのソースの場所を指定する事も出来ます。
相対パスも絶対パスも使えますが、後から別の所に設置したり、移設する事を考慮すると絶対パスにするのがお勧めです。
次は
<INPUT TYPE = "hidden" name = "set" value = "post">
部分。
これは、送信ボタンを押されると、setと言う変数にpostと言う文字列を格納してくれます。
でも、この部分はHTMLのホームページには表示されません。
TYPE = "hidden"
これは、隠れて送信しなさいと言う意味と覚えておくと良いでしょう。
隠れてと言うと悪いイメージを持つかもしれませんが、表示する必要が無い部分を送ると考えても良いですね。
今回の例ではPHPのif分の中で、$set == post という部分があります。
それは、フォームの中で<INPUT TYPE = "hidden" name = "set" value = "post">
という部分でset に post としているので、PHPはif文の$set == postが成り立ち、ifで囲まれている部分を実行してくれているのです。
一つのPHPで、いくつものフォームから入力がある時、そしてフォームによって処理を変えたい時に便利です。また、この条件が成立しなければif文の中が実行されないので、不要な処理を行いません。その分、PHPの実行時間が短くなり、素早く次の動きに移れるわけです。
