Validate Checkbox

Friday, October 18, 2013

Sama seperti isu sebelum ini. Ini validate di mana user perlu pilih sekurang-kurangnya satu checkbox.

Masalah yang sama timbul. Jika satu sahaja data, array tidak berjalan. Jadi, check dahulu samada array cuma satu data sahaja atau lebih.


 <html>  
  <head>  
   <title>Mi-Scramble</title>  
 <SCRIPT LANGUAGE="JavaScript">  
 <!-- Begin  
 function validatePwd() {  
 if(document.getElementsByName('userassign[]').length == 1)  
 {  
  if(document.myForm.userassign.checked)  
  {  
   return true;  
  } else {  
   alert ("You must select minimum one user! ");  
   return false;  
  }  
 } else {  
  var flag = 0;  
  for (var i = 0; i< document.getElementsByName('userassign[]').length; i++) {  
  if(document.myForm["userassign[]"][i].checked){  
   flag ++;  
   }  
  }  
  if (flag < 1) {  
  alert ("You must select minimum one user!");  
   return false;  
  }  
  return true;  
  }  
 }  
 </script>  
 </head>  
 <body>  
 <form action="assignuserupd.php" method="post" name=myForm onSubmit="return validatePwd()">  
     <table class="responsive table table-striped">  
      <thead>  
      <tr>  
       <th style="">User Name</th>                
       <th>Action</th>  
      </tr>   
      </thead>  
      <tbody>  
 <?php   
 $sqlrtbl="SQL";  
 $resulrtbl=pg_query($sqlrtbl);  
 while($rowr = pg_fetch_assoc($resulrtbl))  
 {  
 ?>           
      <tr>  
       <td><?php echo $rowr['username']; ?></td>     
       <td>  
        <input type="checkbox" name="userassign[]" value="<?php echo $rowr['username']; ?>">  
       </td>  
      </tr>  
 <?php  
 }   
 ?>    
      <tr>  
       <td colspan="2" align="right">  
         <input type="submit" value="Submit" class="btn btn-primary">  
       </td>  
      </tr>   
     </tbody>  
     </table>  
 </form>  
  </body>  
 </html>  

Sourcecode for blogspot http://codeformatter.blogspot.com/

Validate Radio Button

Sekiranya cuma ada 1 sahaja radio button, array tak jalan. Tak boleh nak check guna kaedah array. Jadi, pisahkan. Jika jumpa satu, check seperti biasa, jika lebih, baru buat checking guna array.

if(document.getElementsByName('namatbl').length == 1){ }else { }

Dalam isu ni, user mesti pilih satu radio button.

 <html>  
  <head>  
   <title>Mi-Scramble</title>  
 <SCRIPT LANGUAGE="JavaScript">  
 <!-- Begin  
 function validatePwd() {  
 if(document.getElementsByName('namatbl').length == 1)  
 {  
  if(document.myForm.namatbl.checked)  
  {  
   return true;  
  } else {  
   alert ("You must select one table! ");  
   return false;  
  }  
 } else {  
  var flag = 0;                       
  for (var i = 0; i< document.myForm.namatbl.length; i++) {     
  if(document.myForm.namatbl[i].checked){  
   flag++;   
   }  
  }  
  if (flag < 1) {  
   alert ("You must select one table! ");  
   return false;  
  }  
  return true;  
  }  
 }  
 </script>  
 </head>  
 <body>  
 <form action="assignuserselect.php" method="post" name=myForm onSubmit="return validatePwd();">  
     <table class="responsive table table-striped">    
      <tr>  
       <th>Server</th>   
       <th>Database</th>  
       <th>Table</th>  
       <th>Action</th>       
      </tr>  
 <?php   
 $sqlrtbl="SQL";  
 $resulrtbl=pg_query($sqlrtbl);  
 while($rowr = pg_fetch_assoc($resulrtbl))  
 {  
 ?>   
      <tr>  
       <td><?php echo $rowr['server']; ?></td>   
       <td><?php echo $rowr['dbname']; ?></td>  
       <td><?php echo $rowr['dbtbl']; ?></td>  
       <td><input type="radio" name="namatbl" value="<?php echo $rowr['dbtbl']; ?>"></td>                
      </tr>    
 <?php  
 }  
 if(!$namatable)  
 {  
 ?>   
      <tr>  
       <td colspan="4"><font color="red"><center>No scrambled table from you.</center></font></td>              
      </tr>    
 <?php  
 }  
 ?>  
      <tr>  
       <td>&nbsp;</td>   
       <td>&nbsp;</td>  
       <td>&nbsp;</td>  
       <td>  
       <?php if($namatable) { ?>  
        <input class="btn btn-primary" type="submit" value="Submit">  
       <?php } ?>  
       </td>                
      </tr>    
     </table>  
 </form>  
  </body>  
 </html>  

Sourcecode for blogspot http://codeformatter.blogspot.com/

MySQL 5.5 Encode Base64

Monday, July 01, 2013

Seringkali pengguna MySQL version 5.5 dan ke bawah mengalami masalah apabila sesuatu data itu perlu diencode atau sebaliknya. Masalah MySQL tidak menyediakan fungsi tersebut.

Secara defaultnya ketika ini, apabila kita membuat installation, MySQL akan memberikan kita versi 5.5.

Jika mahu menggunakan fungsi encode base64, MySQL sediada perlu ditukar kepada MySQL version 5.6.

Ada sesetengah orang, mereka mahu menggunakan MySQL version sedia ada. Jadi, mereka perlu menambah function tersebut ke dalam application MySQL.

