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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

Q&A

解決済

2回答

2187閲覧

投票ボタンで、sessionを使って同じ人物による二重投票を防ぎたいです(php学習して3ヶ月の初心者です。)

hiroshi1979

総合スコア11

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

0グッド

1クリップ

投稿2016/04/23 16:02

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
(例)PHPで掲示板を作っています。 (初心者です)
いいねボタンの様な投票システムを作りたいと思っています。
ボタンは実装できたのですが、同じ人が連続で投票しない様に
sessionを使って2重投票を防ぐ仕組みを作りたいのです。

###該当のソースコード
以下 index.php(ファイル名)より「いいね」ボタンの辺りをコピペしました。

<form action="iine.php" method="post"><input type="hidden" name="id" value=”$mouke['id']”><input type="submit" value="いいね"></form><?php echo $mouke['iine']; ?>

以下 iine.php(ファイル名) 全文です。

<?php require_once('config.php'); require_once('functions.php'); if($_SERVER['REQUEST_METHOD'] =='POST') { $id =$_POST['id']; $dbh =connectDatabase(); //画像idがpostされたidと一致した場合iineがプラス1される $sql ="update shigoto set iine =iine +1 where id =:id;"; $stmt =$dbh->prepare($sql); $stmt->bindParam(":id",$id); $stmt->execute(); header('Location: index.php'); } exit; データベース table名(shigoto) +---------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+---------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | shurui | int(11) | YES | | NULL | | | title | varchar(50) | YES | | NULL | | | content | varchar(1000) | YES | | NULL | | | income | varchar(800) | YES | | NULL | | | muiteru | varchar(1000) | YES | | NULL | | | iine | int(11) | YES | | NULL | | +---------+---------------+------+-----+---------+----------------+ 以上になります。 よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ipadressを取得して保存、判別してから処理すれば良いんじゃないでしょうか…。

個別のidとか生成して。

投稿2016/04/23 16:50

KatsukiSugiura

総合スコア335

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

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

KatsukiSugiura

2016/04/23 16:58

アクセスあったらとれる情報全部とって保存しといて、使う時に使うのが基本的に楽。
KatsukiSugiura

2016/04/23 17:02

殺人予告とか書き込みあったらどう対処するか?脅迫が続いた際にどう対処するか?を考えると全部取得する事になります。
guest

0

ベストアンサー

いわゆるSNSの様な各クライアントにログインを強制する仕組みとそうでないかによって若干違って来ると思いますけど
2重投票を防止するような場合は閲覧者のIPを記録するって事になるんじゃないでしょうか
IPアドレスは
$_SERVER["REMOTE_ADDR"]
で取得できます

投稿2016/04/23 16:49

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hiroshi1979

2016/05/03 15:42

ありがとうございます。解決しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問