質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1793閲覧

phpで、ボタンの押された回数を取得、合計し、ボタンのvalueに入れ、そこから再び計測できるようにしたい

child_raccoons

総合スコア9

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/12/19 07:11

ボタンが押された回数をphpで取得し、押された累計回数をvalueに埋め込みたいです。

youtubeにあるようないいねボタンのようなものを、回数制限なく押せるようにし、その累計回数をサイトに表示したいと思っています。

下記のinputのvalueをボタンが押されるたびに取得し、次の来訪者が来た場合には、valueに累計の押された回数を表示し、そこから計測が始まるようにしたいです。

該当のソースコード

html

1<input type="button" name="b1" value=" 0 " onclick="counter(this)">回クリック 2 3 <script language="JavaScript"> 4 5 kaisuu=0; 6 function counter(obj){ 7 kaisuu++; 8 obj.value=" "+kaisuu+" "; 9 } 10 11 </script>

試したこと

textファイルを用意し、そこに値を書きこむことでできないかと考えましたが、複数回書き込まれた値をどう処理すればよいのかがわかりませんでした。

初心者であまり詳しくないので、お手柔らかにお願いいたします。
出来ればこう調べればよいというのも教えて頂ければ幸いです。
有識者の方よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2021/12/19 07:18

> 次の来訪者が来た場合には、 とありますが、それはどのようなものを想定していますか? たとえば会場とかにPC一台置いて、そこで皆が使う…みたいな状態か、アクセスカウンタとかみたいに「いろんなところからアクセスされる」という状態か。そういうので変わってきますよ。
child_raccoons

2021/12/19 07:55

そうなんですか! 存じ上げておりませんでした。 いろいろな人がいろいろな端末から一つのサイトにアクセスし、ボタンを押すことを考えております。
BeatStar

2021/12/19 07:58

それなら回答欄にも書いたように、DBを使った方がよさそうです。もし前者(会場に一台置いて…的な)やつなら単純にテキストファイルでもよさそうだけど。
guest

回答1

0

ベストアンサー

下記のinputのvalueをボタンが押されるたびに取得し、次の来訪者が来た場合には、valueに累計の押された回数を表示し、そこから計測が始まるようにしたいです。

私ならこうするってことで。


私なら「DBを使う」ですかね。いわゆる、データベースってやつです。MySQL, Microsoft SQL Server, SQLite, ... とか。

別にテキストファイルとして書き込んでもいいです。ですが用途的に「同時にアクセスする可能性がある」と思います。実際、このteratailでも同時に書き込んだりとかはあり得ます。

テキストファイルに書き込んだり読み込んだりする場合、データの整合性が取りづらいです。たとえばA,B,Cさんがいて、AさんとBさんが同時にアクセスしたとしたら、Aさんが書き込んだデータがBさんのデータに上書きされたり……とかがあり得ます。

今回の場合、カウントだけですが、同時にアクセスしている場合、ズレが生じることは明白ですよね。(もちろん場合にもよるけど、想像ができないほどではない)

どうしてもテキストファイルを使うなら、排他的処理みたいな感じで、「今、俺がここを使っているから待っとけ」的な感じでやる必要があります。最近は見かけなくなりましたが、公衆電話をある人が使っていたら別の人は使えない状態に近いです。

そのコントロールをする必要があります。相当面倒です。

MySQLとかのようなデータベースとかだと、基本的にはデータベースソフト側がそういう処理をしてくれるようです。(あまり詳しい事はわかっていませんが)

厳密には「ちゃんとデータ設計をしていること」が必要になりますが、少なくともテキストファイルで自分でやるよりは楽だと思います。

もし、一つのPCのとあるWebブラウザからしかアクセスしないのなら、クッキーやセッションとかを使った方が楽かもしれません。

ただ、セッションとかクッキーとかだと、別のブラウザや他のPCからだと対象外になってしまうようです。

なので仕様によりますが、用途的に見れば、DBを使う方が楽かなと。

ちなみに、DBとして使うソフト(MySQL or SQLite or ...) は最終的にはどれでもいいかと。ただ、ライセンス周りや料金とかできる範囲とかが違うようなのでそこはご自分で調べてください。

投稿2021/12/19 07:30

編集2021/12/19 07:59
BeatStar

総合スコア4962

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

child_raccoons

2021/12/19 07:59

解答ありがとうございます! ちなみにAさんとBさんが同時にアクセスしていて、例えばAさんのクリック数にBさんのものが上書きされてしまうという状況を容認し、ある程度正確性を省く場合は自分で実装することは可能ですか?
BeatStar

2021/12/19 08:06

> ある程度正確性を省く場合は自分で実装することは可能ですか ファイルのアクセス権とかの問題さえなければできると思います。
child_raccoons

2021/12/19 08:09

何度も申し訳ありません。 ファイルのアクセス権は特に問題ないと思います。 phpで何を利用すればできますか?
BeatStar

2021/12/19 08:15

あ、私の言っている、ファイルのアクセス権ってのは「同時にアクセスした場合」の意味です。 たとえばWindowsとかでテキストファイルとかを読み書きしているときに削除すると「他のソフトが使っているので削除できません」的なエラー系のダイアログが出るはずです。この意味です。 もしこの意味でも問題ないのであれば、単純に「ファイルの読み書き」と基本的な四則計算さえできれば出来そうです。 後はせいぜい、JavaScriptからPHPにデータを渡す事とか。これは「JavaScript PHP データ 渡す」とかで検索すればいいはずです。
child_raccoons

2021/12/19 08:21

ありがとうございます! 検索してみます 何度もありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問