ボタンのクリック数をカウントするPHPプログラム

このQ&Aのポイント
  • サイト訪問者が任意でボタンをクリックしてくれた数をカウントし、合計にするPHPプログラムを教えてください。
  • ボタンのクリック数をカウントし、合計を表示するPHPプログラムの書き方を教えてください。
  • ボタンをクリックしたらクリック回数をカウントし、合計を表示するPHPのスクリプトについて教えてください。
回答を見る
  • ベストアンサー

ボタンのクリック数を合計保存するPHPプログラム

サイト訪問者が任意でボタンをクリックしてくれた数をカウントし、合計にするPHPをどなたか教えていただけないでしょうか。 (PHPをはじめたばかりです、よろしくお願いいたします。) index.phpのボタンをクリックすると、クリック回数をnumber.phpに上書き保存し、更にクリックされたら新しくクリックされた回数+number.phpの数の合計を上書きする、というスクリプトを書こうとしています。 index.php ここから---------------------------------------- <html> <body> <form action="index.php" method="get"> <input type="submit" value="クリック"> 合計<input type="text" name="munber" value="<?php $file = "munber.php"; @readfile($file);?> "> </form> </body> </html> index.php ここまで---------------------------------------- number.phpは単に数が一行あるだけです。(例として 5 ) 上記のindex.phpでは、ただボタンがあり、ただnumber.phpの数(5)を表示しているだけで、足し算は行われません。(画像参照) これをどのように書き換えると、ボタンをクリックしたらnumber.php + 1 を行い、number.phpの値も書き換える、というプログラムになるでしょうか。 ※アクセス解析ではないので、IPやリファラなどは関係なく、(誰が何回でも)ボタンをクリックした回数を単純にカウントする数式が欲しいです。 どうぞよろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数6

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 ボタンをクリックしたらを完全に見落としてました。 リロード処理等も入れなくてはいけなくなってきますのでカウントするのは別ファイルにしたほうが良いと思います。 count.php>> <?php $file = "./number.php"; $fp = fopen ( $file,"r" ); $now = fgets ( $fp ); fclose ( $fp ); $now ++; $fp = fopen ( $file, "w" ); fputs ( $fp, $now ); fclose ( $fp ); // "/test/index.php"は自分の環境に合わせる header ( "Location: http://" . $_SERVER['HTTP_HOST'] . "/test/index.php" ); exit; ?> >>count.php index.php>> <html> <body> <form action="count.php" method="get"> <input type="submit" value="クリック!<?php readfile("./number.php") ?>"> </form> </body> >>index.php 前回同様ロック処理やセキュリティの考慮は皆無ですので実運用するにはもうちょっと手を加えないといけませんがこんな感じで作ればよいと思います。 上記動作はボタンを押すとcount.phpへ飛び、カウント処理を実行後またボタンの表示されているページへ戻ります。 戻ってくるとボタンに表示されているカウントが加算されます。 更新ボタンを押した場合はカウントは変わりません。

chile5583
質問者

お礼

ありがとうございました。 長く教えてgooにログインできず、お返事が大変おそくなってしまい失礼いたしました。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 単純(ファイルロックやセキュリティー等考慮せず)に作るのであれば以下のような感じで作れば動くと思います。 動きとしてはnumber.phpファイルを読み込んで加算し、その値を書き込むという動きです。 <?php $file = "./number.php"; $fp = fopen ( $file,"r" ); $now = fgets ( $fp ); fclose ( $fp ); $now ++; $fp = fopen ( $file, "w" ); fputs ( $fp, $now ); fclose ( $fp); ?> <html> <body> <form action="index.php" method="get"> <input type="submit" value="クリック"> 合計<input type="text" name="number" value="<?= $now ?>"> </form> </body> </html>

chile5583
質問者

お礼

こんばんは、こんな初歩の初心者の質問にお答えくださってありがとうございます。 教えていただいたコードで確かにカウントし、カウントした数字は別ファイルに上書きされるようになりました! (<input type="text" name="number" value="<?= $now ?>"> この部分がそのままでは動かなかったので、この部分はincludeでnumber.phpの内容を強制的に表示させました) ただ、この状態で http://localhost/index.php として、index.phpに上記のタグを記入してブラウザでこのページを表示すると、ブラウザの表示やブラウザの更新ボタンをクリックした時も数をカウントしてしまいました。 できればブラウザの表示回数は計算に含めずに、ボタンをクリックした数だけをクリックできると嬉しいなと思いましたが、教えていただいた計算式さえ自分ではPHPがわからなくて、いずれにせよ、「PHP頑張ろう!!」とすごく思いました。 本当にありがとうございます!

