<<前 [TOP] 次>>
Webブラウザの入力フィールドに記入された値をPHPで利用することを考えます。
1行入力のinput要素にはtype属性の値「text」と「password」があります。
<input type="値" その他の属性>
「type属性」は以下のいずれか
「その他の属性」は以下のとおり
以下のHTMLファイルとPHPプログラムをテキストエディタで作成して「phpsample」フォルダに保存して下さい。
【formsample3.html】
<p>PHPを呼び出します。</p> <form action="phpsample3.php" method="post"> <p> passwordフィールド: <input type="password" name="field1"><br> textフィールド(最大10文字まで入力可能): <input type="text" name="field2" size="70" maxlength="10" value="最大10文字"><br> </p> <input type="submit"> <input type="reset"> </form>
【phpsample3.php】
<p>呼び出されたPHPプログラム</p> <?php $value=$_POST['field1']; print("filed1の内容は".$value."です\n<br>"); print('もちろん$_POSTはprintに埋め込んでも、「'.$_POST['field1']."」 のように表示されます\n<br>"); $value="filed2は「".$_POST['field2']."」が内容です\n"; print($value); ?>
仕組み的にはsubmitボタンがなくてもフィールドで入力後「Enter」キーが押されれば「action」で指定したURLを呼び出します。
PHPでは入力されたフィールド値を「$_POST['nameで設定したフィールド名']」 として取得できます。
「$_POST[]」は配列で、配列の添え字([]の中)を文字列で設定して使用します。
method属性が「post」ではなく「get」のものを取得したければ「$_GET[]」を使用します。
このようにPHPではWebサーバ情報・環 境変数・ユーザからの入力などの値を取得する変数があらかじめ用意されており、これらをスーパーグローバル変数と呼んでいます。
Apacheを起動し、Webブラウザで「http://localhost/phpsample/formsample3.html」にアクセスして下さい。
複数行の入力フィールドをあらわすHTMLタグは「textarea」です。
<textarea 属性>
「属性」は以下のとおり
以下のHTMLファイルとPHPプログラムをテキストエディタで作成して「phpsample」フォルダに保存して下さい。
【formsample4.html】
<p>PHPを呼び出します。</p> <form action="phpsample4.php" method="post"> <p> textarea1: <textarea name="textarea1"> 初期設定1行目 </textarea><br> textarea2: <textarea name="textarea2" cols="20" rows="5"> 初期設定1行目 </textarea> </p> <input type="submit"> <input type="reset"> </form>
【phpsample4.php】
<p>呼び出されたPHPプログラム</p> <?php print("textarea1の内容は".$_POST['textarea1']."です\n<br>"); $value="textarea2は「".$_POST['textarea2']."」が内容です\n"; print($value); ?>
Webブラウザで「http://localhost/phpsample/formsample4.html」にアクセスして実行結果を確認して下さい。
今まで見てきた例ではPHPを含むHTMLに画面遷移していましたが、自分自身のページを呼んでもかまいません。
このときPHPを含むページを呼び出しますので、拡張子は「php」となります。
以下のPHPプログラムをテキストエディタで作成して「phpsample」フォルダに保存して下さい。
【phpsample5.php】
<p>自分自身を呼び出すPHPプログラム</p> <p> <form action="phpsample5.php" method="post"> <p> textフィールド: <input type="text" name="field" size="20"><br> </p> <input type="submit"> <input type="reset"> </form> </p> <p> <?php $value=$_POST['field']; print("<h1>filedの内容は".$value."です\n</h1>"); ?> </p>
Webブラウザで「http://localhost/phpsample/phpsample5.php」にアクセスして実行結果を確認して下さい。
このままでもプログラムは動作するのですが「($_POST['field']に何も入っていません」という注意書きが出てしまいます。
この後扱うif文を使って、($_POST['field']に何も入っていないときは表示しないという記述を追加すればこの注意書きは出なくなります。
【phpsample5-2.php】
<p>自分自身を呼び出すPHPプログラム</p> <p> <form action="phpsample5.php" method="post"> <p> textフィールド: <input type="text" name="field" size="20"><br> </p> <input type="submit"> <input type="reset"> </form> </p> <p> <?php if(isset($_POST['field'])){ $value=$_POST['field']; print("<h1>filedの内容は".$value."です\n</h1>"); } ?> </p>
以下の部分が変更した部分です。
<?php if(isset($_POST['field'])){ $value=$_POST['field']; print("<h1>filedの内容は".$value."です\n</h1>"); } ?>
「isset()」は、指定した変数に値がセットされていればtrue、いなければfalseを返します。
もし「$_POST['field']」に値があればプログラムを実行し、値がなければ何もしないという意味になります。
Webブラウザで「http://localhost/phpsample/phpsample5-2.php」にアクセスして実行結果を確認して下さい。
↓↓クリックして頂けると励みになります。