PHP


I spent hours trying to figure out why even the simplest code won’t run on Internet Explorer. I always got the “Object doesn’t support this property or method” error. I’ve even tried both innerHTML and DOM, and still, IE isn’t happy. After those long hours, I found a simple fix that works.

I got more and more curious because I’ve written another page (4 chained drop down list) with xajax and it run flawlessly on either Firefox, Internet Explorer and Opera. Tired of looking my codes, I decide to try something simple on a separate page.


...
$objResponse->addScript("alert('a');");
...

But it still won’t work. Luckily (and why this idea doesn’t came in the first place), I use the Web Developer Toolbar on Firefox, where you could just click Infomation > View Javascript. Trying to found the line where IE mention the error. After removing some unused lines, i found the suspect.


Line 954: for (i=0; i<xml.childNodes.length; i++)

Uninitialized variable ‘i’. After simply changed the code to:


Line 954: for (var i=0; i<xml.childNodes.length; i++)

It’s now up and running, on IE too. Hope this post may help others with similar problem and save others time of digging for the bug. I’ve also sent this topic to the xajax Forums, you can discuss it there, too. Happy Coding!

Sepuluh tahun yang lalu, orang tua kita mungkin sama sekali tidak terbayang untuk bekerja di luar negeri dari tanah air tercinta. Sebulan yang lalu, saya masih ragu apakah bisa mendapatkan uang melalui Internet. Ini pengalaman saya, kesempatan itu nyata, uangnya juga nyata.

Pusing dengan Paypal yang menolak penduduk Indonesia? Masih ragu apakah kita bisa mendapatkan uang melalui Internet? Dalam kesempatan ini, saya akan menceritakan singkat saja mengenai apa yang saya lakukan dan dapatkan. Saya ingin bercerita sekaligus mengajak rekan-rekan yang berminat untuk melakukannya. Jadi, kali ini yang saya ceritakan adalah bahwa uang yang bisa didapatkan itu nyata. Tentang bagaimana aliran dana bisa sampai ke Indonesia dengan cukup nyaman.

Saya mendengar tentang E-Gold dan IndoChanger. E-Gold cukup dipercaya untuk pertukaran uang di berbagai negara di seluruh dunia. IndoChanger adalah layanan jual beli E-Gold yang cepat dan mudah (saya sudah membuktikannya). Setelah itu, saya mencari bursa kerja yang mendukung penarikan uang melalui E-Gold. Saya mencoba bergabung di ScriptLance, tempat yang mempertemukan programmer dan mereka yang membutuhkan programmer. Setelah mendapatkan proyek dari ScriptLance dan mengerjakannya, di ScriptLance Account saya mulai terkumpul sejumlah uang. Berikut ini adalah perjalanan uang itu dari ScriptLance Account hingga rekening BCA saya.

  1. Langkah Pertama, mengumpulkan uang di ScriptLance Account, kemudian ditarik ke E-Gold.
    Step 1: ScriptLance [click to view larger page capture]
     
     
  2. Langkah Kedua, setelah uang sampai di E-Gold, pindahkan ke rekening bank melalui jasa IndoChanger.
    Step 2: E-Gold [click to view larger page capture]
     
     
  3. Tunggu IndoChanger memindahkan uang ke rekening bank Anda.
    Step 3: Indochanger [click to view larger page capture]
     
     
  4. Langkah Terakhir, uang sudah sampai ke rekening bank di Indonesia dengan aman.
    Step 4: BCA Account [click to view larger page capture]
     
     

Begitulah perjalanan uang tersebut hingga ke Indonesia. Tunggu tulisan-tulisan saya berikutnya tentang tips dan trik bagaimana memperoleh pekerjaan di ScriptLance, dan mengenai cara-cara mendapatkan uang melalui Internet.

Catatan: Bila Anda mendaftar ke ScriptLance dan IndoChanger melalui link di atas, Anda akan menjadi downline saya. Saya rasa hal tersebut tidak akan merugikan Anda. Namun, bila Anda tidak suka dengan hal itu, daftar saja tanpa melalui link di atas, melainkan langsung ke alamat situs tersebut. Terimakasih.

