public function get_token(Request $request) { if ($request->ajax()) { $id = $request->input('idmengawasi'); $djadwal = djadwal::find($id); $djadwal->token = str_random(6); $djadwal->jam_mulai = date('H:i:s'); $djadwal->save(); return $djadwal->token; } }
public function ujian_berlangsung(Request $request) { $rules = ['token' => 'required']; $pesan = ['token.required' => 'Token harus diisi']; $validasi = Validator::make($request->all(), $rules, $pesan); if ($validasi->fails()) { return Redirect::back()->withInput()->withErrors($validasi); } else { //cek apakah token yang dimasukkan sama dengan jadwal ini atau tidak $djadwal = djadwal::find($request->input('detailjadwal')); if ($request->input('token') == $djadwal->token) { //setelah token sesuai, maka cek apakah user ini sudah pernah membuka halaman ini atau belum //seharusnya ketika sudah pernah membuka halaman ini maka user ini sudah mendapatkan soal //secara random, jika belum maka random soal untuk user ini. $idjadwal = $request->input('idjadwal'); $detail_jadwal = $request->input('detailjadwal'); Session::put('jadwal', $idjadwal); Session::put('detailjadwal', $detail_jadwal); $soal = DB::table('soal_siswa')->where('id_jadwal', $idjadwal)->where('id_detail_jadwal', $detail_jadwal)->where('nis', $this->getNis()); if ($soal->count() > 0) { return Redirect::to('siswa/ujian-berlangsung/' . $idjadwal . '/' . $detail_jadwal); } else { //cari data jadwal $jadwal = Jadwal::find($idjadwal); //cari soal yang mata pelajaran dan jurusannya sama dengan jadwal $carisoal = Soal::where('kd_mapel', $jadwal->kd_mapel)->where('kode_jurusan', $jadwal->kode_jurusan); if ($carisoal->count() > 0) { $hasilsoal = $carisoal->first(); $detailsoal = DB::table('detail_soal')->where('id_soal', $hasilsoal->id)->orderBy(DB::raw('RAND()'))->get(); $no = 0; foreach ($detailsoal as $row) { $no++; $data = array('id' => Uuid::uuid4()->getHex(), 'nis' => $this->getNis(), 'id_jadwal' => $idjadwal, 'id_detail_jadwal' => $detail_jadwal, 'id_soal' => $row->id_soal, 'id_detail_soal' => $row->id, 'soal_ke' => $no, 'status' => 0); DB::table('soal_siswa')->insert($data); } return Redirect::to('siswa/ujian-berlangsung/' . $idjadwal . '/' . $detail_jadwal); } } } else { Session::flash('pesan', "Token Tidak sesuai"); return Redirect::back(); } } }