Download source code vb6, source code delphi7, tutorial vb, tutorial delphi, tutorial php

Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan

Membuat PHP User Online

Ya… kali ini kita akan bermain dengan session… kita akan membuat satu program untuk mendeteksi berapa user yang online, baik itu yang sudah terdaftar jadi member maupun yang bukan member.
Perlu diketahui tips ini adalah sambungan dari tulisan sebelumnya (PHP Form Register & Login untuk Member), disarankan sebelum anda memulai dengan satu ini supaya membaca tulisan saya sebelumnya agar nanti tidak kesulitan.Nah.. sudah ??? Ok kalau sudah mari kita mulai..
Langkah pertama adalah menyiapkan databasenya
  1. CREATE TABLE dy_sessions ( 
  2. session_id varchar(70) NOT NULL default ''
  3. session_username varchar(40) default NULL
  4. session_usermode varchar(5) default NULL
  5. session_time varchar(40) default NULL
  6. session_visit varchar(40) default NULL
  7. session_address varchar(125) default NULL
  8. session_page varchar(255) default NULL
  9. PRIMARY KEY (session_id) 
  10. ) TYPE=MyISAM; 
sekarang kita buat script PHPnya
  1. <?php 
  2. /* 
  3. MySQL Host, User and Password Access 
  4. Ganti nilainya sesuai dengan konfigurasi di server database kamu 
  5. */ 
  6. $sqlhost="localhost"; //MySQL host 
  7. $sqluser="user"; //MySQL user 
  8. $sqlpasswd="password"; //MySQL password 
  9.  
  10. /* MySQL Database and Table Prefix 
  11. Database ganti dengan nama database kamu 
  12. */ 
  13. $sqldb="stieven"; //database 
  14. $prefix="dy_"; //table prefix 
  15. // Sekarang lakukan Koneksi ke database MySQL 
  16. $conn=mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("<p 
  17. align=center>CAN NOT CONNECT TO MYSQL SERVER"); 
  18. mysql_select_db($sqldb) or die("Warning database not exists!"); 
  19. //Global Variable 
  20. /* register global untuk variable terutama jika register_global=off */ 
  21. extract($_SERVER,"EXTR_PREFIX_SAME"); 
  22. extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME"); 
  23. extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME"); 
  24. extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME"); 
  25. //timezone format 
  26. $gmt=date("Z"); 
  27. //Session Time 
  28. $session_time=date("U"); 
  29. //session ID 
  30. $session_id=session_id(); 
  31. //cek apakah sudah login atau belum 
  32. if (!$HTTP_SESSION_VARS["userakses"]) { 
  33. $session_user="Guest"
  34. $session_mode="-1"
  35. else
  36. $session_user=$HTTP_SESSION_VARS["userakses"]; 
  37. $session_mode=$HTTP_SESSION_VARS["usermode"]; 
  38. //mengambil record lama session dari database 
  39. $sesGet=mysql_query("select * from ". $prefix ."sessions where 
  40. session_id='$session_id'"); 
  41. $session=mysql_fetch_array($sesGet); 
  42. //IP address 
  43. $ipaddress=$REMOTE_ADDR
  44. //update user session jika suda ada dan jika tidak ada bikin baru 
  45. if ($session[session_id]) { 
  46. mysql_query("update ". $prefix ."sessions set 
  47. session_time='$session_time', session_page='". $REQUEST_URI ."' 
  48. ,session_username='$session_user', session_address='$ipaddress' 
  49. ,session_usermode='$session_mode' where session_id='$session_id'"); 
  50. else
  51. mysql_query("insert into ". $prefix ."sessions 
  52. (session_time,session_visit,session_username,session_usermode,session_ 
  53. id,session_address,session_page) 
  54. values('$session_time','$session_time','$session_user','$sessio 
  55. n_mode','$session_id','$ipaddress','". $REQUEST_URI ."')"); 
  56. //Batas Session Time 
  57. $cekSess=$session_time-300; 
  58. //Total Semua yang online 
  59. $sesGets=mysql_query("select count(*) from ". $prefix ."sessions where 
  60. session_time>='$cekSess'"); 
  61. $session_crt=mysql_fetch_row($sesGets); 
  62. //Total online non member 
  63. $sesGetss=mysql_query("select count(*) from ". $prefix ."sessions where 
  64. session_time>='$cekSess' and session_usermode<=0"); 
  65. $session_crts=mysql_fetch_row($sesGetss); 
  66. //Total Online Member 
  67. $sesGetsss=mysql_query("select count(*) from ". $prefix ."sessions where 
  68. session_time>='$cekSess' and session_usermode>=1"); 
  69. $session_crtss=mysql_fetch_row($sesGetsss); 
  70. //Hapus session yang sudak ekspire 
  71. mysql_query("delete from ". $prefix ."sessions where 
  72. session_time<'$cekSess'"); 
  73. echo "Online $session_crt[0] : Member $session_crtss[0] - Non Member 
  74. $session_crts[0]"
  75. ?> 
Jadi deh… gampang bukan ???

PHP User Online
Stieven R. Kalengkian stieven@kawanuanetworks.com
http://www.php.wox.org

PHP Form Register & Login untuk

Kali ini saya memberikan tips dan trik bagaimana cara membuat form untuk meregister sekaligus login untuk member terdaftar, dan sudah tentu kita akan menggunakan database MySQL untuk menyimpan data para member terdaftar.Perlu diingat source PHP yang saya tulis ini berjalan pada PHP 4.2.3 atau lebih disarankan untuk menggunakan PHP versi 4.3 atau lebih.
Mari kita mulai! Pertama-tama siapkan terlebih dulu databasenya. Silahkan jalankan mysql Client kamu. Masih bingung atau lupa menjalankan mysql client ?
Ok saya coba ingat-ingatkan kembali… Mysql client yang digunakan disini adalah yang berbasis teks dan di eskusi pada shell.
Dengan kata lain mysql client dijalankan dengan perintah sebagai berikut : mysql
Perintah ini dlakukan jika server MySQL berada pada localhost dan tidak ada password untuk user yang sedang aktif pada saat itu.
Untuk perintah yang lebih kompleks dapat menggunakan perintah sebagai berikut mysql –h hosttarget –u username –ppasswordaccess hosttarget adalah lokasi server MySQL berada, username adalah user untuk mengakses kedalam database dan passwordaccess adalah password username untuk mengakses kedalam database.
Setelah itu shell akan berganti seperti :
mysql>
Nah selanjutnya silahkan pilih database yang akan digunakan. Jika belum memiliki database atau ingin menggunakan database lain dari yang sudah ada berarti harus membuat database baru.
Cara membuat database :
mysql> create database namadatabase;
Query OK, 1 row affected <0.00 sec>
sedangkan untuk menggunakan database yang sudah ada
mysql> use namadatabase;
database changed

Sebagai catatan, dalam pembuatan database jangan menggunakan tanda “-“ atau spasi untuk nama database yang terdiri lebih dari dua kata sebaiknya gunakan tanda “_” Contoh nama database yang salah :
calon-Programer calon Programer calon^Programer
Contoh nama database yang benar :
Calon_Programer CalonProgramer
Setalah database sudah disiapkan kita akan membuat tablenya. Berikut cara membuat tablenya, ingat ini masih pada shell MySQL.
  1. CREATE TABLE phpschool_user ( 
  2. id bigint(20) unsigned NOT NULL auto_increment, 
  3. user_name varchar(255) NOT NULL default ''
  4. user_pass varchar(80) default NULL
  5. user_mode varchar(5) default NULL
  6. admin enum('yes','no') default 'no'
  7. user_email varchar(60) default NULL
  8. user_fullname varchar(80) default NULL
  9. user_address varchar(120) default NULL
  10. user_telepon varchar(30) default NULL
  11. tempat_lahir varchar(60) default NULL
  12. tgl_lahir varchar(12) default NULL
  13. date_register varchar(70) default NULL
  14. user_ipaddress varchar(20) default NULL
  15. user_hostname varchar(120) default NULL
  16. note tinytext, 
  17. last_login varchar(60) default NULL
  18. PRIMARY KEY (user_name), 
  19. KEY id (id) 
  20. ) TYPE=MyISAM; 
  21. Query OK, 0 row affected <0.00 sec> 
Selesai sudah persiapan database sekarang kita pindah ke bagian php sourcenya.
Disini kita akan membuat beberapa file untuk proses pendaftaran dan login yang sudah terdaftar.
1. daftar.php, adalah file yang berisi form untuk pendaftaran bagi yang belum terdaftar
2. login.php, adalah file yang berisi form untuk proses login bagi yang sudah terdaftar sekarang kita mulai dengan daftar.php lumayan panjang sih… disini saya juga memberikan beberapa tips untuk javascript bagaimana untuk validasi penulisan email yang benar.
  1. <?php 
  2. session_start(); 
  3. //your mysql access for host user password, database and table prefix 
  4. $prefix="phpschool_"
  5. $sqlhost="localhost"
  6. $sqluser="ipen"
  7. $sqlpasswd="n0limited"
  8. $sqldb="stieven"
  9. $conn=mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("<p align=center>CAN NOT 
  10. CONNECT TO MYSQL SERVER"); 
  11. mysql_query("use $sqldb"); 
  12. //Global variable register PHP 4.23 or more only 
  13. extract($_SERVER,"EXTR_PREFIX_SAME"); 
  14. extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME"); 
  15. extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME"); 
  16. extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME"); 
  17. $file_name=$HTTP_POST_FILES["file"]["name"]; 
  18. $file_size=$HTTP_POST_FILES["file"]["size"]; 
  19. $file_tmp=$HTTP_POST_FILES["file"]["tmp_name"]; 
  20. $file_type=$HTTP_POST_FILES["file"]["type"]; 
  21. if ($logout) { 
  22. unset($HTTP_SESSION_VARS["userakses"]); 
  23. unset($HTTP_SESSION_VARS["userfullname"]); 
  24. unset($HTTP_SESSION_VARS["usermode"]); 
  25. unset($HTTP_SESSION_VARS["useremail"]); 
  26. unset($HTTP_SESSION_VARS["useradmin"]); 
  27. unset($HTTP_SESSION_VARS["userlastlogin"]); 
  28. $thisVersion=phpversion(); 
  29. $php_version=explode(".",$thisVersion); 
  30. $phpversion=$php_version[0] . $php_version[1]; 
  31. $gmt=date("Z"); 
  32. $namaBulan=array("null","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustu 
  33. s","September","Oktober","November","Desember"); 
  34. if (!$HTTP_SESSION_VARS["userakses"]) { 
  35. if ($submitdaftar) { 
  36. $user_name=strtolower(strip_tags(trim($user_name))); 
  37. $user_pass=strip_tags(trim($user_pass)); 
  38. $user_fullname=strip_tags(trim($user_fullname)); 
  39. $user_address=strip_tags(trim($user_address)); 
  40. $user_telepon=strip_tags(trim($user_telepon)); 
  41. $tempat_lahir=strip_tags(trim($tempat_lahir)); 
  42. $nama_status=strip_tags(trim($nama_status)); 
  43. $alamat_status=strip_tags(trim($alamat_status)); 
  44. $hostname=gethostbyaddr($REMOTE_ADDR); 
  45. $note=strip_tags(trim($note)); 
  46. //ceking 
  47. $getUser=mysql_query("insert into ". $prefix ."user 
  48. (user_name, user_pass, user_mode, user_email, user_fullname, user_address, 
  49. user_telepon, tempat_lahir, 
  50. tgl_lahir, date_register, user_ipaddress, user_hostname, note, last_login) 
  51. values 
  52. ('$user_name','$user_pass','$mode','$user_email','$user_fullname','$user_address','$user 
  53. _telepon','$tempat_lahir', 
  54. '$thn_lahir-$bln_lahir-$tgl_lahir','". date("U") ."','". $REMOTE_ADDR ."', 
  55. '$hostname','$note', '". date("U") ."' 
  56. ) 
  57. "); 
  58. if ($getUser) { 
  59. $regOK="ok"
  60. $msgError="<br><p align=center>$user_fullname Selamat Bergabung dengan 
  61. Kami<p>"
  62. else
  63. $fname=str_replace(".","",$user_fullname); 
  64. $fname=str_replace(",","",$fname); 
  65. $fname=explode(" ",$fname); 
  66. $username[0]=strtolower($user_name . rand(1000,2000)); 
  67. $username[1]=strtolower($fname[0]. "_" .$fname[1]); 
  68. $username[2]=strtolower($fname[count($fname)-1]. "_" .$fname[0]); 
  69. $msgError=" 
  70. <br><p align=center><b>$user_name</b> tidak dapat di 
  71. daftar<br>Kemungkinan terbesar sudah pernah didaftar Coba Pilih yang lain misalkan<br> 
  72. <ul> 
  73. <li>$username[0] 
  74. <li>$username[1] 
  75. <li>$username[2] 
  76. </ul> 
  77. <p>"
  78. unset($user_name); 
  79. ?> 
  80. <script> 
  81. function cekuser() { 
  82. if ((document.daftar.user_name.value.length < 4) || 
  83. (document.daftar.user_name.value.length > 255)) { 
  84. alert('Panjang Karakter untuk username harus minimal 4'); 
  85. document.daftar.user_name.focus(); 
  86. return false; 
  87. else
  88. if (document.daftar.user_name.value.indexOf(" ") >= 0) { 
  89. alert('Jangan ada spasi pada isian username dan password'); 
  90. document.daftar.user_name.focus(); 
  91. return false; 
  92. else { return emailbenar(document.daftar.user_email.value); } 
  93. function ceknotchar(ftr) { 
  94. var charnot=new Array 
  95. ('*','%','@','`','"',"'",'$','#','~','(',')','!','^','&','.',',','*',';',':','<','>','[' 
  96. ,']','{','}','|','\\','+','=','?','/'); 
  97. for (i=0;i<=charnot.length;i++) { 
  98. charsek1=ftr.indexOf(charnot[i]); 
  99. if (charsek1 >= 0) { alert('Tidak di ijinkan menggunakan karakter "' + 
  100. charnot[i] + '"');document.daftar.user_name.focus();return false; } 
  101. } 
  102. return cekFmValid(); 
  103. } 
  104. function cekFmValid() { 
  105. if ( 
  106. (document.daftar.user_fullname.value.length < 1) || 
  107. (document.daftar.user_address.value.length < 1) || 
  108. (document.daftar.nama_status.value.length < 1) || 
  109. (document.daftar.alamat_status.value.length < 1) || 
  110. (document.daftar.tempat_lahir.value.length < 1) || (document.daftar.status.value 
  111. == "") 
  112. ) { 
  113. alert('Ada form yang belum diisi, kamu harus mengisi semua form'); 
  114. return false; 
  115. } 
  116. else { 
  117. if (document.daftar.mode.value == "none") { 
  118. alert('Mode Daftar belum di pilih'); 
  119. document.daftar.mode.focus(); 
  120. return false; 
  121. } 
  122. } 
  123. } 
  124. function emailbenar(str) { 
  125. var cek1=str.indexOf("@"); 
  126. if (cek1 <= 0) { 
  127. alert('Alamat Email harus disi dengan benar. Kesalahan pada tanda "@"'); 
  128. document.daftar.user_email.focus(); 
  129. return false; 
  130. } 
  131. else { 
  132. var cek2=str.lastIndexOf("."); 
  133. //alert(cek2 + '-' + cek1); 
  134. if (cek2 <= cek1+1) { 
  135. alert('Alamat Email harus disi dengan benar. Kesalahan pada tanda 
  136. "."'); 
  137. document.daftar.user_email.focus(); 
  138. return false; 
  139. } 
  140. else { 
  141. cek3=document.daftar.user_email.value.length; 
  142. if (cek2 == cek3-1) { 
  143. alert('Anda masih salah dalam penulisan email setalah tanda "." 
  144. masih belum lengkap!'); 
  145. document.daftar.user_email.focus(); 
  146. return false; 
  147. } 
  148. else { 
  149. if (str.indexOf(" ") >= 0) { 
  150. alert('Tidak boleh ada spasi dalam penulisan 
  151. email'); 
  152. return false; 
  153. } 
  154. } 
  155. //alert('True'); 
  156. return ceknotchar(document.daftar.user_name.value); 
  157. } 
  158. return false; 
  159. } 
  160. return false; 
  161. } 
  162. function setMode() { 
  163. if (document.daftar.mode.value >=1) { 
  164. document.daftar.tahun_masuk.disabled=false; 
  165. } 
  166. else { 
  167. document.daftar.tahun_masuk.disabled=true; 
  168. document.daftar.tahun_lulus.disabled=true; 
  169. } 
  170. } 
  171. function setTahunlulus(defTahun) { 
  172. if (document.daftar.tahun_masuk.value < defTahun) { 
  173. document.daftar.tahun_lulus.disabled=false; 
  174. } 
  175. else { 
  176. document.daftar.tahun_lulus.disabled=true; 
  177. } 
  178. if ((document.daftar.mode.value == "none") || (document.daftar.mode.value == "")) 
  179. { 
  180. document.daftar.tahun_lulus.disabled=true; 
  181. } 
  182. } 
  183. </script> 
  184. <table width="98%" border="0" align="center" cellpadding="4" cellspacing="2"> 
  185. <tr> 
  186. <td align="left" valign="top" style="border:1px solid #363635;text-align:justify"> 
  187. <?php 
  188. echo $msgError; 
  189. if ($regOK != "ok") { 
  190. ?> 
  191. <form name="daftar" method="post" action="" onSubmit="return cekuser();"> 
  192. <table width="100%" border="0" cellspacing="1" cellpadding="3"> 
  193. <tr align="left" valign="top"> 
  194. <td width="25%">Username</td> 
  195. <td width="75%"><input name="user_name" value="<?php echo $user_name; ?>" 
  196. type="text" id="user_name" style="width:180" maxlength="12"> 
  197. <br> <font color="#666666">Minimal 4 karakter, gunakan kombinasi 
  198. huruf dan angka dan tanda &quot;_&quot; (underline)</font></td> 
  199. </tr> 
  200. <tr align="left" valign="top"> 
  201. <td>Password</td> 
  202. <td><input name="user_pass" type="password" id="user_pass" style="width:180"> 
  203. <br> <font color="#666666">Minumal 8 karakter, case sensitif (Huruf 
  204. besar/Kapital) memiliki perbedaan dengan huruf kecil</font></td> 
  205. </tr> 
  206. <tr align="left" valign="top"> 
  207. <td>Email</td> 
  208. <td><input name="user_email" type="text" id="user_email" value="<?php echo 
  209. $user_email; ?>" style="width:180"> 
  210. <br> <font color="#666666">Penulisan bentuk email harus tepat Contoh 
  211. : ipen22@yahoo.com dan email harus yang masih aktif</font></td> 
  212. </tr> 
  213. <tr align="left" valign="top"> 
  214. <td>&nbsp;</td> 
  215. <td>&nbsp;</td> 
  216. </tr> 
  217. <tr align="left" valign="top"> 
  218. <td>Nama Lengkap</td> 
  219. <td><input name="user_fullname" value="<?php echo $user_fullname; ?>" 
  220. type="text" id="user_fullname" style="width:180"></td> 
  221. </tr> 
  222. <tr align="left" valign="top"> 
  223. <td>Alamat</td> 
  224. <td><input name="user_address" type="text" value="<?php echo 
  225. $user_address; ?>" id="user_name6" style="width:180"></td> 
  226. </tr> 
  227. <tr align="left" valign="top"> 
  228. <td>Telepon</td> 
  229. <td><input name="user_telepon" type="text" value="<?php echo $user_telepon; ?>" 
  230. id="user_name7" style="width:180"></td> 
  231. </tr> 
  232. <tr align="left" valign="top"> 
  233. <td>Tempat Lahir</td> 
  234. <td><input name="tempat_lahir" type="text" value="<?php echo $tempat_lahir; ?>" 
  235. id="user_name8" style="width:180"> 
  236. </td> 
  237. </tr> 
  238. <tr align="left" valign="top"> 
  239. <td>Tanggal Lahir</td> 
  240. <td><select name="tgl_lahir"> 
  241. <?php 
  242. for ($t=1;$t<=31;$t++) { 
  243. $tt=date("d"); 
  244. $tt=$tgl_lahir; 
  245. if ($t == $tt) { echo "<option value=\"$t\" 
  246. selected>$t</option>"; } 
  247. else { echo "<option 
  248. value=\"$t\">$t</option>"; } 
  249. ?> 
  250. </select> <select name="bln_lahir"
  251. <?php 
  252. for ($t=1;$t<=12;$t++) { 
  253. $tt=date("m"); 
  254. $tt=$bln_lahir
  255. if ($t == $tt) { echo "<option value=\"$t\" 
  256. selected>$namaBulan[$t]</option>"; } 
  257. else { echo "<option 
  258. value=\"$t\">$namaBulan[$t]</option>"; } 
  259. ?> 
  260. </select> <select name="thn_lahir"
  261. <?php 
  262. for ($t=1940;$t<=date("Y")-10;$t++) { 
  263. $tt=date("Y")-22; 
  264. $tt=$thn_lahir
  265. if ($t == $tt) { echo "<option value=\"$t\" 
  266. selected>$t</option>"; } 
  267. else { echo "<option 
  268. value=\"$t\">$t</option>"; } 
  269. ?> 
  270. </select> </td> 
  271. </tr> 
  272. <tr align="left" valign="top"
  273. <td>Note</td> 
  274. <td><textarea name="note" id="note" style="width:180;height:70"><?php echo 
  275. $note; ?></textarea></td> 
  276. </tr> 
  277. <tr align="left" valign="top"
  278. <td>&nbsp;</td> 
  279. <td><input name="submitdaftar" type="submit" id="submitdaftar" value="D A F T 
  280. A R"></td> 
  281. </tr> 
  282. </table> 
  283. </form> 
  284. <script> 
  285. setTahunlulus(<?php echo date("Y"); ?>); 
  286. setMode(); 
  287. </script> 
  288. <?php 
  289. ?> 
  290. </td> 
  291. </tr> 
  292. </table> 
  293. <?php 
  294. else
  295. echo "<p align=center>Kamu sudah terdaftar dengan akses "
  296. $HTTP_SESSION_VARS["userakses"] ."! <p align=center> <a href=\"?logout=1\">Logout</a>"
  297. ?> 
Sekarang kita beralih ke login.php
  1. <?php 
  2. session_start(); 
  3. //your mysql access for host user password, database and table prefix 
  4. $prefix="phpschool_"
  5. $sqlhost="localhost"
  6. $sqluser="ipen"
  7. $sqlpasswd="n0limited"
  8. $sqldb="stieven"
  9. $conn=mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("<p align=center>CAN NOT 
  10. CONNECT TO MYSQL SERVER"); 
  11. mysql_query("use $sqldb"); 
  12. //Global variable register PHP 4.23 or more only 
  13. extract($_SERVER,"EXTR_PREFIX_SAME"); 
  14. extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME"); 
  15. extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME"); 
  16. extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME"); 
  17. $file_name=$HTTP_POST_FILES["file"]["name"]; 
  18. $file_size=$HTTP_POST_FILES["file"]["size"]; 
  19. $file_tmp=$HTTP_POST_FILES["file"]["tmp_name"]; 
  20. $file_type=$HTTP_POST_FILES["file"]["type"]; 
  21. $thisVersion=phpversion(); 
  22. $php_version=explode(".",$thisVersion); 
  23. $phpversion=$php_version[0] . $php_version[1]; 
  24. $gmt=date("Z"); 
  25. $namaBulan=array("null","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustu 
  26. s","September","Oktober","November","Desember"); 
  27. if ($logout) { 
  28. unset($HTTP_SESSION_VARS["userakses"]); 
  29. unset($HTTP_SESSION_VARS["userfullname"]); 
  30. unset($HTTP_SESSION_VARS["usermode"]); 
  31. unset($HTTP_SESSION_VARS["useremail"]); 
  32. unset($HTTP_SESSION_VARS["useradmin"]); 
  33. unset($HTTP_SESSION_VARS["userlastlogin"]); 
  34. if ($login) { 
  35. if (!$HTTP_SESSION_VARS["userakses"]) { 
  36. $getLogin=mysql_query("select * from ". $prefix ."user where 
  37. user_name='$user_name'"); 
  38. $thisLogin=mysql_fetch_array($getLogin); 
  39. if (!$thisLogin[user_name]) { $errorLogin="<script>alert('$user_name 
  40. tidak terdaftar')</script>"; } 
  41. else
  42. if ($user_pass == $thisLogin[user_pass]) { 
  43. $HTTP_SESSION_VARS["userakses"]=$thisLogin[user_name]; 
  44. $HTTP_SESSION_VARS["userfullname"]=$thisLogin[user_fullname]; 
  45. $HTTP_SESSION_VARS["usermode"]=$thisLogin[user_mode]; 
  46. $HTTP_SESSION_VARS["useremail"]=$thisLogin[user_email]; 
  47. $HTTP_SESSION_VARS["useradmin"]=$thisLogin[admin]; 
  48. $HTTP_SESSION_VARS["userlastlogin"]=$thisLogin[last_login]; 
  49. $HTTP_SESSION_VARS["userhostname"]=$thisLogin[user_hostname]; 
  50. $HTTP_SESSION_VARS["useripaddress"]=$thisLogin[user_ipaddress]; 
  51. $hostname=gethostbyaddr($REMOTE_ADDR); 
  52. mysql_query("update ". $prefix ."user set 
  53. user_hostname='$hostname', user_ipaddress='". $REMOTE_ADDR ."', last_login='"
  54. date("U") ."' where user_name='$user_name'"); 
  55. else { $errorLogin="<script>alert('$user_name password tidak 
  56. tepat')</script>"; } 
  57. ?> 
  58. <html> 
  59. <head> 
  60. <title>Untitled Document</title> 
  61. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
  62. </head> 
  63. <body> 
  64. <?php 
  65. echo $errorLogin
  66. if (!$HTTP_SESSION_VARS["userakses"]) { 
  67. ?> 
  68. <form name="form1" method="post" action=""
  69. <p align="center">Username<br> 
  70. <input name="user_name" type="text" id="user_name" style="width:180"
  71. <br> 
  72. Password <br> 
  73. <input name="user_pass" type="password" id="user_pass" style="width:180"
  74. </p> 
  75. <p align="center"
  76. <input type="submit" name="login" value="Submit" style="border-bottom:2px solid 
  77. #363635;border-right:2px solid #363635;border-top:2px solid #82817F;border-left:2px solid 
  78. #82817F;"
  79. </p> 
  80. </form> 
  81. <center><a href="daftar.php">Daftar 
  82. Disini</a></center> 
  83. <?php 
  84. else
  85. echo "Kamu sudah login dengan akses ". $HTTP_SESSION_VARS["userakses"] ." <p> <a 
  86. href=\"?logout=1\">Logout</a>"
  87. ?> 
  88. </body> 
  89. </html> 
Script source ini hasil modifikasi dari PHPSchool v.2.0 September 2003 Selamat mencoba!
Stieven R. Kalengkian stieven@kawanuanetworks.com
http://www.php.wox.org

Membuat Polling lewat PHP tanpa MySQL

Pertama buatlah file dengan nama pilihan.dat lewat text editor notepad. Dalam file tersebut masukan
data untuk pilihan polling, contoh :
AC Milan
Juventus
Inter Milan
AS Roma
Lazio
Fiorentina
Napoli
Lainnya
Buat juga satu file dengan nama hasil_polling.dat dan biarkan kosong, file ini untuk menyimpan hasil
dari polling.
Kemudian buat satu script php dalam file yang namanya polling.php
Berikut adalah script dalam polling.php

  1. <? 
  2. /* ini berfungsi untuk register global variable PHP 
  3. terutama mereka yang menggunakan register_global = off 
  4. bila register_global = on tidak perlu menggunkan script ini 
  5. untuk mengatur register_global periksa pada php.ini 
  6. /* 
  7. extract($_SERVER,"EXTR_PREFIX_SAME"); 
  8. extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME"); 
  9. extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME"); 
  10. extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME"); 
  11. ?> 
  12. <HTML> 
  13. <HEAD> 
  14. <TITLE>Polling</TITLE> 
  15. </HEAD> 
  16. <BODY> 
  17. <? 
  18. //variable file 
  19. $data_pilihan="pilihan.dat"; 
  20. $hasil_polling="hasil_polling.dat"; 
  21. if (!file_exists($hasil_polling)) { 
  22. $fopen=fopen($hasil_polling,"w+"); 
  23. fclose($hasil_polling); 
  24. } 
  25. /* gambar/image untuk hasil polling 
  26. kamu bisa mengganti sesuka kamu dengan syarat ukuran file harus lebar 100x10 
  27. pixel 
  28. */ 
  29. $gambar="persen.gif"
  30. $judul="Peraih scudetto 2000/2001 ?"
  31. //proses polling 
  32. $file_data=file("pilihan.dat"); 
  33. //tampilan form polling jika tombol poling belum di pilih 
  34. if ($go !=1) 
  35. echo "<center><i>$judul</i></center><br>\n"
  36. echo "<form method=post>"
  37. for ($i=0; $i<=count($file_data)-1; $i++) 
  38. echo "<input type=radio name=\"vote\" value=\"$i\"> 
  39. $file_data[$i]<br>\n"
  40. echo "<input type=hidden name=go value=1>"
  41. echo "<p><center><input type=submit value=Polling>"
  42. echo "</form>"
  43. echo "<a href='polling.php?result=1&go=1'>Hasil Polling</a></center>"
  44. else 
  45. //membaca hasil poling sebelumnya 
  46. $file_hasil=fopen($hasil_polling, "r"); 
  47. $baris=fgets($file_hasil, 255); 
  48. $pisah=explode("|", $baris); 
  49. fclose($file_hasil); 
  50. if ($result!=1) 
  51. //menambah dan memasukan nilai polling 
  52. $ficdest=fopen($hasil_polling, "w"); 
  53. for ($i=0; $i<=count($file_data)-1; $i++) 
  54. if ($i == $vote
  55. $pisah[$i]+=1; 
  56. fputs($ficdest, "$pisah[$i]|"); 
  57. fclose($ficdest); 
  58. $result=1; 
  59. if ($result==1) 
  60. //menampilkan hasil polling 
  61. echo "<table cellpadding=10>"
  62. echo "<tr><td align=center><font face=Verdana size=2>"
  63. echo "<i>Pilihan</i></font>"
  64. echo "</td><td align=center><font face=Verdana size=2>"
  65. echo "<i>%</i></font></td>"
  66. echo "<td align=center><font face=Verdana size=2>"
  67. echo "<i>Jumlah Pemilih</i></font></td></tr>"
  68. for ($i=0; $i<=count($file_data)-1; $i++) 
  69. $jumlah_pemilih+=$pisah[$i]; 
  70. for ($i=0; $i<=count($file_data)-1; $i++) 
  71. $persen[$i]=$pisah[$i]/$jumlah_pemilih*100; 
  72. echo "<tr><td><li><font face=Verdana size=2>"
  73. echo "$file_data[$i]</font></td><td align=left><font face=Verdana 
  74. size=2>"
  75. echo "<img src=\"$gambar\" height=10 width=$persen[$i] 
  76. align=middle>&nbsp;"
  77. printf("%.1f", "$persen[$i]"); 
  78. echo "%</font></td><td align=center><font face=Verdana size=2>"
  79. echo "$pisah[$i]</font>"
  80. echo "</td></tr>"
  81. echo "</table><p>"
  82. echo "<center>Total: $jumlah_pemilih pemilih</center>"
  83. ?> 
  84. </BODY> 
  85. </HTML> 

script ini hasil modifikasi dari buku Yudhi Purwanto, Pemrograman Web dengan PHP, Elex Media
Komputindo. 2001 dengan beberapa penyempurnaan berdasarkan penyesuaian keadaan sekarang.

Semoga Bermanfaat Smile

Validasi file exists untuk mendeteksi upload file yang sama

Pada artikel sebelumnya mengenai upload file dengan php, kini saya akan melanjutkan atau menambahkan fitur validasi dari file yang ingin kita upload.

Ok kita lanjutkan, dalam suatu aplikasi upload seringkali terjadi upload file dengan


nama yang sama, padahal isinya berbeda, hal ini tentu saja tidak diinginkan karena file
yang lama akan ditiban dengan file yang baru, ada beberapa mekanisme yang bisa
dipakai untuk menanganinya :
1. Mengganti nama upload file, dengan cara menambahkan perpaduan angka dan
huruf secara random.
2. Memunculkan peringatan bahwa file yang diupload memiliki nama yang sama.
Pada tutorial ini kita akan memakai cara yang kedua.
  1. <?php 
  2. //Membaca nama file 
  3. $file_name = $_FILES['fupload']['name']; 
  4. //Membaca ukuran file 
  5. $size = $_FILES['fupload']['size']; 
  6. //Membaca jenis file 
  7. $file_type = $_FILES['fupload']['type']; 
  8. //Source tempat upload file sementara 
  9. $source = $_FILES['fupload']['tmp_name']; 
  10. //Tempat upload file disimpan 
  11. $direktori = "files/$file_name"
  12. //Mengecek apakah file yang di upload sudah ada atau belum 
  13. if( file_exists ($direktori)) { 
  14. echo "file <strong>$file_name</strong> sudah ada, upload dengan nama lain 
  15. <br/> <a href=¥"form_upload.html¥">kembali</a>"
  16. //Keluar program 
  17. exit(); 
  18. } else
  19. //Memindahkan upload file dari direktori sementara ke tempat permanen 
  20. move_uploaded_file($source,$direktori); 
  21. //Menampilkan keterangan file 
  22. echo "<strong>Direktori sementara :</strong> ".$source."<br/>"
  23. echo "<strong>Folder :</strong> ".$direktori."<br/>"
  24. echo "<strong>Filename :</strong>".$file_name."<br/>"
  25. echo "<strong>Size : </strong>".$size." bytes <br/>"
  26. echo "<strong>File type : </strong>".$file_type."<br/>"
  27. echo "<strong>Filename :</strong>".$file_name."<br/>"
  28. ?> 

Perhatikan baris berikut

  1. //Mengecek apakah file yang di upload sudah ada atau belum 
  2. if( file_exists ($direktori)) { 

Function file_exists() berfungsi untuk mengecek nama file pada direktori tempat
penyimpanan upload file berada, jika ada maka fungsi if akan dijalankan dan
memunculkan pesan.

Semoga Bermanfaat Smile

Membuat Form Upload File PHP

Salah satu hal terpenting ketika mempelajari PHP adalah mengenai upload file dan berbagai macam mekanismenya, dalam tutorial dibawah kita akan belajar : 1. Membuat form untuk upload file 2. Membuat script upload sederhana 3. Menambahkan fitur file_exists untuk mendekti upload file yang sama 4. Menambahkan fitur filter untuk upload jenis file tertentu Membuat form untuk upload file (form_upload.html)
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" 
  6. /> 
  7. <title>Upload script</title> 
  8. </head> 
  9. <body> 
  10. <form action="upload.php" method="post" enctype="multipart/form-data" 
  11. name="form1" id="form1"
  12. <h3>Upload file :</h3> 
  13. <label> 
  14. <input type="file" name="fupload" /> 
  15. </label> 
  16. <p> 
  17. <label> 
  18. <input type="submit" name="upload" value="Upload" /> 
  19. </label> 
  20. </p> 
  21. </form> 
  22. </body> 
  23. </html> 
Tampilannya kuran lebih seperti ini :

Upload file :

Hal yang harus diperhatikan ketika membuat form untuk upload file ada pada baris :
  1. <form action="upload.php" method="post" enctype="multipart/form-data" 
  2. name="form1"
Lupa menulis atau menambahkan parameter enctype akan menyebabkan file tidak akan dapat di upload, hal ini seringkali melanda bagi programmer yang baru belajar PHP, semoga adanya pengingatan ini dapat mengurangi kesalahan ketika coding. Membuat script upload (upload.php) Perhatikan baris kode berikut :
  1. <form action="upload.php" method="post" enctype="multipart/form-data" 
  2. name="form1"

Setelah berhasil membuat file form_upload.html maka langkah selanjutnya adalah membuat file upload.php, nama file ini bebas, yang penting adalah samakan nama script yang akan kita buat nanti dengan nama yang ada di parameter action.

(upload.php)
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <title>Upload script</title> 
  6. </head> 
  7. <body> 
  8. <p> 
  9. <?php 
  10. //Membaca nama file 
  11. $file_name = $_FILES['fupload']['name']; 
  12. //Membaca ukuran file 
  13. $size = $_FILES['fupload']['size']; 
  14. //Membaca jenis file 
  15. $file_type = $_FILES['fupload']['type']; 
  16. //Source tempat upload file sementara 
  17. $source = $_FILES['fupload']['tmp_name']; 
  18. //Tempat upload file disimpan 
  19. $direktori = "files/$file_name"
  20. //Memindahkan upload file dari direktori sementara ke tempat permanen 
  21. move_uploaded_file($source,$direktori); 
  22. //Menampilkan keterangan file 
  23. echo "<strong>Direktori sementara :</strong> ".$source."<br/>"
  24. echo "<strong>Folder :</strong> ".$direktori."<br/>"
  25. echo "<strong>Filename :</strong>".$file_name."<br/>"
  26. echo "<strong>Size : </strong>".$size." bytes <br/>"
  27. echo "<strong>File type : </strong>".$file_type."<br/>"
  28. echo "<strong>Filename :</strong>".$file_name."<br/>"
  29. ?> 
  30. </p> 
  31. </body> 
  32. </html> 
Perhatikan baris kode berikut :
  1. //Tempat upload file disimpan 
  2. $direktori = "files/$file_name"

Script diatas adalah variable untuk menyimpan file yang akan di upload, jika belum buat folder “files”, maka disarankan buat terlebih dahulu, tidak ada peraturan khusus dalam penamaan folder.

Dibawah adalah pesan yang ditampilkan ketika upload berhasil.

image

Upload.php

Menampilkan Data Ke Samping di PHP

Huft . . . Akhirnya selesai sudah menyelesaikan tantangan dari salah satu teman di kampus.
Dia bertanya tentang menampilkan data dari database menggunakan php, yang menariknya adalah biasanya data yang ditampilkan berulang kebawah, namun kali ini ia ingin data yang ditampilkan berulang kesamping.
Nah bagaimana cara menampilkan data kesamping secara berulang???
OK,langsung aja kita buat studi kasus disini,dimana kalian buat satubuah database, dan satu buah table (misal:barang).
Struktur table sbb :
Field Type
char(12)
varchar(100)
text
int(11)
int(11)
varchar(100)

Lalu kalian buatlah satu file untuk koneksi nya:
  1. <?php  
  2. $server = "localhost";  
  3. $username = "root";  
  4. $password = "password";  
  5. $database = "nim_mhs";  
  6.   
  7. // Koneksi dan memilih database di server  
  8. mysql_connect($server,$username,$passwordor die("Koneksi gagal");  
  9. mysql_select_db($databaseor die("Database tidak bisa dibuka");  
  10. $koneksi=mysql_connect($server$username$password)  
  11. ?>  

Setelah kalian buat database dan table nya,sekarang saatnya membuat file tampil_barang.php nya.
Saat ini saya akan membuat dua versi untuk menampilkan datanya, versi pertama adalah dengan menampilkan data kebawah seperti biasa, dan kdua menampilkan data kesamping seperti permintaan teman saya ini.

Kasus pertama (Menampilkan data ke bawah):
Script
  1. <p><strong>DATA BARANG</strong></p>  
  2.  <br>   
  3. <table width="100%" border="1">  
  4.   <tr bgcolor="#99FF00">   
  5.     <th>NOMOR</th>  
  6.     <th>ID BARANG</th>  
  7.     <th>NAMA BARANG </th>  
  8.     <th>DESKRIPSI</th>  
  9.     <th>HARGA BARANG</th>  
  10.     <th>STOK BARANG</th>  
  11.     <th>AKSI</th>  
  12. </tr>  
  13. <?php  
  14.     include "koneksi.php";  
  15.     $no=1;  
  16.     $tampil = mysql_query("SELECT * FROM barang order by idbarang");  
  17.     while($r=mysql_fetch_array($tampil)){  
  18.     echo" 
  19.     <tr> 
  20.         <td>$no</td> 
  21.         <td>$r[0]</td> 
  22.         <td>$r[1]</td> 
  23.         <td>$r[2]</td> 
  24.         <td>$r[3]</td> 
  25.         <td>$r[4]</td> 
  26.         <td> 
  27.         <a href='detailbarang.php?idbarang=$r[0]'>DETAIL</a> 
  28.         <a href='editbarang.php?idbarang=$r[0]'>EDIT</a> 
  29.         <a href='hapusbarang.php?idbarang=$r[0]'>HAPUS</a> 
  30.         </td>    
  31.     </tr>";  
  32.     $no++;  
  33.     }  
  34. ?>  
  35. </table>  
  36. <a href="formbarang.php">Input Data Produk lagi ...</a>  
Hasilnya akan tampil sbb:
DATA BARANG


NOMOR ID BARANG NAMA BARANG DESKRIPSI HARGA BARANG STOK BARANG AKSI
1 2121 barang2 isi dari deskripsi barang ke 2 25000 25
DETAIL
EDIT
HAPUS
2 BR002 LANGKAH MASTER TI PHP KARYA LUKMANUL HAKIM 50000 20
DETAIL
EDIT
HAPUS
Input Data Produk lagi ...

Lalu kasus kedua yaitu menampilkan data kesamping:
Script
  1. <p><strong>DATA BARANG</strong></p>  
  2.  <br> <table height="91" border="0">  
  3.    <tr><td>  
  4. <table width="100%" border="0">  
  5.   <tr>   
  6.     <td bgcolor='#99FF00'>NOMOR</td>  
  7.     </tr>  
  8.     <tr>  
  9.     <td>ID BARANG</td>  
  10.     </tr>  
  11.     <tr>  
  12.     <td bgcolor='#99FF00'>NAMA BARANG </td>  
  13.     </tr>  
  14.     <tr>  
  15.     <td>DESKRIPSI</td>  
  16.     </tr>  
  17.     <tr>  
  18.     <td bgcolor='#99FF00'>HARGA BARANG</td>  
  19.     </tr>  
  20.     <tr>  
  21.     <td>STOK BARANG</td>  
  22.     </tr>  
  23.     <tr>  
  24.     <td bgcolor='#99FF00'>AKSI</td>  
  25.     </tr>  
  26. </table></td>  
  27. <?php  
  28.     include "koneksi.php";  
  29.     $no=1;  
  30.     $tampil = mysql_query("SELECT * FROM barang order by idbarang");  
  31.     while($r=mysql_fetch_array($tampil)){  
  32.     echo"<td><table border='0'><tr> 
  33.         <td bgcolor='#99FF00'>$no</td></tr><tr> 
  34.         <td>$r[0]</td></tr><tr> 
  35.         <td bgcolor='#99FF00'>$r[1]</td></tr><tr> 
  36.         <td>$r[2]</td></tr><tr> 
  37.         <td bgcolor='#99FF00'>$r[3]</td></tr><tr> 
  38.         <td>$r[4]</td></tr><tr> 
  39.         <td bgcolor='#99FF00'> 
  40.         <a href='detailbarang.php?idbarang=$r[0]'>DETAIL</a> 
  41.         <a href='editbarang.php?idbarang=$r[0]'>EDIT</a> 
  42.         <a href='hapusbarang.php?idbarang=$r[0]'>HAPUS</a> 
  43.         </td></tr></table></td>  
  44.     ";  
  45.     $no++;  
  46.     }  
  47. ?>  
  48. </tr></table>  
  49. <a href="formbarang.php">Input Data Produk lagi ...</a>  
Dan Hasilnya:

Dari hasil perbandingan diatas dapat kita lihat perbedaan pada struktur tampilannya,pada file yg pertama (menampilkan kebawah) hanya berbentuk satu buah table.
Namun pada file kedua(menampilkan kesamping) terdapat beberapa table untuk mengatur layout dari tampilan data nya...
Saya rasa cukup jelas sampai sini untuk penjelasannya,jika masih ada yang belum di fahami.silahkan tinggalkan komentar kalian.
Semoga bermanfaat :)

Klik Like/share jika anda menyukai tulisan Share