I wrote a simple method for sleeping with a float, which also allows you to do milliseconds (via fractional seconds).
function sleepFloatSecs($secs) {
$intSecs = intval($secs);
$microSecs = ($secs - $intSecs) * 1000000;
if($intSecs > 0) {
sleep($intSecs);
}
if($microSecs > 0) {
usleep($microSecs);
}
}
?>_
And testing on my machine it works perfectly:
$x = [0.100,0.250,0.5,1.0,1.5,2.0,2.5];_
foreach($x as $secs) {
$t = microtime(true);
sleepFloatSecs($secs);
$t = microtime(true) - $t;
echo "$secs \t => \t $t\n";
}
?>
Output:_
0.1 => 0.10017800331116
0.25 => 0.25016593933105
0.5 => 0.50015211105347
1 => 1.0001430511475
1.5 => 1.5003218650818
2 => 2.000167131424
2.5 => 2.5002470016479
?>_
Sudah setahun sejak artikel tentang membuat sistem login PHP dengan beberapa level pengguna (admin, editor, penulis, dll) diterbitkan, sepertinya sekarang adalah waktu yang tepat untuk memberikan informasi serupa, yaitu tentang penantian PHP. sistem moderasi. Ini adalah logika yang akan menahan (pending) setiap postingan yang dibuat oleh user selain admin, postingan tersebut tidak akan muncul di website sampai admin menyetujuinya
Logika ini bisa diterapkan untuk apa saja seperti kiriman artikel, komentar, dan lain-lain. Kita buat contoh untuk submit artikel, ketika user selain administrator, maka artikel berstatus pending dan belum muncul di blog sampai disetujui oleh administrator. Begitu juga jika menerapkan logika ini di komentar atau lainnya
Caranya super gampang gan, misal di tabel database submit artikel yang sudah ada sekarang seperti ini
iklan oleh posciety
- Indo
- id_category
- judul
- memposting konten
- posting gambar
- tanggal
- id_author
Tambahkan struktur baru yang akan digunakan untuk sistem pending, biasanya saya menggunakan statuspost. Jadi sekarang tabel database akan berisi sesuatu seperti ini
Baca Juga
Apa itu memory_limit dan bagaimana cara mengaturnya di cPanel?
Cara Mengatur max_input_time di cPanel
Cara Mengatur max_execution_time di cPanel
Cara Mudah Membuat Tabel di Ms. Unggul
- Indo
- id_category
- judul
- memposting konten
- posting gambar
- tanggal
- id_author
- status postingan
Untuk status postingan atur defaultnya ke angka saja biar gampang, misal angka 0 artinya pending dan angka 1 artinya publish. Jadi nilai default untuk statuspost adalah 0
Cara mengubah nilai default ini tinggal klik Change kemudian pada bagian Default (jika menggunakan bahasa Indonesia) pilih As Defined. dan masukkan angka 0, ini juga bisa dilakukan secara langsung saat membuat struktur baru. Jangan lupa atur sebagai INT karena kita mendeklarasikannya sebagai angka
Sampai saat ini sistem pending sudah siap untuk dibangun. Pastikan anda sudah membaca tutorial sebelumnya tentang Menampilkan Data di PHP Menurut Apa yang Dibuat Pengguna Login, sangat membantu untuk menyusun kode yang berfungsi untuk menampilkan data yang berbeda untuk setiap pengguna login sesuai dengan apa yang mereka lakukan. Misal user A login maka dia akan melihat semua artikel yang dia buat di dashboardnya, artikel yang dibuat oleh user B dan user lain tidak akan ditampilkan
Sekadar mengingatkan, buat halaman untuk menambahkan postingan/artikel di dashboard pengguna. Misalnya seperti ini
Bikin sesuai selera ya gan 😀
Untuk postingan kali ini tentunya kita akan menggunakan sistem insert, disini saya tidak akan membahasnya lagi karena sudah dijelaskan dengan sangat detail pada tutorial sebelumnya tentang cara membuat sistem insert di php. Silahkan baca terlebih dahulu jika ingin mengetahui sistem insert lebih detail
Salin kode berikut dan tempel di halaman penambahan posting
Karena di sini saya menggunakan kategori sebagai contoh, membutuhkan kueri kategori juga, hapus saja jika tidak diperlukan. Pastikan Anda telah menyesuaikan dengan benar kode PHP ini dengan HTML yang ada
Sampai disini mungkin ada yang bertanya, lalu untuk apa nilai postingan status?
Kita cukup menerapkannya di system insert ($_POST) dan di query saja agar tidak ada error saat pengiriman ke database, tidak perlu membuat field form karena tadi kita sudah menentukan nilai default untuk statuspost adalah 0. Artinya setiap postingan yang dikirim akan memiliki status postingan 0
Tidak hanya sampai disini, masih ada beberapa hal yang perlu kami selesaikan
Oke, sekarang semua postingan yang terkirim akan memiliki status postingan 0. Lalu apa yang harus dilakukan?
Jika sudah membaca tutorial sebelumnya tentang cara menampilkan data dari database di PHP, maka tidak akan sulit lagi. Cukup tambahkan WHERE post.statuspost = '1'_ yang artinya postingan yang akan ditampilkan adalah postingan yang status postingannya 1 (kita sudah sepakat 0 pending dan 1 pusblish), tinggal set angka yang mau digunakan asalkan konsisten
$query = mysqli_query($koneksi, "SELECT * FROM post WHERE post.statuspost = '1' ORDER BY id DESC");_Dengan cara ini ketika mengunjungi halaman blog pada website yang bersangkutan, maka akan ditampilkan semua postingan yang berstatus post 1 alias publish alias sudah disetujui oleh admin. Sedangkan artikel dengan status postingan 0 tidak akan muncul dan menunggu persetujuan admin
Lalu Bagaimana Admin Menyetujuinya?
Masih ada yang kurang saat menjelaskan hanya sampai disini, apakah admin menyetujui postingan dengan mengubah angka 0 menjadi 1 di database?
Diatas artikel ini telah disertakan link tutorial tentang menampilkan postingan yang berbeda untuk setiap login user, disitu sudah dijelaskan bahwa user A hanya bisa melihat postingan yang dibuatnya, user B juga bisa melihat yang sama, sedangkan admin bisa melihat semua postingan di database mulai dari yang pending, sampai yang sudah publish
Artinya admin dapat mengedit artikel/postingan dan merubah status postingan dari 0 menjadi 1, pastikan anda sudah membuat form field untuk ini. Contoh
Ubah ke nomor 1 lalu Perbarui Posting (ini menggunakan sistem edit yang sudah dibahas pada tutorial sebelumnya), maka sistem akan menyimpan data terbaru ini (nomor 1) dan mungkin beberapa konten posting yang ingin diubah oleh admin. Setelah berubah menjadi 1, postingan akan muncul di halaman blog