PHP: mysql_fetch_array() vs mysql_fetch_assoc()

Kebiasaanya mysql_fetch_array() akan menghasilkan output dalam dua bentuk iaitu nombor atau key (field)

Manakala mysql_fetch_assoc() hanya akan menghasilkan output dalam bentuk key (field) sahaja.

Walau bagaimanapun, mysql_fetch_array($query, MYSQL_ASSOC) juga adalah sama berfungsi seperti mysql_fetch_assoc()

Dan mysql_fetch_array($query, MYSQL_NUM) juga berfungsi sama seperti mysql_fetch_row()

Ini kerana secara defaultnya type mysql_fetch_array() adalah MYSQL_BOTH.

GIT (Version Control System)

Apabila kita membangunkan sesuatu aplikasi secara berkumpulan, secara tidak langsung akan berlaku perkongsian penggunaan fail. Pada saat ini, kita memerlukan suatu aplikasi yang boleh mengawal versi fail yang kita gunakan sama ada fail konfigurasi, fail teks atau sebagainya. Apabila berlaku perubahan kandungan dalam fail tersebut, maka aplikasi ini akan memudahkan pengguna/kumpulan tadi mengenalpasti perubahan yang berlaku.

Salah satu aplikasi yang sedang meluas digunakan pada masa ini adalah Git.  Walaupun terdapat beberapa protokol lain seperti CVS dan SVN, tetapi GIT lebih popular digunakan kerana kelajuan dan kecekapannya, mudah digunakan serta dapat digunakan dalam berbagai Sistem Operasi (OS).

Git adalah software (open source) yang direka untuk mengendalikan segala-galanya, dari pembangunan projek yang kecil sehingga projek yang sangat besar dengan kelajuan dan kecekapan yang sangat optimum. Git adalah mudah dipelajari dan  mempunyai tiny footprint with lightning fast performance. Antara kelebihan lain yang ada pada Git adalah:

  • support main and local repository
  • tidak memerlukan network connection untuk melakukan git commit
  • branching adalah local dan local repository adalah tanggungjawab programmer itu sendiri

Insyallah pada post yang akan datang PakCu akan tunjukkan pemasangan Git pada OS Windows 7 serta GUI yang boleh dipasang bersama untuk memudahkan pengguna menggunakan GIT.

JomWeb @ KPTMKL

First of all, PakCu nak ucapkan berbanyak terima kasih kepada Saudara Iszuddin Ismail (Senior Web Developer at Kengkawan IT Solutions) kerana sudi menjemput PakCu utk turut hadir sama bersama-sama beberapa lagi Pakar IT antaranya Akmal Fikri, Mior Muhammad Zaki, Haezal Musa, Muhamad Hanafiah, Nurhanna Aziz, Ashikin Asraf, Izwan Robotys, Azree Hanifiah, Muhammad Hamizi dan Nurul Azrad; pada yg tak sebut nama jangan marah ye… Tak lupa juga kepada Pihak Pengajur Program dan tuan rumah (KPTMKL)

Walaupun program diadakan pada Hari Jumaat tapi pengisiaannya sgt bagus. Bermula dengan topik “Apa yg perlu anda tahu untuk menjadi seorang programmer” oleh Saudara Iszuddin. Kemudiannya disusuli dengan topik “Kehidupan sebagai seorang programmer” oleh Saudara Zaki. Sebelum berehat tengahari utk solat Jumaat, pelajar diberi lagi pengetahuan oleh Saudara Izwan dengan tajuk “MVC – Code Igniter”. Selepas solat Jumaat, program diteruskan dengan pembentangan oleh Saudara Hamizi dengan tajuk “GIT” serta diakhiri dengan tajuk “JQuery” oleh Saudara Nurul Azrad.

Tak sia2 bos PakCu bagi pelepasan untuk menghadiri program ini. Banyak ilmu baru yg memberi manfaat serta tambahan /pemantapan ilmu yang telah ada. Memang PakCu setuju dengan kata2 Saudara Zaki, Programmer has no life!! Tapi kalo kita pandai manage masa, insyallah kita tidak akan jadi hamba kepada kerja. Apa yg PakCu dpt simpulkan pada program tadi:

1. Better use div drp table. Pakai table hanya utk paparkan senarai data sahaja. Kenapa? Sebab apabila kita pakai div, maka kita akan belajar CSS. Kenapa nak pakai CSS? CSS memudahkan kita utk mengawal UI (User Interface) agar mendapatkan feedback yg positif utk UX (User Experience). Selain itu CSS juga memudahkan kita apabila kita hendak menggunakan JQuery

