PHP初心者です。
PHPでアンケートフォームを作っているのですが、アンケート結果の表示と結果の保存が
うまくいきません。
エンケートフォームを入力
エラーがある場合
->戻ってアンケートの項目全てにお答えください。
エラーがない場合
->アンケート結果を受け付けました!!!
上記のようにさせたいのですが、今の現状だと、
アンケートを入力してもしなくても、「アンケート結果を受け付けました!!!」
と表示され、本来エラーとして表示されるべきものが、エラーとして表示されません。
多分、データがうまくPOSTされておらず、データの精査が出来ていないからだと思うのですが、
POSTされない理由が全く解りません。
</dd> <dt>年齢は</dt> <dd> <label> <select name="age"> <option value="0" selected="selected">選択してください</option> <?php for ($num = 1; $num <= 4; $num++){ echo '<option value = "' . $num . '">' . $num . '0代</option>' . "¥n"; } ?> <option value="5">50代以上</option> </select> </label> </dd> <dt>趣味は?</dt> <dd class="hobby-area"> <?php $hobby = array( 1 => '音楽鑑賞', 2 => '映画鑑賞', 3 => 'ドライブ', 4 => '旅行', 5 => 'その他'); foreach ($hobby as $key => $value) { echo ' <label><input type="checkbox" name="hobby[' . $key . ']" value="' . $key . '" />' . $value . '</label>' . "¥n"; } ?> </dd> </dl> <p> <input type="submit" value="投票する" /> </p> </from> <p class="copy"> © 2010 PHP for web designer All fights reserned. </p> </body> </html>echo ' <label><input type="radio" name="gender" value="' . $number[0] . '" />' . $male . '</label>' . "¥n"; echo ' <label><input type="radio" name="gender" value="' . $number[1] . '" />' . $female . '</label>' . "¥n"; ?>
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="description" content="アンケート結果を送信しました"> <title>アンケート結果を受け付けました!!!</title> </head> <body> <div id="box"> <div id="header"> <h1>PHP for web Designer</h1> </div> <ul id="menu" class="clearfix"></ul>
</div> </body> </html><div id="main"> <h2>アンケートフォーム</h2> <?PHP $error = 0; if (isset($_POST['gender'])) { $gender = $_post['gender']; if (ctype_digit($gender)) { if(gender == 1){ $gendername = '男性'; } elseif ($gender == 2) { $gendername = '女性'; } else { $error = 1; } } else{ $error = 1; } } else { $error = 1; } if (isset($_post['age'])) { $age = $_post['age']; if(ctype_digit('age')) { if($age < 1 || $age > 5) { $error = 1; } } else { $error = 1; } } else { $error = 1; } if (isset($_post['hobby'])) { $hobby = $_post['hobby']; if(is_array($hobby)){ foreach ($hobby as $value) { if($value < 1|| $value >5){ $error = 1; } } } else { $error = 1; } } else{ $error = 1; } if ($error == 0) { echo '<dl class="clearfix">'; echo '<dt>性別は?</dt><dd>' . $gendername . '</dd>'; if($age != 5) { echo '<dt>年齢は?</dt><dd>' . $age . '0代</dd>'; }else{ echo '<dt>年齢は?</dt><dd>50代以上</dd>'; } echo '<dt>趣味は?</dt>'; echo '<dd>'; foreach ($hpbby as $value) { switch ($value) { case 1: echo '音楽鑑賞<br />'; break; case 2: echo '映画鑑賞<br />'; break; case 3: echo 'ドライブ<br />'; break; case 4: echo '旅行<br />'; break; case 5: echo 'その他<br />'; break; } } echo '</dd>'; $textfile = 'Applications/MAMP/log/log.txt'; $fp = fopen($textfile, 'r+b'); if(!$fp) { exit('ファイルがないか異常があります'); } if(!flook($fp,LOCK_EX)){ exit('ファイルをロックできませんでした'); } while(!feof($fp)){ $writebuffer[] = trim(fgets($fp)); } if($gender == 1) $writebuffer[0]++; if($gender == 2) $writebuffer[1]++; $writebuffer[$age + 1]++; foreach ($hobby as $key => $value) { $writebuffer[$key + 6]++; } $writebuffer[12]++; rewind($fp); foreach ($writebuffer as $value) { fwrite($fp, $value . "¥n"); } fclose($fp); echo '</dl>'; echo '<p class="app_msg">以上の内容を保存しました!</p>'; echo '<p class="app_msg"><a href="question3.php">集計結果を見る</a></p>'; }else{ echo '<p class="app_msg">'; echo '戻ってアンケートの項目全てにお答えください。'; echo '</p>'; } ?> <dl class="clearfix"></dl> <p class="app_msg">以下の内容を保存しました!</p> <p class="app_msg"><a href="qustion3.php">集計結果を見る</a></p> </div> <p class="copy"> © 2010 PHP for web designer. ALL rights reserved. </p>
0.男性
1.女性
2.10代
3.20代
4.30代
5.40代
6.50代以上
7.音楽鑑賞
8.映画鑑賞
9.ドライブ
10.旅行
11.その他
12.アンケート回答述べ人数
回答1件
あなたの回答
tips
プレビュー