Kita tidak perlu susah berfikir bagaimana untuk membuat coding dan compile ke dalam aplikasi tersebut. Guna sahaja apa yang telah disediakan oleh Y.Kentaro ini.

Ini Sesuai untuk pengguna Linux.

Cara untuk install. Pada paparan terminal, download dan compile code tersebut.

 $ git clone https://github.com/y-ken/mysql-udf-base64.git  
 $ cd mysql-udf-base64  
 $ gcc -Wall -fPIC -I/usr/local/include -shared base64.c -o base64.so  
 $ sudo install -m 755 base64.so `mysql_config --plugindir`  


Selesai install, kita perlu cipta function tersebut ke dalam MySQL.

Masuk pula ke dalam application.

 mysql> CREATE FUNCTION base64encode RETURNS STRING SONAME 'base64.so';  
 mysql> CREATE FUNCTION base64decode RETURNS STRING SONAME 'base64.so';  


Selepas itu, kita boleh cuba melihat keberkesanannya.

 mysql> SELECT base64encode(nama) FROM tablesample;  


Sedikit Masalah Setelah dicuba, memang ianya berjaya. Tetapi masalah timbul, bila proses ini dilakukan bersama dengan encryption aes, hasilnya tidak dapat seperti data asal.

Contoh Encode:
 select base64encode(aes_encrypt('firdaus', 111)) from dual;  

 Result:   IcCTWM8Recp QE HRTBQ==   

Decode:
 select base64encode(aes_encrypt(' IcCTWM8Recp QE HRTBQ==', 111)) from dual;  

 Result: WC8ARIk1 q5+ gVKcUZcSQCU mEkCQAN b9x NR8LvA=  


Mungkin terdapat beberapa perkara yang saya terlepas pandang. Jadi, masalah ini akan saya lihat kemudian.


Peringatan: Semasa kita buat installation MySQL, kita perlu install MySQL library untuk development. Jika tidak, compilation akan gagal dan keluar error.
untuk install, hanya dapatkan sahaja dari repository.
 $ apt-get install libmysqlclient-dev  

Rujukan: https://github.com/y-ken/mysql-udf-base64

Form Validation jQuery Ringkas

Saturday, February 09, 2013

Ini contoh mudah bagaimana hendak membuat semakan sama ada input dimasukkan atau tidak pada form menggunakan jquery. Kita anggap html di bawah sudah berada di dalam framework bootstrap. Jadi <div>, <class> semua tu tak perlu diambil kisah.

<html>
<head>
<title>Test</title>

<script type="text/javascript" src="script/jquery-x.x.x.min.js"></script>
<script type="text/javascript">
function checklogin() {
    var userpass,usernama,output = true;

 usernama = document.logmasuk.myusername;
 userpass = document.logmasuk.mypassword;
 $("#userpassMessage").text("").removeClass("label label-danger");
 $("#userpassMessage").text("").removeClass("label label-danger");

    if(!usernama.value) {
        usernama.focus();
        $("#myusername").innerHTML = "required";
        $("#usernamaMessage").text("Masukkan username!").toggleClass("label label-danger");
        output = false;
    }   
    if(!userpass.value) {
        userpass.focus();
        $("#mypassword").innerHTML = "required";
        $("#userpassMessage").text("Masukkan password!").toggleClass("label label-danger");
        output = false;
    }   
    return output;
}
</script> 
</head>
<body>
<form action="checklogin.php" method="post" name="logmasuk" onSubmit="return checklogin();">

 <div class="input-icon right">
  <i class="fa fa-user"></i>
  <input id="myusername" type="text" placeholder="username" class="form-control" name="myusername" />
  <span id="usernamaMessage"></span>
 </div>    

 <div class="input-icon right">
  <i class="fa fa-lock"></i>
  <input id="mypassword" type="password" placeholder="password" class="form-control" name="mypassword" />
  <span id="userpassMessage"></span>
 </div>

 <div class="col-lg-9">
  <button type="submit" class="btn btn-default" name="Submit">Sign In</button>
 </div>

</form>
</body>
</html>

Panggil file js jquery pada header html. Ikutlah versi jquery mana yang disukai tapi pastikan ianya berjalan. Lagi baik yang terkini.

<script type="text/javascript" src="script/jquery-x.x.x.min.js"></script>

Cipta function untuk buat semakan. Sebagai contoh, function checklogin() {}. Function ini boleh dibuat di dalam <head> mahupun <body>. Apa yang penting, file jquery.js mestilah di dalam head, bukan body. Di dalam function ini, letak code untuk buat semakan.

Declare siap-siap dan dapatkan valuenya dengan memanggil data dari form. Dalam jquery, kita gunakan document, diikuti dengan nama form.

var userpass,usernama,output = true;
usernama = document.logmasuk.myusername;
userpass = document.logmasuk.mypassword;

Dalam jquery, bila kita guna tanda ni #,ia merujuk kepada ID sesuatu element dalam html tersebut. Jika dilihat pada code, kita guna <input id="myusername"... dan dalam js kita panggil semula menggunakan $("#myusername")...

removeClass digunakan pada awal code supaya javascript bersihkan dulu jika ada error sebelum ini yang telah terpapar.

Bagi keterangan lanjut dalam hal ini, rujuk jQuery Selectors

Ini digunakan bagi memasukkan text dan class ke dalam html <span id="usernamaMessage">.

$("#usernamaMessage").text("Masukkan username!").toggleClass("label label-danger");

Di dalam jQuery, biasakan diri menggunakan id berbanding name. Selain untuk elemen form, id juga boleh digunakan untuk elemen-elemen lain dalam html seperti <p>, <span>, <h1> dan lain-lain. Dan jquery boleh bermain dengan semua ini, bukan dengan form sahaja.