2. Setkan benchmarking/target setting dlm sesuatu tempoh, apa yg akan kita perolehi (ilmu/kepakaran). Contohnya katakan dalam tempoh 2 bulan kita nak mahir dengan Code Igniter. So kita kena berusaha untuk mencapai target kita tu. Kalo selepas tempoh tersebut kita masih tak capai target tadi. Lihat balik kelemahan diri. Adakah kita kena beralih kpd framework yg lain atau programming memang bukan bidang kita 🙂

3. Mula cari framework yg sesuai dengan keperluan anda. Penerangan yg menarik daripada Saudara Izwan tentang MVC dan kelebihan CI telah menarik minat PakCu untuk mencuba Code Igniter (CI) sebagai framework utk projek2 akan datang. Jika sebelum ini PakCu pernah mencuba CakePHP dan PHPHyppo jadi sekarang ini, mula nak mencuba CI pula. CI nampak lebih flexible dan mudah difahami.

4. GIT adalah satu apps yg memudahkan kita untuk mengawal versi sistem kita. Kalo sebelum ini kita terpaksa membuat folder/fail xxxx_latest.php. Kemudiannya xxxx_latest_paling.php tapi kita dengan penggunaan GIT akan lebih memudahkan kita menguruskan fail2 code kita dengan lebih sistematik dan teratur. Terdapat 2 jenis GIT iaitu GIT dan juga GITHUB. Perbezaannya adalah GitHub adalah utk public (dikongsikan dengan org lain melalui portal github iaitu http://www.github.com. Manakala GIT pula lebih baik digunakan sekiranya kita membangunkan aplikasi secara berkumpulan di organisasi kita.

5. Masanya telah tiba dimana web kini lebih berbentuk dinamik dan interaktif serta mesra pengguna. Jika dulu kita terpaksa refresh/load page apabila kita menghantar sesuatu input melalui form. Tapi dengan adanya JQuery dan Ajax, page tidak lagi perlu direload. Saudara Nurul Azrad telah menunjukkan contoh2 yg menarik dlm pembentangan beliau.

Syabas kepada pihak penganjur dan Penceramah/Fasilitator yg turut hadir bagi menjayakan program ini.

Jenis-Jenis Hash dan Ciri-Cirinya

Setakat apa yang kami tahu, sekurang2nya ada 25 jenis hash.. mungkin ada lebih banyak lagi.
dibawah adalah jenis dan ciri-ciri hash yang kebiasaan kita nampak.

1. DES (Unix)

Digunakan di Linux dan sejenisnya.
Panjang : 13 Karakter.
Deskripsi : Dua karakter pertama adalah salt (Karakter rambang, di contoh kita saltnya adalah string “Iv.”) kemudian diikuti oleh Hashnya.
Contoh : IvS7aeT4NzQPM

2. Domain Cached Credentials

Digunakan untuk mencache password-password domain windows.
Panjang : 16 bytes (32 Karakter)
Algorithm : MD4(MD4(Unicode($pass)).Unicode(strtolower($userna me)))
Contoh : Admin:b474d48cdfc4974d86ef4d24904cdd91

3. MD5 (Unix)

Digunakan di Linux dan sejenisnya.
Panjang : 34 Karakter.
Deskripsi : Hash dimulai dengan tanda $1$ kemudian dilanjutkan dengan salt (sampai dengan 8 karakter rambang, di contoh kita saltnya adalah string “12345678″)
kemudian dilanjutkan dengan satu karakter lagi $ , kemudian diikuti oleh Hashnya.
Algorithm : Sebenarnya ini adalah loop yang memanggil algoritma md5 sebanyak 2000 kali.
Contoh : $1$12345678$XM4P3PrKBgKNnTaqG9P0T/

4. MD5 (APR)

Digunakan di Linux dan sejenisnya.
Panjang : 37 Karakter.
Deskripsi : Hash dimulai dengan tanda $apr1$ , kemudian dilanjutkan dengan salt (sampai dengan 8 karakter acak, di contoh kita saltnya adalah string “12345678″), kemudian dilanjutkan dengan satu karakter lagi $ ,
kemudian diikuti oleh Hashnya.
Algorithm : Sebenarnya ini adalah loop yang memanggil algoritma md5 sebanyak 2000 kali.
Contoh : $apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.

5. MD5 (phpBB3)

Digunakan di phpBB 3.x.x.
Panjang : 37 Karakter.
Dekripsi : Hash dimulai dengan tanda $H$ kemudian diikuti dengan satu karakter (selalunya dengan angka “9″) kemudian diikuti dengan salt (8 karakter rambang, contoh saltnya adalah string “12345678″), kemudian diikuti oleh Hashnya.
Algorithm : Sebenarnya ini adalah loop yang memanggil algoritma md5 sebanyak 2048 kali.
Contoh : $H$9123456785DAERgALpsri.D9z3ht120

6. MD5 (WordPress)

Digunakan di WordPress.
Panjang : 34 Karakter.
Deskripsi : Hash dimulai dengan tanda $P$ , kemudian diikuti dengan satu karakter (selalunya dengan huruf “B”), kemudian diikuti dengan salt (8 karakter rambang, contoh kita adalah string “12345678″), kemudian diikuti oleh Hashnya.
Algorithm : Sebenarnya ini adalah loop yang memanggil algoritma md5 sebanyak 8192 kali.
Contoh : $P$B123456780BhGFYSlUqGyE6ErKErL01

7. MySQL

Digunakan di MySQL versi lama.
Panjang : 8 bytes.
Deskripsi : Hash yang terdiri dari dua DWORD, masing-masing tidak melebihi nilai 0x7fffffff.
Contoh : 606717496665bcba

8. MySQL5

Digunakan di MySQL Versi baru.
Panjang : 20 bytes.
Algorithm : SHA-1(SHA-1($pass))
Contoh : *E6CC90B878B948C35E92B003C792C46C58C4AF40
Catatan : Hash harus dimuat ke program tanpa tanda bintang yang terdapat di awal setiap hash.

9. RAdmin v2.x

Digunakan di Aplikasi Remote Administrator v2.x.
Panjang : 16 bytes.
Algorithm : Password diisi dengan nol dengan panjang 100 bytes, kemudian seluruh string dihash dengan algoritma MD5.
Contoh : 5e32cceaafed5cc80866737dfb212d7f

10. MD5

Digunakan di phpBB v2.x, Joomla versi di bawah 1.0.13 dan banyak forum dan CMS.
Panjang : 16 bytes.
Algorithm : sama seperti fungsi md5() di php.
Contoh : c4ca4238a0b923820dcc509a6f75849b

11. md5($pass.$salt)

Digunakan di WB News, Joomla Versi 1.0.13 keatas.
Panjang : 16 bytes
contoh : 6f04f0d75f6870858bae14ac0b6d9f73:1234

12. md5 ($salt.$pass)

Digunakan di osCommerce, AEF, Gallery dan beberapa CMS.
Panjang : 16 bytes.
Contoh : f190ce9ac8445d249747cab7be43f7d5:12

13. md5(md5($pass))

Digunakan di e107, DLE, AVE, Diferior, Koobi dan beberapa CMS.
Panjang : 16 bytes.
Contoh : 28c8edde3d61a0411511d3b1866f0636

14. md5(md5($pass).$salt)

Digunakan di vBulletin, IceBB.
Panjang ; 16 bytes.
Contoh : 6011527690eddca23580955c216b1fd2:wQ6

15. md5(md5($salt).md5($pass))

Digunakan di IPB.
Panjang : 16 bytes.
Contoh : 81f87275dd805aa018df8befe09fe9f8:wH6_S

16. md5(md5($salt).$pass)

Digunakan di MyBB.
Panjang : 16 bytes.
Contoh : 816a14db44578f516cbaef25bd8d8296:1234

17. md5($salt.$pass.$salt)

Digunakan di TBDev.
Panjang : 16 bytes.
Contoh : a3bc9e11fddf4fef4deea11e33668eab:1234

18. md5($salt.md5($salt.$pass))

Digunakan di DLP.
Panjang : 16 bytes.
Contoh : 1d715e52285e5a6b546e442792652c8a:1234

19. SHA-1

Digunakan dibanyak Forum dan CMS.
Panjang : 20 bytes
Algorithm: Sama dengan sha1() fungsi di PHP.
Contoh : 356a192b7913b04c54574d18c28d46e6395428ab

20. sha1(strtolower($username).$pass)

Digunakan di SMF
Panjang : 20 bytes.
Contoh : Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a

21. sha1($salt.sha1($salt.sha1($pass)))

Digunakan di Woltlab BB
Panjang : 20 bytes
Contoh : cd37bfbf68d198d11d39a67158c0c9cddf34573b:1234

22. SHA-256(Unix)

Digunakan di Linux dan sejenisnya.
Panjang : 55 Karakter.
Deskripsi : Hash dimulai dengan tanda $5$, kemudian diikuti salt (sampai dengan 8 karakter rambang, di contoh kita saltnya adalah string “12345678″), kemudian dilanjutkan dengan satu karakter lagi $, kemudian diikuti hash sebenarnya.
Algorithm : Sebenarnya ini adalah loop yang memanggil algoritma SHA-256 5000 kali.
Contoh : $5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqi…

23. SHA-512(Unix)

Digunakan di Linux dan sejenisnya.
Panjang : 98 Karakter.
Deskripsi : Hash dimulai dengan tanda $6$, kemudian diikuti dengan salt (sampai dengan 8 karakter rambang, dicontoh kita saltnya adalah string “12345678″), kemudian dilanjutkan dengan satu karakter lagi $, kemudian diikuti hash sebenarnya.
Algorithm : Sebenarnya ini adalah loop yang memanggil algoritma SHA-512 5000 kali.
contoh : $6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEm…

Sumber : Dragon Force

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261904 bytes) on line 2729

