サイト訪問者が任意でボタンをクリックしてくれた数をカウントし、合計にする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やリファラなどは関係なく、(誰が何回でも)ボタンをクリックした回数を単純にカウントする数式が欲しいです。
どうぞよろしくお願いいたします。
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へ飛び、カウント処理を実行後またボタンの表示されているページへ戻ります。
戻ってくるとボタンに表示されているカウントが加算されます。
更新ボタンを押した場合はカウントは変わりません。
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>
こんばんは、こんな初歩の初心者の質問にお答えくださってありがとうございます。
教えていただいたコードで確かにカウントし、カウントした数字は別ファイルに上書きされるようになりました! (<input type="text" name="number" value="<?= $now ?>"> この部分がそのままでは動かなかったので、この部分はincludeでnumber.phpの内容を強制的に表示させました)
ただ、この状態で http://localhost/index.php として、index.phpに上記のタグを記入してブラウザでこのページを表示すると、ブラウザの表示やブラウザの更新ボタンをクリックした時も数をカウントしてしまいました。
できればブラウザの表示回数は計算に含めずに、ボタンをクリックした数だけをクリックできると嬉しいなと思いましたが、教えていただいた計算式さえ自分ではPHPがわからなくて、いずれにせよ、「PHP頑張ろう!!」とすごく思いました。
本当にありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WordPressで完全一致検索
-
データ送信をボタンを押さずに...
-
リンクでキーワードを渡すには...
-
【PHP】ページを更新すると勝手...
-
PHP の自動で飛ぶ処理
-
form actionで二つ送信先を指定...
-
フォントの色を変えるには?
-
【BAT(バッチ)ファイル】Web...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
ファイル一覧を表示しその画面...
-
文字化けについて
-
PHPのif文でその処理を途中で抜...
-
eclipseのエラーの意味
-
透過PNGが透過されない!!
-
空メールの作り方教えて欲しい...
-
3つ以上の論理積は利用可能なの...
-
fopenでファイルが開かない場合...
-
tplを読みに行けません。
-
PHPのstrpbrk関数ってひらがな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
form actionで二つ送信先を指定...
-
データ送信をボタンを押さずに...
-
PHPでε(イプシロン)のような...
-
FORMで送信ボタンと戻るボタン...
-
inputタグでphpを呼び出す際、...
-
別のファイルへ値を受け渡す方法
-
テキストボックスにデータベー...
-
ボタンのクリック数を合計保存...
-
リクエストメソッド
-
PHPとCSVで簡易データベースな...
-
【PHP】ページを更新すると勝手...
-
Auth認証エラー
-
multipart/form-dataを使ったデ...
-
PEARでのAuth認証について
-
ワンクリックしかできないクリ...
-
戻れないです
-
PEAR Image_QRCodeのエラー
-
受け取ったパラメータを次のphp...
-
セッション PHPとHTML
-
【初歩】ログアウトを【2回押さ...
おすすめ情報