| 情報学部 | 菅沼ホーム | 目次 | 索引 |
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>
| 情報学部 | 菅沼ホーム | 目次 | 索引 |