Pernah dpt error cam ni? Mesej ralat ini boleh muncul dalam skrip PHP yang sebelum ini berfungsi apabila keperluan memori melebihi had standad iaitu 8MB seperti yang telah ditetapkan (configuration) dalam fail php.ini. Namun begitu, ia hanyalah merupakan satu masalah yang mudah untuk diatasi.

Untuk menukar had maksimum ini, satu skrip php dengan dibuat dengan memasukkan baris seperti ini di bahagian atas skrip anda:

<?php
ini_set('memory_limit','128M');
?>

Code di atas menetapkan had maksimum 128 megabait. Jika jumlah ini masih tidak berfungsi, anda boleh terus meningkatkan had memori. Anda juga boleh menetapkan had memori tanpa had dengan memasukkan kod berikut:

<?php
ini_set('memory_limit','-1');
?>

Perlu diingat bahawa had memori yang besar adalah amat tidak sesuai untuk programming yang baik. Kod skrip yang buruk (ditulis dengan tidak cekap) boleh mensia-siakan memori dan seterusnya boleh menimbulkan masalah yang teruk bagi skrip yang kerap dijalankan (dipanggil dan digunakan). Walau bagaimanapun, sesetengah aplikasi yang kurang digunakan dan memerlukan memori yang banyak seperti mengimport dan memproses data yang besar tetap harus menggunakan had memori yang besar.

