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

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

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

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

PHP

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

button

HTMLで用いる<button>タグです。

Q&A

1回答

413閲覧

ボタンごとの制御が行われない

退会済みユーザー

退会済みユーザー

総合スコア0

POST

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

PHP

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

button

HTMLで用いる<button>タグです。

0グッド

0クリップ

投稿2020/04/30 03:26

編集2020/04/30 03:32

前提・実現したいこと

いいねボタンを押したら cnt1 が増える
高評価ボタンを押したら cnt3 が増える
低評価ボタンを押したら cnt2 が増える
ようにしたい

発生している問題・エラーメッセージ

いいねボタンを押すと
高評価 低評価の数が1に毎回リセットされ、いいねの数が増えてしまう

高評価ボタンを押すと
いいねの数が毎回1にリセットされ、高評価と低評価の数が増えてしまう

低評価ボタンを押すと
いいねの数が毎回1にリセットされ、高評価と低評価の数が増えてしまう

という問題があります。

該当のソースコード

php

1<!--いいね--> 2 3<? 4$cnt1 = $_POST['cnt1'] + 1; 5?> 6 7<p> 8<form action="" name="cnt1" method="post"> 9 10<input type="hidden" name="cnt1" value="<?=$cnt1?>"> 11<input type="submit" value="いいね!"> 12<br> 13<font color="bule"> 14いいね数 15<font color="pink"> 16 <?php echo $cnt1; ?> 17<font color="black"> 18</p> 19</form> 20 21<!--高評価--> 22 23<? 24$cnt3 = $_POST['cnt3'] + 1; 25?> 26 27<p> 28<form action="" name="cnt3" method="post"> 29 30<input type="hidden" name="cnt3" value="<?=$cnt3?>"> 31<input type="submit" value="高評価"> 32<br> 33<font color="bule"> 34高評価数 35<font color="pink"> 36 <?php echo $cnt3; ?> 37<font color="black"> 38</p> 39 40<!--低評価--> 41 42<? 43$cnt2 = $_POST['cnt2'] + 1; 44?> 45 46<p> 47<form action="" name="cnt2" method="post"> 48 49<input type="hidden" name="cnt2" value="<?=$cnt2?>"> 50<input type="submit" value="低評価"> 51<br> 52<font color="bule"> 53低評価数 54<font color="pink"> 55 <?php echo $cnt2; ?> 56<font color="black"> 57</p> 58 59</form>

試したこと

POST action="cnt1"などに変更した <= 動くわけない

補足情報(FW/ツールのバージョンなど)

php 7

ご回答宜しくお願い致します。

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

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

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

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

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

m.ts10806

2020/04/30 03:31

>ボタンのclass btn-primaryはBootstartp使わないとないぞって言われると思いますが、 で、あれば今回レイアウト関係ないのでclassは全て消しておいてください。最小限のコードだけで良いです。
退会済みユーザー

退会済みユーザー

2020/04/30 03:31

そうですね classは消しておきます。
guest

回答1

0

セッションで値を保持してください
実際の運用時はDBなどでデータ管理することになるでしょう

投稿2020/04/30 03:34

編集2020/04/30 03:35
yambejp

総合スコア116720

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

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

退会済みユーザー

退会済みユーザー

2020/04/30 03:40

ご回答ありがとうございます。 sessionで値を確保しても、このようなものをサイト内に何個も設置するので正確な数が表示されないと思います。 他にいい方法はございますか?
yambejp

2020/04/30 03:42

> このようなものをサイト内に何個も設置するので正確な数が表示されない サーバー側がデータを管理する必要があるなら 回答にも書いてありますがDBなどでちゃんとデータ管理してください
退会済みユーザー

退会済みユーザー

2020/04/30 03:44

回答編集してあったんですね 気づきませんでした。 DBでやってみます
yambejp

2020/04/30 03:46

失礼しました、書いた後すぐに追記したんですけど その間に読んだのですね・・・
退会済みユーザー

退会済みユーザー

2020/04/30 03:47

いえいえ こちらこそ気づかなくてすみません。
退会済みユーザー

退会済みユーザー

2020/04/30 03:51

僕が契約してるレンタルサーバーだとDBが使えないみたいなのですが、phpの関数に入れて押された回数を管理する方法はありますか?
yambejp

2020/04/30 03:52

DBがないならファイルI/Oですかね サーバー側で保持しない限り 結局自分が押したものを参照できるのは自分だけです
退会済みユーザー

退会済みユーザー

2020/04/30 04:02

調べてみたのですが、ファイルの上書きは出来ないんですね 色々なやり方を教えていただきありがとうございました。 少し難しそうですので、他の方法を考えます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問