Login Sehari Sekali di PHP

Permisi, saya mau bertanya. Gimana cara bikin login user sehari sekali? Jika user (dilihat dari variabel username) nya sama, maka si user tidak dapat login dan bisa login besok harinya. Ini untuk aplikasi absen, mohon bantuannya! Terima kasih...

avatar fiqrizki
@fiqrizki

3 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

3 Jawaban:

1. Buat tabel untuk menampung data absen. Katakanlah nama tabelnya "absen_harian". Fieldnya : id, tanggal, username

2. Ketika si user login, lakukan checking/validasi ke tabel "absen_harian" dengan WHERE username dan tanggal hari ini.

3. Jika hasil querynya > 0, berarti si user sudah absen. Cukup mengeluarkan alert pakai java script atau redirect sj ke halaman tertentu yang menandakan si user telah absen.

4. Jika hasil querynya = 0, berarti username tersebut belum absen. Dan jika belum absen, maka lanjut ke query selanjutnya yakni menambahkan si user ke tabel absen_harian.

Pengkondisiannya mungkin kurang lebih spt ini :


<?php
$checking = SELECT * FROM "absen_harian" WHERE username = $username AND DATE_FORMAT(tanggal, '%Y-%m-%d') = CURDATE()

if($checking == 0){
  INSERT INTO absen_harian(tanggal, username) VALUES ($tanggal, $username);
}else{
 header('Location: sudah_absen.php');
}
?>

Itu yg terlintas dikepala ane gan. Semoga membantu.

avatar chaidiryahya
@chaidiryahya

139 Kontribusi 99 Poin

Dipost 6 tahun yang lalu

@chaidiryahya Terima kasih dan mohon maaf sebelumnya. Sebenernya disini saya pakai YII framework versi 1.19. Karena pas posting kategori tidak ada tags yii, jadi saya ambil tags php aja (plus lupa kasih keterangan di pertanyaan). Karena syntaks YII agak berbeda, jadi saya masih kesulitan di codingnya. Kalau saya dapet coding ini di controller absen

 public function actionAbsen()
	{

		$model=new Absen;

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['Absen']))
		{
			$pin = $_POST['Absen']['pin'];


			$model->karyawan_id = Yii::app()->user->id;
		//penunjuk\\ $memberpin = Yii::app()->db->createCommand()
					->select('karyawan_pin')
					->from('karyawan')
					//->join('tbl_profile p', 'u.id=p.user_id')
					->where('karyawan_id='.Yii::app()->user->id.'')
					->queryRow();
			$kpin = $memberpin['karyawan_pin']; //penunjuk\\

			//penunjuk\\ if($pin == $kpin){
					$model->karyawan_id = Yii::app()->user->id;
					$absen = Yii::app()->db->createCommand()
						->select('karyawan_id')
						->from('absen')
						//->join('tbl_profile p', 'u.id=p.user_id')
						->where('date(tanggal) = date(now()) and karyawan_id='.Yii::app()->user->id.'')
						->queryRow();//penunjuk\\
					if(!$absen){

					$model->attributes=$_POST['Absen'];
					if($model->save())

					$this->redirect(array('view','id'=>$model->absen_id));
					}else{

						echo 'Udah Absen';
					}



				}else {
					 $message = "Pin Anda Salah";
						echo "<script type='text/javascript'>alert('$message');</script>";


				}

		}

		$this->render('create',array(
			'model'=>$model,
		));

	}

syntaks diantara //penunjuk\\ "coding" //penunjuk\\ itu yang tidak saya pahami, mohon penjelasannya. Terima kasih...

avatar fiqrizki
@fiqrizki

3 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Alhamdullillah, solved. (Maaf, koneksi.php dan proses-nya di campur, hehe... )

 <?php
	$server		= "localhost";
	$user		= "root";
	$password	= "";
	$db_name	= "dbabsentaharrim";

	mysql_connect($server, $user, $password);
	mysql_select_db($db_name) or die("KONEKSI KE DATABASE GAGAL");

	$absen_tgl		= $_POST['absen_tgl'];
	$absen_status		= $_POST['absen_status'];
	$karyawan_id		= $_POST['karyawan_id'];
	$absen_keterangan		= $_POST['absen_keterangan'];
	$tanggal	= $_POST['tanggal'];
	$pengabsen		= $_POST['pengabsen'];
	$karyawan_nama		= $_POST['karyawan_nama'];

	$cek_user=mysql_num_rows(mysql_query("SELECT * FROM absen WHERE pengabsen='$_POST[pengabsen]' AND tanggal='$_POST[tanggal]'"));
if ($cek_user > 0) {
        echo '<script language="javascript">
              alert ("Absen hanya dapat diisi sehari sekali");
              window.location="index.php?absen/absensi";
              </script>';
              exit();
}
	mysql_query("insert into absen(absen_tgl,absen_status,karyawan_id,absen_keterangan,tanggal,pengabsen,karyawan_nama) values (
		'$absen_tgl',
		'$absen_status',
		'$karyawan_id',
		'$absen_keterangan',
		'$tanggal',
		'$pengabsen',
		'$karyawan_nama'
	)") or die("Menyimpan data Gagal <meta http-equiv=refresh content=3;url=index.php>");
	echo "Menyimpan data Berhasil <meta http-equiv=refresh content=3;url=index.php>";
	?>
avatar fiqrizki
@fiqrizki

3 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban