Membuat Script PHP Untuk Auto Published Artikel Dengan Cron Jobs
August 2nd, 2009 | by rosihanari |
Cetak Artikel
Ada seorang sahabat saya yang bekerja sebagai web desainer dan programmer di sebuah majalah Islami bertanya: “Bagaimana cara membuat script PHP untuk membuat artikel terjadwal yang nantinya akan dipublish secara otomatis?”. Dalam emailnya, beliau juga menjelaskan secara detail mekanismenya. Misalkan ada seseorang menulis sebuah artikel di web. Namun dia ingin agar artikel tersebut nantinya akan muncul pada tanggal tertentu sesuai yang diinginkannya.
OK… di sini saya akan menjelaskan cara membuat script auto publish tersebut. Selanjutnya script ini nanti akan dijalankan menggunakan Cron Jobs. Wah apa itu Cron Jobs? Bagi yang masih awam dengan istilah ini.. Cron Jobs adalah fitur yang ada di web hosting yang nantinya dapat digunakan untuk menjalankan suatu proses terjadwal (on schedule) secara otomatis. Terjadwal di sini bisa setiap jam, menit, hari, minggu, dan bulan. Nah… dengan bantuan Cron Jobs ini nanti, kita akan menjalankan script untuk mempublish otomatis artikel sesuai tanggal yang telah ditentukan.
Sebagai contoh misalkan kita memiliki sebuah tabel untuk menyimpan artikel di web sebagai berikut:
CREATE TABLE article ( id int(11) auto_increment, title varchar(30), author varchar(30), publishDate date, statusPublish int, PRIMARY KEY(id) );
dengan field ‘id’ adalah menyatakan kode unik dari artikel, ‘title’ menyatakan judul artikel, ‘author’ adalah nama penulis dan ‘publishDate’ menyatakan tanggal publikasi artikel tersebut. Lalu… ada pula field bernama ‘statusPublish’. Buat apa ya field tersebut? Nah.. field ini nanti akan diisi dengan suatu bilangan 0 atau 1. Bila suatu artikel bernilai 0 artinya artikel tersebut belum dipublish. Sedangkan bila diisi dengan 1 maka artikel akan terpublish. Anda bisa pula menggunakan pembeda keadaan tersebut dengan bilangan yang lain (tidak harus 0 dan 1).
Nah.. ide untuk mempublish atau belum adalah di field ‘statusPublish’ dan ‘publishDate’ ini. Setelah suatu artikel disimpan atau diposting, maka secara default nilai ‘statusPublish’ akan bernilai 0 terlebih dahulu. Kemudian jika telah mencapai tanggal tertentu sesuai ‘publishDate’ nya maka secara otomatis berubah menjadi 1. Untuk mengubah ‘statusPublish’ ini nantinya kita gunakan suatu script yang dijalankan secara otomatis dengan Cron Jobs. Dah paham ya idenya?? Simpel bukan?
OK.. sekarang kita buat script PHP nya.
publish.php
<?php
// koneksi ke mysql
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
// mengubah status publish menjadi 1 jika publishDate = tanggal sekarang
$query = "UPDATE article SET statusPublish = 1 WHERE publishDate = CURDATE()";
$hasil = mysql_query($query);
?>
Simpel ya scriptnya?? Selanjutnya bagaimana menjalankan script publish.php di atas menggunakan Cron Jobs? Ini dia caranya:
- Masuklah ke dalam CPanel
- Masuklah ke Cron Jobs dalam CPanel. Biasanya menu ini terletak di bagian paling bawah CPanel (di bagian Advanced)
- Pilihlah ‘Every Days’ pada bagian ‘Days’ untuk menjalankan Cron Jobs setiap hari
- Tulislah perintah
‘php -q /home/usernameAnda/public_html/.../publish.php‘
pada bagian ‘Command to Run’. Perintah tersebut digunakan untuk menjalankan script PHP dengan nama script ‘publish.php’. Jangan sampai salah dalam menuliskan path menuju scriptnya. - Klik tombol Save Crontab
Setelah semua setting Cron Jobs selesai, maka script publish.php itu akan dijalankan setiap hari secara otomatis. Anda bisa pula menambahkan setting setiap jam berapa untuk menjalankan script tersebut dalam Cron Jobs.
Selesai deh artikelnya.. silakan dicoba ya. Mudah-mudahan berhasil.
| Baca Juga Artikel Terkait |
Kata kunci: auto publish script - cron jobs - php script -




Harap diperhatikan penulisannya
diantara -q ada spasi
perhatikan (spasi)-q(spasi)
file juga harus di set permisions-nya 777
thanks
Dear
Pak, saya coba setting cron job dengan tutorial spt diatas. tapi saya binggung dengan penulisan command. dimana anda menuliskan spt di bawah ini
php -q /home/usernameAnda/public_html/…/publish.php
pertanyaan saya adalah:
username anda —> maksudnya username untuk masuk ke cpanel ?? atau username email ?? atau username database ??
mohon banget pencerahannya, karena saya sudah googling tapi gak ada yg memberikan pencerahan
saya sangat berharap bapak bisa mengirimkan jawabannya ke email saya
pengelola@pria-perkasa.com
terima kasih
akbar
@akbar: itu username cpanel mas..
Dude, found one of your (2005) comments on WorldChanging. You’re me! But you’re smaetrr and better looking except maybe I could kick your butt at Scrabble. Also, I was surprised that Doonesbury didn’t appear under the comics. Hmm. Too political?Anyway, you’ve clearly been dealing with stuff for years that I’m just getting into. Love to connect sometime. curt_beckmann at yahoo.I’ll be back.
bapak saya mau bertanya script yang di buat mengolah kata menjadi suara itu apa yach
@syifa: coba anda lihat di http://www.phpclasses.org/browse/package/4097.html saya sendiri belum pernah menggunakannya.
iah bapak trima kasih…
saya benar2 merasa kebingungan padahal terjemahan bahasa jawaku uda selesai tinggal konversi ke suarnya ajagh susah ky gn….
Maaf,
mau tanya untuk menjalankan crontab harus menggunakan OS Linux kah?
Apakah di Windows bisa berjalan?
^^
maaf mas, sy msh bingung, kalo nyimpen isi artikelnya di tabel yg sama atau buat tabel baru tapi saling berelasi.. ?, mohon pencerahannya trims…
@maulanakazep: sebaiknya dalam tabel yang sama saja mas, karena lebih irit dari sisi space memory. Sepertinya halnya di WordPress, juga di buat 1 tabel di databasenya.
Thanx master atas jawabannya, tp sy masih bingung jg(ma’lum masih awam php), kalo pingin kirim emailnya sekalian banyak gimana ya, kan kalau di cronjobs kalo ga salah cuman satu aja?, mohon petunjuk master..
@maulanakazep: pake looping saja mas, jadi perintah mail() nya ditaruh di dalam looping.
mas minta scirpnya yan udah jadi ada ga ..??
maklum newbie…
@skybugis: tinggal copy saja script di atas mas…
wah mantab …. pengen coba dulu ah…thanks pak rosihanari..
Selamatsiang pak, saya mau bikin script yg untuk mengirim email dalam jumlah banyak dan menggunakan cronjob untuk schedulenya.
Namun kami masih bingung untuk membuatnya.
apakah bapak bisa membantu kami?
kalau boleh saya minta no hp yang bisa dihubungi.
Terima kasih.
Regards,
Rudi Surianto