HAQIS IT Training & Consultant

Sukacita dimaklumkan pihak pengurusan dan pentadbiran HAQIS IT Training & Consultant telah dikemaskini dan diambilalih sepenuhnya oleh Pn. Adryana Anati Sulaiman Shah. Ini bagi tujuan memastikan pengurusan HAQIS akan menjadi lebih mantap selaras dengan halatuju syarikat.

Insyallah, kami telah merancang dan menjadualkan beberapa program seperti mengadakan latihan/kursus, pembangunan web dan aplikasi serta membuat tutorial berguna lagi kepada pengunjung web ini.

PHPMeetup 2011: Framework Shootout

Komuniti PHP.net.my dengan kerjasama MIMOS sekali lagi menganjurkan PHP Meetup. Perjumpaan kali ini akan berkisar mengenai framework yang ada di komuniti sumber terbuka.

Tentatif :
8.30 – Pendaftaran
9.00 – Ucapan alu-aluan dari Founder Php.net.my
– Ucapan alu-aluan dari Mimos Berhad
– CakePHP
10.25 – Breakfast
10.55 – Most Wanted Programmers
– Django
– DooPHP
1.10 – Lunch
2.15 – ZendFramework
– CodeIgniter
– Ruby On Rails
– PHP Hyppo
5.05 – Tea Break and Chats

– Presenters:
1. Zend Framework (TerasAmpuh)
2. CakePHP (Bazet)
3. PHPHyppo (hymns)
4. Code Igniter (aizuddinmanap.com)
5. dooPHP – Leng Sheng Hong (darkredz)
– Guest Languages:
6. Django – framework untuk Python (Doubt).
7. Ruby on Rails (Azrad)
– Non-framework topic
8. Become the Most Wanted Programmer in the Market (Lee Johnson – 40Square)

Bahasa pengantar adalah mengikut presenter.

masuk adalah percuma. keluar pun sama. 🙂

Breakfast, Lunch dan makan petang disediakan. First come first makan basis.

Penaja Bersama :
AIST – http://www.aist.com.my/
PRIMUSCORE – http://www.primuscore.com/
EXPERIAN HITWISE – http://www.hitwise.com/
JMOBI – http://www.i-mobe.com/

Yang datang akan dapat MUG PERCUMA selagi stok masih ada.

Semoga segalanya dipermudahkan olehNYA.

FB: http://www.facebook.com/event.php?eid=147833501942196