関連するQ&A

  • ボタンをクリックすると数が増えていくようにしたい

    質問させていただきます。 初心者で大変申し訳ないのですが、、 下記のようなものをjsで動作させたいのですが、 うまく出来ず困っております。 <body> <form> <input type="text"> <input type="button" value="数を1づつ増やす"> </form> </body> ボタンを押すとテキストボックスの中の数字が 1.2.3・・・と数が増えていく仕組みにしたいのです。 また、<head>内でjsの記述をし、ボタンにonClickをつけ ようと思っているのですが、、 どなたか分かるかたがお見えになりましたら 教えていただけると大変助かります。 よろしくお願いいたします! !

  • phpプログラムの書き方について

    phpは<html>~</html>の中に記載するものなのでしょうか? それともphpプログラムの中にhtmlを記載するのでしょうか? ラジオボタンを10個表示するプログラムを書いたのですが、 実際にブラウザに表示されたものは以下の様な状態になってしまいました。 ------------------------------------------------------------- 該当する年齢を選んでください。 ?php> $i=1; while($i==10){ print "$i "; $i++; } ?> 送信 --------------------------------------------------------------- ソースコード radio.php <html> <head> <title>年齢確認</title> </head> <body> 該当する年齢を選んでください。 <br> <hr> <form method="post" action="radio_uke.php"> ?php> $i=1; while($i==10){ print "<input type='radio' name='r' value'$i'>$i "; $i++; } ?> <input type="submit" value="送信"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでクリックするたびに変数を10ずつ増やすには?

    PHPでクリックするたびに変数を10ずつ増やすには? HTML、PHPの初心者です。 画面に作ったボタンをクリックするたびに、変数$maxの値が10ずつ増えるような プログラムを作りたいと思っています。 非常に簡略化していますが、下記のようなソースを書いてみました。 <html> <body> <?php $max = 0; ?> ---------中略---------- <form method="post" action=""> <input type="submit" name="max_1" value="10増やす"> </form> <?php ---------中略---------- if (isset($_POST["max_1"])) { $max += 10; } ---------中略---------- ?> </body> </html> これだと、「10増やす」というボタンを1回クリックすると、 変数$maxの値が、0から10になりますが、 2回、3回、4回とクリックしても、$maxの値は10のままです。 これを、「10増やす」ボタンを2回クリックしたら、$maxの値が20になり、 3回クリックしたら、$maxの値が30になり、4回クリックしたら、$maxが40になる・・・・ という風にしたいのですが、どう書き換えたらよいでしょうか? どなたか教えていただけると幸いです。 よろしくお願い致します。

  • JavaScript+PHPでのボタンの値について

    お世話になります。現在下記のようなコードです。 #Html側 <script language="JavaScript"><!-- function send1() { document.Form1.submit(); } function send2() { document.Form2.submit(); } // --></script> <form name="Form1" action="tesuto1.php" > 中略 </form> <form name="Form2" action="tesuto2.php" > 中略 </form> <form> <input type="button" name="botan" value="送信" onClick="send1()"> </form> <form> <input type="button" name="botan" value="取消" onClick="send2()"> </form> <form> <input type="button" name="botan" value="確認" onClick="send1()"> </form> #PHP側 tesuto1.php echo "値は".@$_POST["botan"]."です"; という感じで、どのボタンがクリックされたか判別するために、 ボタンの値を取得したいのですが。 よろしくお願いします。

  • PHPのプログラムについて

    フォームから入力した文字列内に、半角スペース(' ')がいくつ含まれるかを表示させる "This is a pen." ⇒ 3個あります 文字列変数 $str に対して 文字列の長さを得る関数: strlen($str) N番目の文字を得る関数: substr($str,N,1) ※ 先頭文字は0番目 先頭から最後尾まで文字を繰り返し取って,空白文字ならカウントを増やす PHPの部分がまだできていない↓ <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>countBlank.php</title> </head> <body> <h1>空白文字をカウント</h1> <form action="countBlank.php" method="get"> <input type="text" name="str" size=50> <input type="submit" value="送信"> </form> <hr> <?php $space=0; echo("半角スペースは".$space."個あります。"); ?> </body> </html>

  • クリックするとボタンの中の文字が変わるようにしたいんですが一応コードは出来たんですが・・うまくうごかなくて困ってます。

    java スクリプトのONCLICKについて質問があります。 ONCLICKのあとに何個もオプションはつけられないのでしょうか? <INPUT TYPE="button" VALUE=" " ONCLICK="form1.Q8.value += '1';" style="font-size:40pt"><br> にボタンをクリックするとボタンの中に「○」を表示するようにしたいんですが、うまくいきません・・・ 一応こう感じにつくってみたんですが・・・ <html> <head> <title></title> </head> <body> <script type="text/javascript"> function change_label(){ document.form1.label1.value = " ○ "; } </script> <form name="form1"> <input type="hidden" name="Q8" value=""><br> <input type="button" name="label1" value="クリックしてね" onclick="form1.Q8.value += '1';change_label();"> <input type="submit" name="Q9b" value="次へ" style="font-size:25pt"> </form> </body> </html> もしよろしければアドバイスいただけませんでしょうか・・・・

  • ボタンクリックで新しいウィンドゥを開けたいです。

    どなたかお知恵をお貸しください。 フォームボタンにてボタンクリックで新しいウィンドゥにて表示させたいのですが やり方が分かりません。 (1)画像をクリック時に買い物カゴに自動的に移動し該当商品がすでに選択されるようにしたい。 (2)その画像をクリック時に買い物カゴのページに移動するが、その際新しいウインドゥにて表したい。 ソースは下記のとおりです。 <form action="http://www.************.php"method="get" > <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="7" /> <input type="hidden" name="product_class_id" value="7" /> <input type="hidden" name="quantity" value="1" /> <INPUT type="image" SRC="../img/**********.png" alt="*********のご購入はこちらから" border="0" /> </form> 上記の際、windowをopenする際どのようなタグにすればよろしいでしょうか。 お手数おかけしますがよろしくお願いします。

  • ラジオボタンのチェック数に応じて、リンク先のページを切り替えたい

    「yes」か「no」だけを選択できるラジオボタンを10組準備し、 yesが選択された数だけをカウントし、 yesの数:0~2 → 01.htm yesの数:3~5 → 02.htm yesの数:6~8 → 03.htm yesの数:9以上 → 04.htm ラジオボタンをチェックし終えた後、 ボタンをクリックすると目的のページにジャンプする仕組みを造りたいのですが、 JavaScriptが全くわからないため、 本と格闘したものの作ることが出来ませんでした。 formの名前は「test」とし、 各ラジオボタンの名前は「q01」「q02」・・・と番号を振って管理しています。 HTMLのソースを記載します。 <form name="test"> <p> <input type="radio" name="q1" value="1">はい  <input type="radio" name="q1" value="0">いいえ </p> <p> <input type="radio" name="q2" value="1">はい  <input type="radio" name="q2" value="0">いいえ </p> <p> <input type="radio" name="q3" value="1">はい  <input type="radio" name="q3" value="0">いいえ </p> ~以下name="q10"まで続く <input type="button" value="採点"> </form> どなたか是非、お知恵をお貸しください。

  • ボタンをクリックで新しいウインドウを開くには?

    ボタンをクリックで新しいウインドウを開くには? Googleのボタン「Google」、「Homepage」を押すと、「新しいウインドウ」を開くにはどこを書き加えれば、よいのでしょうか?いろいろ試しましたが、うまくいきません。よろしくおねがいします。。 <FORM method="GET" action="http://www.google.co.jp/search"> <INPUT maxlength="300" size="21" name="q"> <INPUT type="submit" value="Google" name="btnG" style="font-weight: bold" > <INPUT type="hidden" name="lr1" valuelang-ja checked value="1"> <INPUT type="submit" value="Homepage" name="btnI" style="font-weight: bold" > </FORM>

    • ベストアンサー
    • HTML
  • Mechanizeにおけるボタンクリックについて

    Perl Mechanizeを使って、下記HTMLの"表示"と表示されているボタンを押したいのですが、いろんなパターンを利用しても押せません。処理後の$mechのコンテンツをテキストで見ると、処理前後で更新(html遷移)がありません。試した、パターンは以下です。ActivePerl Verは5.8.8、OSはWindows XP SP2、mechanizeはver0.72です。 また、$mech->click_button('value' => '表示');を使うため、mechanizeをPPMを使ってver1.54にUpdateすると、 「Can't call method "header" on an undefined value at C:/Perl/site/lib/WWW/Mechanize.pm line 2347.」 というエラーがでて、click_button()のところでストップします。Mechanize.pmでuseしている各種パッケージをUpdateしても同様なエラーが出てclick_button()のところでストップします。 下記対象htmlのボタンを押すにはどうしたらよいでしょうか?皆様、よろしくお願いします。 1.パターン1 $mech->submit_form(  form_number => '1',   fields => {    0 => "1",    1 => "2",   }, ); 2.パターン2 $mech->submit_form(  form_number => '1',   fields => {    0 => "1",    1 => "2",   },  button => '' ); 3.パターン3 $mech->form_number(1); $mech->field( 0, 1 ); $mech->field( 1, 2 ); $mech->click(); 4.パターン4 $mech->form_number(1); $mech->field( 0, 1 ); $mech->field( 1, 2 ); $mech->submit(); 5.対象html <html><head><title>タイトル</title></head><body> ■中タイトル1<br><br><form action="/URL" method="post"><input type="hidden" name="NAME" value="ABCD"> [小タイトル1] <br><select name="0"> <option value="0">AAA</option> <option value="1">BBB</option> <option value="2">CCC</option> <option value="3">DDD</option> </select><br> [小タイトル2]<br> <select name="1"> <option value="0">AAA</option> <option value="1">BBB</option> <option value="2">CCC</option> </select><br> <input type="submit" value="表示"></form> <hr>該当データなし。<br><hr>

    • ベストアンサー
    • Perl

専門家に質問してみよう