現在ユーザが投票できるサイト(ログイン機能なし)を制作中です。
その中でIPアドレスを使って二重投票を防ぎたいのですが、わかりません。
現在セッションの保存先をデータベースに変更するところまで終わりましたが、
コントローラー側の処理がうまくいかないので教えていただけると助かります。
投票は簡単に男性か女性かを回答できるものです。
<form action="" method="post"> {{ csrf_field() }} <input type="hidden" name="id" value="{{$form->id}}"> <label><input type="radio" name="sex" value="0">men</label> <label><input type="radio" name="sex" value="1">woman/label> <input type="submit" value="送信"> </form>
public function index(Request $request){ $form=DB::table('votes')->get; return view('votes',['form'=>$form]); } public function post(Request $request){ $id=$request->input('id'); $value=$_POST[$id]; if($value==0){ DB::table('votes')->where('id',$id)->increment('men'); } else{ DB::table('votes')->where('id',$id)->increment('woman'); } $items=DB::table('votes')->get(); return view('vote_result'['items'=>$items]); }
テーブルの定義情報を質問文に追記してください。
パッと見たところ、二重投票を防ぐ識別情報(今回ならIPアドレス)を保持したり取り出したりしている箇所がなさそうですが。