情報学部 | 菅沼ホーム | 目次 | 索引 |
test.htm
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>フォームと PHP</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> 08 </HEAD> 09 <BODY CLASS="white"> 10 <H1 STYLE="text-align: center">フォームと PHP</H1> 11 <HR> 12 <P STYLE="text-align: center">フォームデータ</P> 13 <FORM NAME="form1" ACTION="test1.php" METHOD="post"> 14 <P STYLE="text-align: center"> 15 名前: <INPUT TYPE="text" NAME="name" STYLE="font-size: 90%"> 16 性別: <INPUT TYPE="radio" NAME="sex" VALUE="Male"> 男性 17 <INPUT TYPE="radio" NAME="sex" VALUE="Female"> 女性<BR> 18 メッセージ: <TEXTAREA NAME="message" ROWS="2" COLS="30" STYLE="font-size: 90%"></TEXTAREA><BR> 19 <INPUT TYPE="submit" VALUE="送信" STYLE="font-size: 90%"> <INPUT TYPE="reset" STYLE="font-size: 90%"> 20 </P> 21 </FORM> 22 <HR> 23 <P STYLE="text-align: center">ファイルのアップロード</P> 24 <FORM NAME="form2" ENCTYPE="multipart/form-data" ACTION="test2.php" METHOD="post"> 25 <P STYLE="text-align: center"> 26 <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="10000000" > 27 <INPUT TYPE="file" NAME="file_name" STYLE="font-size: 90%"> 28 <INPUT TYPE="submit" VALUE="アップロード" STYLE="font-size: 90%"> 29 </P> 30 </FORM> 31 </BODY> 32 </HTML>
test1.php
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>フォームデータ</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> 08 </HEAD> 09 <BODY CLASS="white"> 10 <H1 STYLE="text-align: center">フォームデータ</H1> 11 <DL> 12 <DD>$_POST['name']: <?php echo $_POST['name'] ?> 13 <DD>$_POST['sex']: <?php echo $_POST['sex'] ?> 14 <DD>$_POST['message']: <?php echo $_POST['message'] ?> 15 </DL> 16 </BODY> 17 </HTML>
$_POST['name']: 菅沼 義昇 $_POST['sex']: Male $_POST['message']: test message テストメッセージ
test2.php
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>アップロード結果</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> 08 </HEAD> 09 <BODY CLASS="white"> 10 <H1 STYLE="text-align: center">アップロード結果</H1> 11 <DL> 12 <?php 13 $uploadfile = "./".$_FILES['file_name']['name']; 14 if (move_uploaded_file($_FILES['file_name']['tmp_name'], $uploadfile)) { 15 ?> 16 <DD>$_FILES['file_name']['name']: <?php echo $_FILES['file_name']['name'] ?> 17 <DD>$_FILES['file_name']['type']: <?php echo $_FILES['file_name']['type'] ?> 18 <DD>$_FILES['file_name']['tmp_name']: <?php echo $_FILES['file_name']['tmp_name'] ?> 19 <DD>$_FILES['file_name']['error']: <?php echo $_FILES['file_name']['error'] ?> 20 <DD>$_FILES['file_name']['size']: <?php echo $_FILES['file_name']['size'] ?> 21 <DT>ファイル <?php echo $_FILES['file_name']['name'] ?> をアップロードしました. 22 <?php 23 } 24 ?> 25 </DL> 26 </BODY> 27 </HTML>
$_FILES['file_name']['name']: general.htm $_FILES['file_name']['type']: text/html $_FILES['file_name']['tmp_name']: /tmp/phpgNN2BH $_FILES['file_name']['error']: 0 $_FILES['file_name']['size']: 4604 ファイル general.htm をアップロードしました
<A HREF="form/test3.php?par1=10&par2=abc">
test3.php
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>データの受け渡し</TITLE> <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> </HEAD> <BODY CLASS="white"> <H1 CLASS="center">送信されたデータ</H1> <PRE> <?php print_r($_GET); ?> </PRE> </BODY> </HTML>
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>入力されたか否かのチェック</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> 08 <SCRIPT TYPE="text/javascript"> 09 function check(form) { 10 if(form.ans.value =="") { 11 alert("答えを入力してください"); // ダイアログの表示 12 return false; 13 } 14 if(form.name.value =="") { 15 alert("名前を入力してください"); // ダイアログの表示 16 return false; 17 } 18 } 19 </SCRIPT> 20 </HEAD> 21 <BODY CLASS="white"> 22 <H3 STYLE="text-align:center">次の問題の答えは?</H3> 23 <FORM ACTION="check1.php" METHOD="post"> 24 <P STYLE="text-align:center"> 25 3 + 4 = <INPUT TYPE="text" NAME="ans" STYLE="font-size:90%"><BR><BR> 26 名前:<INPUT TYPE="text" NAME="name" STYLE="font-size:90%"> 27 <INPUT TYPE="submit" VALUE="送信" onClick="return check(this.form)" STYLE="font-size:90%"><BR> 28 <INPUT TYPE="hidden" NAME="a" VALUE="3"> 29 <INPUT TYPE="hidden" NAME="b" VALUE="4"> 30 </P> 31 </FORM> 32 </BODY> 33 </HTML>
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>演習問題の解答</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> 08 </HEAD> 09 <BODY CLASS="white"> 10 <?php 11 if ($_POST['a']+$_POST['b'] == $_POST['ans']) { 12 printf("<H3 STYLE=\"text-align:center\">%s さん,正解です!</H3>\n", $_POST['name']); 13 printf(" <H3 STYLE=\"text-align:center\">続いて,次の問題の答えは?</H3>\n"); 14 srand(); 15 $a = floor(rand() / getrandmax() * 100); 16 $b = floor(rand() / getrandmax() * 100); 17 } 18 else { 19 printf("<H3 STYLE=\"text-align:center\">%s さん,間違っています!</H3>\n", $_POST['name']); 20 printf(" <H3 STYLE=\"text-align:center\">もう一度計算してみて下さい</H3>\n"); 21 $a = $_POST['a']; 22 $b = $_POST['b']; 23 } 24 ?> 25 <FORM ACTION="check1.php" METHOD="post"> 26 <P STYLE="text-align:center"> 27 <?php echo $a." + ".$b ?> = <INPUT TYPE="text" NAME="ans" STYLE="font-size:90%"><BR><BR> 28 名前:<INPUT TYPE="text" NAME="name" STYLE="font-size:90%"> 29 <INPUT TYPE="submit" VALUE="送信" STYLE="font-size:90%"><BR> 30 <INPUT TYPE="hidden" NAME="a" VALUE="<?php echo $a ?>"> 31 <INPUT TYPE="hidden" NAME="b" VALUE="<?php echo $b ?>"> 32 </P> 33 </FORM> 34 </BODY> 35 </HTML>
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>送信内容の確認</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> 08 <SCRIPT TYPE="text/javascript"> 09 sw1 = 0; 10 sw2 = 0; 11 sw3 = 0; 12 function sel(sw) { 13 if (sw == 1) 14 sw1 = 1; 15 else if (sw == 2) 16 sw2 = 1; 17 else 18 sw3 = 1; 19 } 20 function check(form) { 21 if (sw1 == 0) { 22 alert("性別を選択してください"); 23 return false; 24 } 25 else if (sw2 == 0) { 26 alert("好きな野菜を選択してください"); 27 return false; 28 } 29 else if (sw3 == 0) { 30 alert("好きな果物を選択してください"); 31 return false; 32 } 33 else if(form.name.value =="") { 34 alert("名前を入力してください"); 35 return false; 36 } 37 else { 38 let str = "名前: "+form.name.value+"\n"; 39 if (form.elements[1].checked) 40 str += "性別: 男性\n"; 41 else 42 str += "性別: 女性\n"; 43 str += "好きな野菜:"; 44 if (form.c1.checked) 45 str += " キャベツ"; 46 if (form.c2.checked) 47 str += " 大根"; 48 if (form.c3.checked) 49 str += " ジャガイモ"; 50 if (form.c4.checked) 51 str += " トマト"; 52 str += "\n"; 53 str += "好きな果物:"; 54 if (form.list.options[0].selected) 55 str += " 蜜柑"; 56 else if (form.list.options[1].selected) 57 str += " 林檎"; 58 else 59 str += " 葡萄"; 60 let result = confirm(str); 61 if (result == true) 62 return true; 63 else 64 return false; 65 } 66 } 67 </SCRIPT> 68 </HEAD> 69 <BODY STYLE="font-size:130%; background-color: #eeffee"> 70 <H1 STYLE="text-align: center">フォームの例2</H1> 71 <FORM ACTION="form2.php" METHOD="post"> 72 <DL> 73 <DT>名前: <INPUT TYPE="text" NAME="name" STYLE="font-size:90%"> 74 <DT>性別: 75 <DD><INPUT TYPE="radio" NAME="sex" VALUE="Male" onClick="sel(1)">男性 76 <DD><INPUT TYPE="radio" NAME="sex" VALUE="Female" onClick="sel(1)">女性 77 <DT>好きな野菜: 78 <DD><INPUT TYPE="checkbox" NAME="c1" onClick="sel(2)">キャベツ 79 <DD><INPUT TYPE="checkbox" NAME="c2" onClick="sel(2)">大根 80 <DD><INPUT TYPE="checkbox" NAME="c3" onClick="sel(2)">ジャガイモ 81 <DD><INPUT TYPE="checkbox" NAME="c4" onClick="sel(2)">トマト 82 <DT>好きな果物: 83 <DD><SELECT NAME="list" onClick="sel(3)" STYLE="font-size:90%"> 84 <OPTION VALUE="s1">蜜柑</OPTION> 85 <OPTION VALUE="s2">林檎</OPTION> 86 <OPTION VALUE="s3">葡萄</OPTION> 87 </SELECT> 88 </DL> 89 <P STYLE="text-align: center"><INPUT TYPE="submit" VALUE="送信" onClick="return check(this.form)" STYLE="font-size:90%"></P> 90 </FORM> 91 </BODY> 92 </HTML>
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>ラジオボタン,チェックボックス,ドロップダウンリスト</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> 08 </HEAD> 09 <BODY CLASS="white"> 10 <H1 STYLE="text-align: center">送信されたデータ</H1> 11 <?php 12 printf(" 名前: %s<BR>\n", $_POST['name']); 13 printf(" 性別: %s<BR>\n", $_POST['sex']); 14 printf(" 好きな野菜 c1 : %s<BR>\n", $_POST['c1']); 15 printf(" 好きな野菜 c2 : %s<BR>\n", $_POST['c2']); 16 printf(" 好きな野菜 c3 : %s<BR>\n", $_POST['c3']); 17 printf(" 好きな野菜 c4 : %s<BR>\n", $_POST['c4']); 18 printf(" 好きな果物: %s<BR>\n", $_POST['list']); 19 ?> 20 </BODY> 21 </HTML>
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>ユーザ認証</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> <SCRIPT TYPE="text/javascript"> function check(form) { if (form.name.value != "user" || form.pass.value != "ps_word") { alert("正しいユーザIDとパスワードを入力してください"); return false; } else alert("OKです!"); } </SCRIPT> </HEAD> <BODY CLASS="white"> <H1 STYLE="text-align: center">ユーザ認証</H1> <FORM> <DL> <DT>ユーザID: <INPUT TYPE="text" NAME="name" STYLE="font-size:90%"> <DT>パスワード: <INPUT TYPE="password" NAME="pass" STYLE="font-size:90%"> </DL> <P STYLE="text-align: center"><INPUT TYPE="submit" VALUE="送信" onClick="return check(this.form)" STYLE="font-size:90%"></P> </FORM> </BODY> </HTML>
user_add.htm
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>ユーザの追加</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> <SCRIPT TYPE="text/javascript"> function check() { if(document.add_form.user.value =="") { alert("ユーザ ID を入力してください"); return false; } if(document.add_form.password.value =="") { alert("パスワードを入力してください"); return false; } } </SCRIPT> </HEAD> <BODY CLASS="white"> <H1 STYLE="text-align: center">ユーザの追加</H1> <FORM NAME="add_form" ACTION="user_add.php" METHOD="post"> <P STYLE="text-align: center"> ユーザ: <INPUT TYPE="text" NAME="user" STYLE="font-size:90%"><BR> パスワード: <INPUT TYPE="password" NAME="password" STYLE="font-size:90%"><BR><BR> <INPUT TYPE="submit" VALUE="送信" onClick="return check()" STYLE="font-size:90%"> </P> </FORM> </BODY> </HTML>
user_add.php
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>ユーザの追加</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> 08 </HEAD> 09 <BODY CLASS="white"> 10 11 <?php 12 $sw = 0; 13 $in = fopen("user_list", "rb"); 14 $k = 0; 15 while (fscanf($in, "%s %s", $user[$k], $pass[$k]) && $sw == 0) { 16 if ($user[$k] == $_POST['user']) 17 $sw = 1; 18 $k++; 19 } 20 fclose($in); 21 22 if ($sw == 0) { 23 $p = crypt($_POST['password']); 24 $out = fopen("user_list", "ab"); 25 $str = $_POST['user']." ".$p."\n"; 26 fwrite($out, $str); 27 fclose($out); 28 } 29 30 if ($sw == 0) 31 printf(" <H2 STYLE=\"text-align: center\">ユーザ %s を追加しました</H2>\n", $_POST['user']); 32 else 33 printf(" <H2 STYLE=\"color: red; text-align: center\">ユーザ %s は既に存在します</H2>\n", $_POST['user']); 34 ?> 35 36 </BODY> 37 </HTML>
user_recog2.htm
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>ユーザ認証</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> <SCRIPT TYPE="text/javascript"> function check() { if(document.pass_form.user.value =="") { alert("ユーザ ID を入力してください"); return false; } if(document.pass_form.password.value =="") { alert("パスワードを入力してください"); return false; } } </SCRIPT> </HEAD> <BODY CLASS="white"> <H1 STYLE="text-align: center">ユーザ認証</H1> <FORM NAME="pass_form" ACTION="user_recog2.php" METHOD="post"> <P STYLE="text-align: center"> ユーザ: <INPUT TYPE="text" NAME="user" STYLE="font-size:90%"><BR> パスワード: <INPUT TYPE="password" NAME="password" STYLE="font-size:90%"><BR> <INPUT TYPE="submit" VALUE="送信" onClick="return check()" STYLE="font-size:90%"> </P> </FORM> </BODY> </HTML>
user_recog2.php
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>ユーザ認証</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> 08 </HEAD> 09 <BODY CLASS="white"> 10 11 <?php 12 $sw = 0; 13 $in = fopen("user_list", "rb"); 14 while (fscanf($in, "%s %s", $user, $pass)) { 15 if ($user == $_POST['user']) { 16 if (crypt($_POST['password'], $pass) == $pass) { 17 $sw = 1; 18 break; 19 } 20 } 21 } 22 fclose($in); 23 24 if ($sw > 0) 25 printf(" <H2 STYLE=\"text-align: center\">ユーザ %s を認識しました</H2>\n", $_POST['user']); 26 else 27 printf(" <H2 STYLE=\"color: red; text-align: center\">正しいユーザ名とパスワードを入力してください</H2>\n"); 28 ?> 29 30 </BODY> 31 </HTML>
session_buy.htm: 商品の選択と購入,データの破棄
01 <!DOCTYPE HTML> 02 <html> 03 <head> 04 <title>商品の購入</title> 05 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 06 <meta name=viewport Content="width=device-width, initial-scale=1"> 07 <link rel="stylesheet" type="text/css" href="../../../master.css"> 08 </head> 09 <body class="white"> 10 <h1 class="center">商品の購入</h1> 11 <form action="session_buy.php" method="post"> 12 <p class="center"> 13 商品名:<input type="text" name="article" style="font-size: 90%"> 14 タイプ:<input type="text" name="type" style="font-size: 90%"> 15 <input type="submit" value="購入" style="font-size: 90%"> 16 </p> 17 </form> 18 <form action="session_del.php" method="post"> 19 <p class="center"> 20 <input type="submit" value="データ破棄" style="font-size: 90%"> 21 </p> 22 </form> 23 </body> 24 </html>
session_del.php: セッションデータの破棄
01 <?php 02 session_start(); 03 ?> 04 <!DOCTYPE HTML> 05 <html> 06 <head> 07 <title>データの破棄</title> 08 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 09 <meta name=viewport Content="width=device-width, initial-scale=1"> 10 <link rel="stylesheet" type="text/css" href="../../../master.css"> 11 </head> 12 <body class="white"> 13 <h1 class="center">データの破棄</h1> 14 <dl> 15 <?php 16 unset($_SESSION['ss']); 17 printf(" <dt>すべてのデータを破棄しました\n"); 18 ?> 19 </dl> 20 </body> 21 </html>
session_buy.php: 購入手続き
01 <?php 02 session_start(); 03 ?> 04 <!DOCTYPE HTML> 05 <html> 06 <head> 07 <title>商品の購入手続き</title> 08 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 09 <meta name=viewport Content="width=device-width, initial-scale=1"> 10 <link rel="stylesheet" type="text/css" href="../../../master.css"> 11 </head> 12 <body class="white"> 13 <h1 class="center">商品の購入手続き</h1> 14 <dl> 15 <?php 16 if (!isset($_SESSION['ss'])) { 17 $k = 0; 18 $_SESSION['ss'][0] = $_POST['article']; 19 $_SESSION['ss'][1] = $_POST['type']; 20 } 21 else { 22 $k = count($_SESSION['ss']); 23 $_SESSION['ss'][$k] = $_POST['article']; 24 $_SESSION['ss'][$k+1] = $_POST['type']; 25 } 26 printf(" <dt>次の商品の購入手続きを行いました\n"); 27 printf(" <p>\n"); 28 printf(" <dd>商品名:%s, タイプ:%s ", $_SESSION['ss'][$k], $_SESSION['ss'][$k+1]); 29 ?> 30 <a href="session_check.php">確認</a> 31 </dl> 32 </body> 33 </html>
session_check.php: 購入した商品の確認,追加購入
01 <?php 02 session_start(); 03 ?> 04 <!DOCTYPE HTML> 05 <html> 06 <head> 07 <title>購入商品の確認</title> 08 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 09 <meta name=viewport Content="width=device-width, initial-scale=1"> 10 <link rel="stylesheet" type="text/css" href="../../../master.css"> 11 </head> 12 <body class="white"> 13 <h1 class="center">購入商品の確認</h1> 14 <dl> 15 <?php 16 printf(" <dt>次の商品を購入しています\n"); 17 printf(" <p>\n"); 18 $n = count($_SESSION['ss']) / 2; 19 for ($i1 = 0; $i1 < $n; $i1++) { 20 $k = 2 * $i1; 21 printf(" <dd>%d. 商品名:%s, タイプ:%s<br>\n", $i1+1, $_SESSION['ss'][$k], $_SESSION['ss'][$k+1]); 22 } 23 ?> 24 <br><a href="session_buy.htm">追加購入</a> 25 </dl> 26 </body> 27 </html>
情報学部 | 菅沼ホーム | 目次 | 索引 |