2.1 登録確認プログラム(myphp2-1.php)を作成
下記の内容をテキストエディタにコピーし、ファイル名を「myphp2-1.php」として
「C:\xampp\htdocs\test」内に保存します。
*注意:「myphp2-1.php」ファイルの文字コードは「SJIS」を指定して保存してください。
PHPエディタや サクラエディタなど文字コードを指定できるエディタを使うと便利です。
<?php
//関数を定義したmyfunc.phpを一度だけ読み込む
require_once("myfunc.php");
//HTML文を出力 HTMLの開始
print("<HTML>\n");
//HTML文を出力 HEADの開始
print("<HEAD>\n");
//文字コードをSHIFT_JISと指定
print("<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=\"Shift_JIS\">\n");
//HTML文を出力 TITLEの指定
print("<TITLE>myphp2-1</TITLE>\n");
//HTML文を出力 HEADの終了
print("</HEAD>\n");
//HTML文を出力 <BODYの開始
print("<BODY>\n");
//myphp2.phpから入力フォーマットに入力されたデータをpostで渡されるので
//$HTTP_POST_VARSによりフィールド inpnum の内容を取り出し $safetextに格納
$safetext = $HTTP_POST_VARS["inpnum"];
//chkchar関数により$safetext内の不正な文字を除去する
chkchar($safetext);
//$keyに不正な文字を除去した結果を格納
$key = $safetext;
//numberフィールドの値が数値かどうかを is_numeric 関数によりチェックする
if (is_numeric($key)) {
//numberフィールドの値が範囲内(0以上999999999以下)かチェックする
if ($key >= 0 and $key <= 999999999){
} else {
//numberフィールドの値が範囲外の場合はエラーメッセージを表示する
echo "numberは0から999999999までの数値を指定してください<BR><BR>";
//HTML文を出力 javascriptを使用して直前のページに戻るリンク
echo "<A HREF='myphp2.php' onClick='history.back();return false;'>戻る</A><BR>";
//以降の処理を中断
exit;
}
} else {
//numberフィールドの値が数値以外の場合はエラーメッセージを表示する
echo "numberは数値を指定してください<br><br>";
//HTML文を出力 javascriptを使用して直前のページに戻るリンク
echo "<A HREF='myphp2.php' onClick='history.back();return false;'>戻る</A><BR>";
//以降の処理を中断
exit;
}
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--karipass
$dbHandle = mysql_connect("localhost","root","karipass")
or die("can not connect db\n");
//MySQLのクライアントの文字コードをsjisに設定
mysql_query("SET NAMES sjis")
or die("can not SET NAMES sjis");
//db名 workdb
$db = "workdb";
//SQL文 tab1表からnumber列の値が入力フィールドで入力された値と等しい行を抽出
$sql = "select * from tab1 where number = '$key'";
//SQL文を実行する
$rs = mysql_db_query($db,$sql);
//mysql_num_fields 関数を使用し列数を取得する
$fields = mysql_num_fields($rs);
//mysql_num_rows 関数を使用し行数を取得する
$rows = mysql_num_rows($rs);
//入力されたnumberの行があった場合はデータを出力する
if ($rows > 0) {
//HTML文を出力 テーブルの開始を指定
print("<TABLE BORDER=1>");
//test表の列数と同じ回数を繰り返す
for ($i=0;$i<$fields;$i++){
//HTML文を出力 列名を <td>で囲んで太字で出力
print("<TD><B>".mysql_field_name($rs,$i)."</B></TD>");
}
//行を取得する
$row=mysql_fetch_array($rs);
//HTML文を出力 表の行の開始<tr> を出力
print("<TR>");
//test表の列数と同じ回数を繰り返す
for($j=0;$j<$fields;$j++){
//HTML文を出力 列の内容を <td>で囲んで出力
print("<TD>".$row[$j]."</TD>");
}
//HTML文を出力 表の改行</tr> を出力
print("</TR>");
}
//入力されたnumberの行が存在しなかった場合はエラーメッセージを出力する
else {
print("numberが [" .$key . "] のデータは登録されていません<BR>");
}
//HTML文を出力 テーブルの終了を指定
print("</TABLE>");
//結果レコードをメモリから開放
mysql_free_result($rs);
//DBへの接続を切断
mysql_close($dbHandle);
//HTML文を出力 javascriptを使用して直前のページに戻るリンク
print ("<BR><A HREF=javascript:history.back()>戻る</A><BR>");
//HTML文を出力 BODYの終了
print("</BODY>\n");
//HTML文を出力 HTMLの終了
print("</HTML>\n");
?>
<BR>
<A HREF="myphp.php">メニュー</A><BR>
次ページで登録確認プログラムをテストします。


