ドロップダウンメニュー php5
用語解説
「while」
「for」
「print」
ドロップダウンメニュー
10歳から70歳までの選択
<select name="age" id="age"> <?php for ($i = 10; $i<=70; $i++){ print('<option value="'.i.'">' .$i. '歳</option>'); } ?> </select>
今回は繰り返しの処理
繰り返しの制御構造
「for」「while」の2種類があり、基本は「while」を使っていく。
変数を使って同じプログラムが重なるのを防ぐ
sample4.html
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php 変数を使って同じプログラムが重なるのを防ぐ</title> </head> <body> <form action="sample4.php" method="get"> <dl> <dt>名前:</dt> <dd> <input id="my_name" type="text" name="my_name" size="35" maxlenght="255" value=""> </dd> </dl> <input type="submit" value="送信する"> </form> </body> </html>
sample4.php
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <?php $name = htmlspecialchars($_REQUEST['my_name'],ENT_QUOTES); ?> <p>welcome to <?php print($name); ?> さん</p> <ul> <li><a href="#"><?php print($name); ?> s homepage</a></li> </ul> </body> </html>
今回は「記入された名前を二回以上使う」を考える。
違うパターン
<body> <p>ようこそ<?php print(htmlspecialchars($_REQUEST['my_name'],ENT_QUOTES)); ?> san</p> <ul> <li><a href="#"><?php print(htmlspecialchars($_REQUEST['my_name'],ENT_QUOTES)); ?> s homepage</a></li> </ul> </body>
このままでも正常に動作はする。
、、、、が同じ処理が2回でてきてるためプログラムが長くなっている、
「htmlspecialchars」ファンクションが2回実行されるため、プログラムの効率がわるくなり動作速度も遅くなる。
その為に「$変数名 = 保存したい内容;」
で一度「htmlspecialchars」ファンクションを使って無害化した名前をいったん保存して 後で使いまわすと効率がいい。
*変数名はどんな名前でもOK
変数に保存内容を入れる事を「代入」
この記述をしておけば次からは「$変数名」と記述するだでOK
練習問題1
次のプログラムの続きを作り画面表示を「10」にしなさい。
<?php $sun = 8 + 2; ?>
答え
<?php $sun = 8 + 2; print($sun); ?>
php4 チェックボックス ラジオボタンの値の取得
sample4.html
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <form action="sample4.php" method="post"> <dl> <dt>性別:</dt> <dd> <input id="gender_male" type="radio" name="gender" value="男性"> <label for="gender_male">男性</label> <input id="gender_female" type="radio" name="gender" value="女性"> <label for="gender_female">女性</label> </dd> </dl> <input type="submit" value="送信する"> </form> </body> </html>
sample4.php
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <?php echo('性別:' .htmlspecialchars($_POST['gender'],ENT_QUOTES)); ?> </body> </html>
ラジオボタンにも「htmlspecialchars」が必要!
安全性を高めるため。。。
php-3
「htmlspecialchaers」ファンクション
特殊文字を HTML エンティティに変換する
「ENT_QUOTES」パラメータ
「シングルクオーテーション」「ダブルクオーテーション」ともに変換ができる。
sample.html
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <form action="sample4.php" method="get"> <dl> <dt><label for="my_name">お名前:</label></dt> <dd> <input id="my_name" type="text" name="my_name" size="35" maxlenght="255" value=""> </dd> <dt><label for="message">メッセージ:</label></dt> <dd><input id="message" type="text" name="message" size="35" maxlenght="255" value=""></dd> </dl> <input type="submit" value="送信する"> </form> </body> </html>
sample.php
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <dl> <dt>お名前:</dt> <dd><?php print(htmlspecialchars($_GET['my_name']));?></dd> <dt>メッセージ:</dt> <dd><?php echo(htmlspecialchars($_GET['message']));?></dd> </dl> </body> </html>
php-2
PHPでフォームからのデータを受け取るためには、$_GET、$_POST、$_REQUESTのいずれかの連想配列を使用。
これらの変数はすべてPHPの定義済み変数なのでいちいち定義する必要がない
全てスーパーグローバル変数で、全てのスコープで使用できる。
sample4.html
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <form action="sample4.php" method="get"> <label for="my_name">お名前:</label> <input id="my_name" type="text" name="my_name" size="35" maxlength="255" value="" /> <input type="submit" value="送信する"> </form> </body> </html>
sample4.php
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <?php /*$_REQUEST*/ /*$_GET*/ /*htmlspechals*/ print('お名前:'.htmlspecialchars($_REQUEST['my_name'].ENT_QUOTES)); ?> </body> </html>
名前を送信すると返ってくる。
使用用語解説
$_GET、$_POST、$_REQUESTのどの変数を使用すればいいかは
php-1
文字列以外は、すべて半角で書く
文字列は「 ' 」または「 " 」で囲む
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php 画面に文章を表示する!!</title> </head> <body> <?php /*function (関数)*/ /*printがファンクション*/ /*パラメータ(引数)*/ /*[画面にPHPを表示する]部分がパラメータ*/ print('<h2 style="font-size: 18px: font-wight: bold">画面にPHPを表示する!</h2>'); print('今日は'.date(Y年n月j日).'です。'); print("<br />\n"); print( '現在は'.date('g時i分s秒').'です。'); print("<br />\n"); print('i m styuding'); echo("<br />\n"); /*date = 時刻の表示*/ /*文字列の連結「.(ドット)」を使う*/ ?> </body> </html>
クオーテーションの使い分け方
シングルクオーテーション「文字列に対して使う」
ダブルクオーテーション「エスケープシーケンスに対して使う」
この使い分け方が一番わかりやすい。
date-function
date = 現在の時刻の表示
最新RIDDIM配信9/14
SOUNDCLOUD更新しました。
今回はHIP-HOPの音源配信!
シンガーの方やラッパーの方は気に入ったらダウンロードしてみて下さい。リリックを吹き込むだけでだいぶ曲の色が変わるのが作曲側として非常に楽しみの一つです。
良い意味での裏切り!
Big Up All Music Fun!!!
TITLE
[BORDER BRIDGE RIDDIM]
ARTIST
[GREEN PARK SYSTEMS]
次の配信はswing machine#2