Sepertinya PRADO mulai ramai dibicarakan orang. PRADO adalah component framework untuk PHP 5 yang bisa mengubah cara kita menulis program di PHP. PRADO memiliki kemiripan dengan ASP.NET dan Borland Delphi. Setelah mencobanya, ternyata selain agak sulit, setiap klik (tombol, atau apapun) karena konsepnya event-driven, selalu terjadi submit. Untuk aplikasi intranet atau malah 127.0.0.1, ya mungkin ngga pa pa. Tapi kalo untuk bener2 di The Internet, koq kelihatannya agak kurang menjanjikan ya. Anyway, jangan percaya sama aku, download PRADO, coba, dan berkomentarlah.

Terkadang kita membutuhkan sebuah baris yang diambil secara acak dari sebuah tabel yang ada pada server basis data. Misalnya ketika kita ingin menampilkan secara acak salah satu komentar para pengguna produk kita, atau menampilkan secara acak salah satu posting di blog kita. Bagaimana melakukannya secara efisien? (more…)

Hikz, dah cape-cape nulis, postinganku ilang. Anyway, dengan semangat untuk berbagi kutulis lagi dengan singkat dan cuma berisi link-link aja. Intinya, ada PHP Bytecode Compiler yang mungkin bisa jadi jawaban untuk yang ingin menyembunyikan skripnya atau membuat file executable dengan PHP-GTK. Manual BCompiler menyebutkan bahwa tidak ada penambahan kecepatan eksekusi. Bagi yang ingin menyembunyikan skrip sekaligus menambah kecepatan eksekusi, saya menyarankan Turck MMCache yang gratis. Hikz, masi sedih, tulisan panjang menghilang tanpa jejak. That’s all folks.

One of the most useful features of PHP is it’s ability to parse and expand variable names within double-quoted and heredoc string. This feature is like a double-headed sword. Swing it one way, and you spend less typing, you only need to write echo "I am $age years old" instead of echo 'I am ' . $age . ' years old'. Swing it another way, and you cut the efficiency of your script. (more…)

I would like to add Yahoo! Messenger Online Presence to my page, but I want the status to be more informative. The status (I think) should be an image with appropriate text alternative (whether I’m online or not online) with an appropriate link too (going nowhere when I’m offline, and starting Y!M conversation when I’m online). So I decided to create an additional service (it still depends on Yahoo!Messenger’s Online Presence Service) to wrap the existing one. Nice isn’t it? Wanna use that service too? You simply need to add this code on your page:

<span id="rdcYahooStatus"><script type="text/javascript" src="http://services.riyono.com/yahoostatus.js?.usr=Your Yahoo!ID&amp;.name=Your Name"></script></span>

If the visitor disabled javascript or using an old browser, they will not be able to see your status, but your page should still rendered flawlessly (like it was before you add the code).

By using the service, you agree and understand that I may change or modify the terms and conditions of the service anytime. Please drop me an email at <nick at this domain> if you want to be notified when there are any changes.

Few days ago, Ridi asked me to help him with Ping application implementation in PHP. He needs to know if a host is alive or dead. After reading RFC 792, I’m trying to build an ICMP Ping application, which turns out to be useless because of creating raw socket requires root permission. Because the required functionality is just to determine whether a host is alive or dead, I came out with another solution, connectivity ping done by sending NOOP Command to Common TCP Services. To try the TCP Ping, visit the TCP Ping Example Page.

Toni seems to have a deep feeling about patTemplate, and I think I need to help him to surpress this feeling. (more…)

Baru saja saya sempat mengunjungi w3.org setelah sekian lama. Saya bermaksud melihat-lihat perkembangan apa saja yang mungkin belum sempat saya pelajari. Ketika melihat di bagian XHTML, awalnya saya pikir XHTML 1.1 tidak terlalu beda dengan para pendahulunya (XHTML 1.0 dan HTML 4.01). Yang mengejutkan saya adalah elemen font ternyata tidak ada di XHTML 1.1, bahkan penggunaan tag style tidak dianjurkan. Bila HTML dan XHTML 1.0 mendukung pemisahan isi (content) dan penampilan visual dengan CSS, XHTML 1.1 memaksakan hal ini. Setelah sempat kaget, saya justru merasa bersemangat lagi, dan modifikasi dari WordPress (agar dapat sesuai dengan XHTML 1.1) inilah salah satu hasil keterkejutan saya. (more…)