Postingan lainnya
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...
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.
@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...
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>";
?>