• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPで投票カウンタの作成)

PHPで投票カウンタの作成

このQ&Aのポイント
  • PHPを使用して投票カウンタを作成する方法について教えてください。
  • ラジオボタン3つを配置し、選択した項目のカウントを表示する投票カウンタをPHPで実装したいです。
  • フォームを作成し、OKボタンを押すと選択した項目のカウントが増える投票カウンタをPHPで作成したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • ulmo
  • ベストアンサー率43% (197/454)
回答No.2

ANo.1さんの言うようにcookieに保存する意味はまるでないですが、 まぁ練習ということで。しかし60秒で消えるのは早すぎなので、 30分にしました。各関数についてはマニュアルを参照。 <?php $value = unserialize($_COOKIE['value']); for ($i = 1; $i <= 3; $i++) { // やっとかないと何も表示されなかったりする if ($value[$i] == '') { $value[$i] = 0; } } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $value[$_POST['tohyo']]++; } setcookie('value', serialize($value), time() + 1800); ?> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP" /> <title>投票カウンター</title> </head> <body> <form action="count2.php" method="post"> <p> <?php for ($i = 1; $i <= 3; $i++) { echo "<input type=\"radio\" name=\"tohyo\" value=\"$i\" />$i ($value[$i])\n"; } ?> </p> <input name="submit" type="submit" value="投票" /> </form> </body> </html>

childeman
質問者

お礼

ご回答ありがとうございます。 この問題は練習のためのものですので、投票するのは自分のPCからだけです。 ですので、自分が書いたコードを少し発展させた形にしたいのです。 unserializeや$_SERVERなどを使用しないで作成することはできないでしょうか? 無理いってすみません。

その他の回答 (2)

  • ulmo
  • ベストアンサー率43% (197/454)
回答No.3

ANo.2 ulmoです。 練習なら、なおさら自分でやりましょう。 私のコードは、たぶんあなたの希望通りに動作してると思います。 しっかり解析して下さい。 ヒントとして、  ・$value を表示してますが、元のコードでは何もセットされてないことに気づいてますか?   フォームから送信される変数は、method="post" なら $_POSTに、   でなければ $_GET に保存されます。この場合、$_GET['tohyo'] に値がセットされます。  ・$_SERVER['REQUEST_METHOD'] をチェックしないで外部変数を取り込むには、   $_POST と $_GET の両方をチェックする必要があります。   素直に $_SERVER['REQUEST_METHOD'] を使うべきでしょう。  ・serialize()を用いずに cookie に配列を保存するには、   要素を一つずつ setcookie() しなくてはなりません。  ・ちなみに <?php print $foo; ?> は <?=$foo?> とも書けます。

回答No.1

結果はCOOKIEに保存するのですか? それだとPC毎にカウンタが違いますが・・・その仕様でいい?

childeman
質問者

お礼

>結果はCOOKIEに保存するのですか? はい。結果はCOOKIEに保存します。

関連するQ&A