質問編集履歴

1 受け取る処理の追加

Cherry1217

Cherry1217 score 23

2019/02/03 22:16  投稿

php(POST)について
●PHPのpostについて
PHP初心者です。
以下のPHPを書いたのですが、データがpostされません。
そもそもの書き方が悪いのでしょうか?
ご回答の程、宜しくお願いします。
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">
 <meta name="description" content="アンケートフォーム">
 <link rel="stylesheet" href="/Applications/MAMP/htdocs">
 <title>アンケートフォーム</title>
</head>
<body>
<h2>アンケートフォーム</h2>
<from action="question2.php" method="post">
 <dl class="clearfix">
   <dt>性別は?</dt>
   <dd>
   <?php
   $male = '男性';
   $female = '女性';
   $number = array('1' , '2');
   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";
    ?>
  </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">
    &copy; 2010 PHP for web designer All fights reserned.
  </p>
  </body>
  </html>
  </html>
<!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">
     <li class="active"><a href="index.php">アンケート</a></li>
     <li><a href="form1.php">メールフォーム</a></li>
     <li><a href="webapi/">グルメMAP></a></li>
   </ul>
   <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;
       }
       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;
         }
       }
       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/log/log.taxt';
         $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");
       }
       fclse($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">
     &copy; 2010 PHP for web designer. ALL rights reserved.
   </p>
 </div>
</body>
</html>
  • PHP

    38379 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • POST

    733 questions

    POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る