-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtopic-post497.html
132 lines (117 loc) · 21.6 KB
/
topic-post497.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<title>日本PHPユーザ会 掲示板: PHP事はじめ » エラーの原因がわからない。</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。" />
<meta name="keywords" content="php,web,php.gr.jp,community,usebb" />
<link rel="stylesheet" type="text/css" href="./templates/phpgrjp0.3/styles.css" />
<link rel="shortcut icon" href="./templates/phpgrjp0.3/gfx/usebb.ico" />
<link rel="alternate" type="application/rss+xml" title="日本PHPユーザ会 掲示板 RSS フィード" href="rss.xml" />
<script type="text/javascript" src="sources/javascript.js"></script>
</head>
<body onload="javascript:init_external()">
<div id="pagebox-bg">
<div id="shadow-left">
<div id="shadow-right">
<p id="logo"><a href="index.html"><img src="./templates/phpgrjp0.3/gfx/usebb.png" alt="UseBB" title="ホーム" /></a></p>
<h1 id="boardname"><span id="line">日本PHPユーザ会 掲示板</span></h1>
<h2 id="boarddescr">日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。</h2>
<div id="topmenu"><ul>
<li><a href="index.html">ホーム</a></li><li><a href="faq.html">FAQ</a></li><li><a href="active.html">活発なトピック</a></li>
</ul></div>
<div id="topmenu-shadow"></div>
<p class="locationbar">
• <a href="index.html">日本PHPユーザ会 掲示板</a> » <a href="forum-2.html">PHP事はじめ</a> » エラーの原因がわからない。
</p>
<h3 id="forumname"><a href="topic-166.html">エラーの原因がわからない。</a></h3>
<p id="forummods"></p>
<p id="toolbartop"> </p>
<p id="pagelinkstop">ページ: 1</p>
<table class="maintable">
<tr>
<th>投稿者</th>
<th>投稿</th>
</tr>
<tr class="tr1">
<td class="postername">
<div class="posternamecontainer"><a href="profile-259.html">KKG</a></div>
</td>
<td class="postinfo">
<div class="postlinks"></div>
<div class="postdate"><a href="topic-post453.html#post453" name="post453" rel="nofollow">#1</a> 2009 年 9 月 28 日(月) 19:08</div>
</td>
</tr>
<tr class="tr1">
<td class="posterinfo">
会員
<div class="avatar"></div>
<div class="field">登録者: 9 2009</div>
<div class="field">返信数: 1</div>
<div class="field"></div>
</td>
<td class="postcontent">
<div class="post">はじめまして。<br /><br />今回、過去に学校の課題で制作したプログラムを改めて動かそうと<br />したのですが、動かなくなっており対処の方法がわからず投稿します。<br /><br />そのプログラムはユーザーにアンケートを作成してもらうという内容のもので<br />流れとしては<br />アンケートのタイトル入力→アンケート項目入力→入力確認→個別のhtmlを生成<br />となっています。<br /><br />エラーが出るのは入力確認の部分なのですが、コメントアウトした部分が<br />一部表示されてフォームの入力内容が受け取れないというものでどこを対処すればよいのか判らず困っております。<br />コードはほぼ初めて参考書などを参考にしながらで、いろいろと見苦しいかと思いますが<br />なにか対処の手がかりなどいただけたらうれしいです。<br /><br />環境:XP<br /> XAMPPver2.5?<br /><br />タイトル入力<br /><pre class="code"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head><br /><link media="all" type="text/css" href="./css/default.css" rel="stylesheet"/><br /></link><br /><link media="all" type="text/css" href="./css/top_base.css" rel="stylesheet"/><br /></link><br /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br /><title>アンケートにタイトルをつけてください</title><br /></head><br /><body><br /><div id="wrapper"><br /><div id="content"><br /><h1>アンケートに名前を付けてください</h1><br /><form method="post" action="simplemode.php"><br /><input type="text" name="name" ><br /><input type="submit" value="タイトルを決定"><br /></form><br /><p>ヒント:~のアンケートなど</p><br /></div><br /></div><br /></body><br /></html></pre><br /><br />アンケート項目入力<br /><pre class="code"><br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head><br /><link media="all" type="text/css" href="./css/default.css" rel="stylesheet"/><br /></link><br /><link media="all" type="text/css" href="./css/top_base.css" rel="stylesheet"/><br /></link><br /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><br /><title>無題ドキュメント</title><br /></head><br /><body><br /><?php<br />$name = $_POST["name"];<br />?><br /><div id="wrapper"><br /><div id="content"><br /><?php echo $name ?><br /><h1>質問したい内容を決めてください</h1><br /><form method="post" action="kakunin.php"><br /><input type="hidden" name="name" value="<?php echo $name ?>"><br /><input type="text" name="enq1" ><br /><input type="text" name="enq2" ><br /><input type="text" name="enq3" ><br /><input type="submit" value="送信"><br /></form><br /></div><br /></div><br /></body><br /></html><br /></pre><br /><br /><span style="color:red"><br />入力確認</span><br /><br /><pre class="code"><br /><link media="all" type="text/css" href="./css/top_base.css" rel="stylesheet"/><br /></link><br /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br /><title>タイトルを決めてください</title><br /></head><br /><body><br /><br /><?PHP<br /><br /><br />if($_SERVER['REQUEST_METHOD'] == "POST")<br />{foreach($_POST as $k => $v){<br />//magic_quotes_gpcって?<br />if(get_magic_quotes_gpc()){<br />$v = stripslashes($v);<br />}<br />$v = htmlspecialchars($v);<br /> $$k = $v;<br /> }<br />}<br />//そうじゃなければFALSEなら終わり?<br />else{<br />exit();<br />}<br />//値をチェックします<br />/*<br />$ErrFlg = 0;<br /> if($name == ""){<br /> echo "<p>展覧会の名前かアンケートの名称を入力してください";<br />$ErrFlg = 1;<br />}<br /><br />if($enq1 == ""){<br /> echo "<p>最初の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />if($enq2 == ""){<br /> echo "<p>目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />if($enq3 == ""){<br /> echo "<p>みっつ目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br />if($ErrFlg){<br />exit();<br />}<br />*/<br />?><br /><div id="wrapper"><br /><div id="content"><br /><p>入力内容に間違いはないですか?<br /><form method="POST" action="<?PHP echo "seisei.php" ?>"><br /><table border="0"><br /><tr><br /><td>アンケート名</td><br /><td><?php echo $name ?></td><br /></tr><br /><br /><tr><br /><td>アンケート内容1</td><br /><td><?php echo $enq1 ?></td><br /></tr><br /><br /><tr><br /><td>アンケート内容2</td><br /><td><?php echo $enq2 ?></td><br /></tr><br /><br /><td>アンケート内容3</td><br /><td><?php echo $enq3 ?></td><br /></tr><br /><br /><tr><br /><!--colspanを入れるわけ --><br /><td colspan="2"><input type="submit" value="作成"></td><br /></tr><br /><br /></table><br /><!--上にある変数のデータ送信用inputしか送る方法がないため --><br /><input type="hidden" name="name" value="<?php echo $name ?>"><br /><input type="hidden" name="enq1" value="<?php echo $enq1 ?>"><br /><input type="hidden" name="enq2" value="<?php echo $enq2 ?>"><br /><input type="hidden" name="enq3" value="<?php echo $enq3 ?>"><br /><!--<input type="hidden" name="dir" value="<?php echo $dir ?>">--><br /></form><br /></div><br /></div><br /></body><br /></html><br /></pre><br /><br />表示されてしまうのは以下の部分です。<br />なぜコメントアウトしても表示されてしまうのかが一番不可解困っております。<br /><span style="color:red"> $v){<br />//magic_quotes_gpcって?<br />if(get_magic_quotes_gpc()){<br />$v = stripslashes($v);<br />}<br />$v = htmlspecialchars($v);<br /> $$k = $v;<br /> }<br />}<br />//そうじゃなければFALSEなら終わり?<br />else{<br />exit();<br />}<br />//値をチェックします<br />/*<br />$ErrFlg = 0;<br /> if($name == ""){<br /> echo "<p>展覧会の名前かアンケートの名称を入力してください";<br />$ErrFlg = 1;<br />}<br /><br />if($enq1 == ""){<br /> echo "<p>最初の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />if($enq2 == ""){<br /> echo "<p>目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />if($enq3 == ""){<br /> echo "<p>みっつ目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /></span><div class="editinfo">« 最終編集者 <a href="profile-259.html">KKG</a> 日時 2009 年 9 月 28 日(月) 19:33. »</div></div>
</td>
</tr>
<tr class="tr2">
<td class="postername">
<div class="posternamecontainer"><a href="profile-291.html">yasu1988</a></div>
</td>
<td class="postinfo">
<div class="postlinks"></div>
<div class="postdate"><a href="topic-post496.html#post496" name="post496" rel="nofollow">#2</a> 2010 年 1 月 13 日(水) 14:15</div>
</td>
</tr>
<tr class="tr2">
<td class="posterinfo">
会員
<div class="avatar"></div>
<div class="field">登録者: 1 2010</div>
<div class="field">返信数: 7</div>
<div class="field"></div>
</td>
<td class="postcontent">
<div class="post">いくつかの構文ミスを発見しました<br />おそらく致命的なエラーはKKGさん本人がご指摘のように、<br />kakunin.phpの12行目だと思われます。<br />コメントアウトは26行目からですので、それ以前に問題があればその部分は表示されてしまいます。<br />foreach($_POST as $k => $v<br />kakunin.phpの、<?php以降を、下のように変えてみてください。<br /><br /><?PHP<br />// リクエストメソッドがPOSTの場合、生成フォームへデータを渡す<br />if($_SERVER['REQUEST_METHOD'] == "POST"){<br /> // アーギュメントから必要なデータの取り出し<br /> /*<br /> ここは必要とする引数が予め分かっているため、<br /> $_POST['****']で取得する方がセキュアなのでは?<br /> ここではあえてforeachのままで処理を行う。<br /> */<br /> foreach($_POST as $k => $v){<br /> $v = htmlspecialchars($v);<br /> ($k == "name")?$name = $v:$name=$name;<br /> ($k == "enq1")?$enq1 = $v:$enq1=$enq1;<br /> ($k == "name")?$enq2 = $v:$enq2=$enq2;<br /> ($k == "name")?$enq3 = $v:$enq3=$enq3;<br /> }<br />}<br />else{<br />// リクエストメソッドがPOSTではない(GET)の場合、終了する<br />print '予期しないアクセス方法でページが表示されました。<A href="index.htm(l)">トップページへ戻る</A>';<br />exit();<br />}<br /><br />// 値をチェックします<br />// エラーフラグの初期化<br />$ErrFlg = 0;<br /><br />// nameがnullの場合エラーを出す<br />if($name == ""){<br /> echo "<p>展覧会の名前かアンケートの名称を入力してください";<br />$ErrFlg = 1;<br />}<br /><br />// enq1がnullの場合エラーを出す<br />if($enq1 == ""){<br /> echo "<p>最初の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />// enq2がnullの場合エラーを出す<br />if($enq2 == ""){<br /> echo "<p>ふたつ目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />// enq3がnullの場合エラーを出す<br />if($enq3 == ""){<br /> echo "<p>みっつ目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />// フラグが立っている場合、終了する<br />if($ErrFlg = 1){<br /> exit();<br />}<br />//以下、生成フォーム<br />?><br /><div id="wrapper"><br /><div id="content"><br /> <p>入力内容に間違いはないですか?<br /> <form method="POST" action="seisei.php"><br /> <table border="0"><br /> <tr><br /> <td>アンケート名</td><br /> <td><?php echo $name; ?></td><br /> </tr><br /> <tr><br /> <td>アンケート内容1</td><br /> <td><?php echo $enq1; ?></td><br /> </tr><br /> <tr><br /> <td>アンケート内容2</td><br /> <td><?php echo $enq2; ?></td><br /> </tr><br /> <td>アンケート内容3</td><br /> <td><?php echo $enq3; ?></td><br /> </tr><br /> <tr><br /> <td colspan="2"><br /> <input type="hidden" name="name" value="<?php echo $name ?>"><br /> <input type="hidden" name="enq1" value="<?php echo $enq1 ?>"><br /> <input type="hidden" name="enq2" value="<?php echo $enq2 ?>"><br /> <input type="hidden" name="enq3" value="<?php echo $enq3 ?>"><br /> <input type="submit" value="作成"><br /> </td><br /> </tr><br /> </table><br /> </form><br /></div><br /></div><br /></body><br /></html></div>
</td>
</tr>
<tr class="tr1">
<td class="postername">
<div class="posternamecontainer"><a href="profile-291.html">yasu1988</a></div>
</td>
<td class="postinfo">
<div class="postlinks"></div>
<div class="postdate"><a href="topic-post497.html#post497" name="post497" rel="nofollow">#3</a> 2010 年 1 月 13 日(水) 14:54</div>
</td>
</tr>
<tr class="tr1">
<td class="posterinfo">
会員
<div class="avatar"></div>
<div class="field">登録者: 1 2010</div>
<div class="field">返信数: 7</div>
<div class="field"></div>
</td>
<td class="postcontent">
<div class="post">投稿失敗しました。以下のコードでお願いします。<br /><br /><pre class="code"><?PHP<br />// リクエストメソッドがPOSTの場合、生成フォームへデータを渡す<br />if($_SERVER['REQUEST_METHOD'] == "POST"){<br /> // アーギュメントから必要なデータの取り出し<br /> /*<br /> ここは必要とする引数が予め分かっているため、<br /> $_POST['****']で取得する方がセキュアなのでは?<br /> ここではあえてforeachのままで処理を行う。<br /> */<br /> foreach($_POST as $k => $v){<br /> $v = htmlspecialchars($v);<br /> ($k == "name")?$name = $v:$name=$name;<br /> ($k == "enq1")?$enq1 = $v:$enq1=$enq1;<br /> ($k == "name")?$enq2 = $v:$enq2=$enq2;<br /> ($k == "name")?$enq3 = $v:$enq3=$enq3;<br /> }<br />}<br />else{<br />// リクエストメソッドがPOSTではない(GET)の場合、終了する<br />print '予期しないアクセス方法でページが表示されました。<A href="index.htm(l)">トップページへ戻る</A>';<br />exit();<br />}<br /><br />// 値をチェックします<br />// エラーフラグの初期化<br />$ErrFlg = 0;<br /><br />// nameがnullの場合エラーを出す<br />if($name == ""){<br /> echo "<p>展覧会の名前かアンケートの名称を入力してください";<br />$ErrFlg = 1;<br />}<br /><br />// enq1がnullの場合エラーを出す<br />if($enq1 == ""){<br /> echo "<p>最初の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />// enq2がnullの場合エラーを出す<br />if($enq2 == ""){<br /> echo "<p>ふたつ目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />// enq3がnullの場合エラーを出す<br />if($enq3 == ""){<br /> echo "<p>みっつ目の質問を入力してください";<br /> $ErrFlg = 1;<br />}<br /><br />// フラグが立っている場合、終了する<br />if($ErrFlg = 1){<br /> exit();<br />}<br />//以下、生成フォーム<br />?><br /><div id="wrapper"><br /><div id="content"><br /> <p>入力内容に間違いはないですか?<br /> <form method="POST" action="seisei.php"><br /> <table border="0"><br /> <tr><br /> <td>アンケート名</td><br /> <td><?php echo $name; ?></td><br /> </tr><br /> <tr><br /> <td>アンケート内容1</td><br /> <td><?php echo $enq1; ?></td><br /> </tr><br /> <tr><br /> <td>アンケート内容2</td><br /> <td><?php echo $enq2; ?></td><br /> </tr><br /> <td>アンケート内容3</td><br /> <td><?php echo $enq3; ?></td><br /> </tr><br /> <tr><br /> <td colspan="2"><br /> <input type="hidden" name="name" value="<?php echo $name ?>"><br /> <input type="hidden" name="enq1" value="<?php echo $enq1 ?>"><br /> <input type="hidden" name="enq2" value="<?php echo $enq2 ?>"><br /> <input type="hidden" name="enq3" value="<?php echo $enq3 ?>"><br /> <input type="submit" value="作成"><br /> </td><br /> </tr><br /> </table><br /> </form><br /></div><br /></div><br /></body><br /></html></pre></div>
</td>
</tr>
</table>
<p id="toolbarbottom"> </p>
<p id="pagelinksbottom">ページ: 1</p>
<div id="bottomfix"></div>
<p id="actionlinks"></p>
<p class="locationbar">
• <a href="index.html">日本PHPユーザ会 掲示板</a> » <a href="forum-2.html">PHP事はじめ</a> » エラーの原因がわからない。
</p>
<p id="linkbar">
</p>
<p id="bottom">
日本PHPユーザ会 掲示板 は <a href="http://www.usebb.net">UseBB 1 フォーラムソフトウェア</a> を使用しています
</p>
<div id="bottom-shadow"></div>
</div>
</div>
</div>
</body>
</html>