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.

MySQL, dari localhost kepada IP Address

Thursday, August 02, 2012

Situasi
Install MySQL pada localhost, tetapi apabila hendak digunakan, kita dikehendaki menggunakan alamat IP, bukan localhost.

Sesetengah tempat, mereka tidak benarkan menggunakan perkataan 'localhost'. Mungkin nampak tidak secure atau tidak professional.

Penyelesaian
Di sini kita jadikan PHP sebagai contoh untuk diuji. Manakala IP localhost adalah 12.34.56.78.

Biasanya kita guna.

 $con = mysql_connect("localhost","loginsaya","mypassword");  


Tetapi dikehendaki menggunakan IP.
 $con = mysql_connect("12.34.56.78","loginsaya","mypassword");  


Apabila dijalankan connection seperti di atas, kita akan dapat error sebegini
 Could not connect: Can't connect to MySQL server on '12.34.56.78' (111)  


Itu bermakna, kita perlu setting alamat IP localhost kita pada setting MySQL.

Jadi, update file my.cnf. Lokasinya perlu dicari. Biasanya ada di /etc/. Dalam kes saya, ia ada di /etc/mysql/my.cnf
 vi /etc/mysql/my.cnf  


Cari setting bind-address, dan masukkan IP untuk localhost tersebut. Setting ini berada di bahagian [mysqld]. Secara default, bind-address = 127.0.0.1
 [mysqld]  
 bind-address      = 12.34.56.78  


Save. Kemudian, restart mysql.
 /etc/init.d/mysql restart  


Kemudian, cuba jalankan semula. Done.

Masalah lagi
Sesetengah keadaan, masih juga belum boleh membaca database. Keluar error sebegini pula.
 Could not connect: Host '10.1.9.79' is not allowed to connect to this MySQL server  


Ini bermakna, apabila user "loginsaya" itu menggunakan IP Address, tiada privilege untuk akses database tersebut. Berikan privilege.

Masuk ke screen database dan jalankan script grant privilege ini.
 GRANT ALL PRIVILEGES ON  
 namaDatabase.*   
 TO  
 'loginsaya'@'%';  
 FLUSH PRIVILEGES;  


Jika database tersebut tidak menggunakan password, privilege di atas adalah betul. Jika tidak, ia akan keluar error sebegini.
 Could not connect: Access denied for user 'loginsaya'@'12.34.56.78' (using password: YES)  


Jalankan semula script di atas, dengan menambah perkataan identified by password.

 GRANT ALL PRIVILEGES ON  
 namaDatabase.*   
 TO  
 'loginsaya'@'%'  
 IDENTIFIED BY 'mypassword';  
 FLUSH PRIVILEGES;  


Done.

Ms-Excel Cipta Query Bagi Data Berulang

Saturday, January 21, 2012

Jika ada sedikit data dalam excel, mahu jadikan SQL query.


="INSERT INTO mg_senarai_laporan VALUES ('', '"& A1 &"', '"& B1 &"');"


Buka Dan Tutup Pop-up Browser

Wednesday, October 20, 2010

Apabila kita perlu membuka page baru tanpa menganggu page sedia ada, biasanya kita akan menggunakan kaedah pop-up. Di bawah adalah contoh mudah bagi situasi sebegini.

Secara ringkasnya, terdapat dua page iaitu main page (index.html) dan child page (test.html). Main page akan berikan akses untuk buka page secara popup, manakala child bersedia untuk ditutup tanpa menganggu page utama.

Pada page index.html, gunakan window.open() dengan nilai atribut _blank supaya ia buka page baru. Nilai height dan width juga ikut saiz screen sedia ada. Jadi, ia akan buka fullscreen. Jika mahu setkan pada saiz tertentu, masukkan sahaja nilai yang kita mahu. Sebagai contoh, height=570,width=520. Ada beberapa lagi spec yang boleh dimasukkan seperti scrollbars, location dan lain-lain.

/* index.html */
<!DOCTYPE html>
<html>
<head>
</head>

<body>
<p>Ini adalah parent page.</p>
<a onclick="window.open('test.html', '_blank', 'height='+screen.height+', width='+screen.width);">Buka Page</a>
</body>
</html>

Pada child page iaitu test.html, sediakan akses untuk menutup page dirinya sendiri iaitu menggunakan code self.close().

/* test.html */
<html>
<head>
</head>

<body>
<p>Ini adalah child page.</p>
<input type="button" value="Close this window" onclick="self.close()"><br>
</body>
</html> 

Bagi arahan self.close() ini, ia hanya berfungsi sekiranya ia dipanggil melalui parent page. Jika dibuka secara terus dengan menaip di url, ianya tidak berfungsi.

Basic HTML Table Using PHP

Monday, September 06, 2010

Update this post

_______________________________________

 <?php  
 $kira = 13;  
 $j = 1;  
 ?>  
 <table width="20%" border="1">  
 <tr>  
 <?php  
 for ($i=1; $i<=$kira; $i++)  
 {  
 ?>  
 <td><? echo $i; ?></td>  
 <?php  
 if ($i%4 == 0)  
 {  
 echo "</tr><tr>";  
 $j++;  
 }  
 }  
 //bahagian bawah ini tambahan kemudian  
 //variable $j, $patut dan $perlu adalah tambahan dari post yang lepas  
 $patut = $j * 4;  
 $perlu = $patut - $i + 1;  
 for ($i=1; $i<=$perlu; $i++)  
 {  
 ?>  
 <td><? echo $i; ?></td>  
 <?php } ?>  
 </tr>  
 </table>  

Carian String Dalam File di Linux

Wednesday, June 23, 2010

Kadang-kadang kita lupa code yang kita buat berada di dalam file yang mana satu. Lebih-lebih lagi bila file code terlalu banyak. Ada pelbagai cara untuk mengatasi masalah ini.

Jika menggunakan Notepad++, Sublime Text, atau apa-apa text editor, kita boleh buat search merentasi file. Jika di windows, pada command prompt, guna findstr.

Dalam ni kita fokus jika menggunakan linux. Jika dalam linux, gunakan arahan grep. Grep ini banyak kegunaan untuk buat carian. Boleh cari menggunakan regular expression, cari bilangan baris code dan macam-macam lagi.

Bagi kes sekadar nak cari perkataan, gunakan arahan grep diikuti perkataan yang hendak dicari dan lokasi senarai file.

Sebagai contoh, kita mahu cari perkataan "pengguna" di dalam semua file 'php' yang berada di /var/www/html/sistembaru/.

# grep --color -R "pengguna" /var/www/html/sistembaru/*.php

Tetapi jika perkataan tersebut menggunakan simbol-simbol yang sedia digunakan oleh regular-expression, kita tidak boleh menggunakan tanda ", kita perlu tukar guna tanda '. Tanda ' akan ignore itu sebagai regular expression.

# grep --color -R 'currencymyr($strn)' /var/www/html/sistembaru/*.php

Hasil dari carian di atas, akan paparkan code panjang lebar walaupun perkataan yang dijumpai itu satu sahaja. Bagi mengatasi masalah ini, kita minta supaya dipaparkan satu baris keputusan sahaja, disertakan dengan pemberitahuan line keberapa perkataan itu dijumpai. Gunakan -n bagi tujuan tersebut.

# grep --color -R -n 'currencymyr($strn)' /var/www/html/sistembaru/*.php

PHP if Lebih Ringkas

Thursday, June 17, 2010

Memendekkan if statement. Biasanya kita gunakan seperti ini.

<?PHP
if($condition){
        $nilai="1";
    } else {
       $nilai="2";
}
?>

 

Tukarkan begini pula. Lebih ringkas dan menjimatkan byte code.

<?PHP
/*if statement yang pendek*/
($condition)? $nilai="1" : $nilai="2";
 
/*if statement yang lebih pendek*/
$nilai=($condition)? "1" : "2";
?>

Copy table

Monday, May 03, 2010

select rowid, tsirms217400.* from tsirms217400

select * from tsirms203400

insert into TSIRMS217400 (BCODE, LOTNO, QUANTITY,TIME_STAT, USRNAME,
STATUS, TIME_UPD)
select BCODE, LOTNO, QUANTITY, TIME_STAMP, 'MMD', '1', sysdate
from tsirms203400
where rowid='AAAzHVAAhAAAFiRAAA'

PHP Function Koma Pada Nombor

Tuesday, April 06, 2010

Apabila kita mahu gunakan nombor sebagai currency, boleh sahaja kita panggil menggunakan fungsi yang telah disediakan oleh PHP. Tetapi post ini sekadar berkongsi bagaimana menggunakan function yang dicipta sendiri.

Apabila kita diberi nilai matawang dalam bentuk dua titik perpuluhan, tanpa koma bagi setiap ribu, juta dan billion, kita buat sahaja function sendiri untuk memaparkan koma tersebut. Kalau tidak, gunakan sahaja function yang PHP sediakan seperti money_format atau formatCurrency.

<?php
function currencymyr($strn)
{
 $str = strrev($strn);
 $arr1 = str_split($str);
 $nilai = "";
 for($i=0; $i<count($arr1); $i++)
 {
  if(($i === 6) || ($i === 9) || ($i === 12)) { $nilai .= ","; }
  $nilai .= $arr1[$i];
 }
 $nilai = strrev($nilai);
 return $nilai;
}

$str2 = "34888373785.09";
echo currencymyr($str2); //34,888,373,785.09
?>

Cipta satu function, kemudian panggil semula apabila hendak menggunakannya. Seperti contoh di atas, kita akan dapat hasil koma setiap selang 3 aksara pada nombor yang diberi. Pada ketika $i=6 baru kita mula menambah koma, kerana ketika $i=2 sudah ada titik perpuluhan.

Dalam PHP, fungsi strrev untuk reverse string, manakala fungsi str_split untuk memecahkan setiap huruf di dalam satu perkataan menjadi satu kumpulan array.

Sebenarnya terpulang pada kita nak buat macam mana, asalkan hasilnya seperti yang kita mahu. Seperti contoh di atas, tidak semestinya perlu guna strrev, boleh sahaja gunakan array_reverse selepas guna str_split. Atau tak perlu reverse array, gunakan sahaja kaedah for($i=count($arr1); $i>=0; $i=$i-1) dan sebagainya.

Code Kegunaan Blog

Friday, March 12, 2010

Jika mahu highlight code, dalam blogspot boleh diletakkan dalam <code> dan tutup semula dengan </code>.

Jika tidak menarik, boleh ditambah css sedikit untuk lebih cantik. Contoh:

<code style="padding: 2px 4px; font-size: 90%; color: #c7254e; white-space: nowrap; background-color: #f9f2f4; border-radius: 4px;">Letak code</code>

Contoh:

<code style="padding: 2px 4px; font-size: 90%; color: #c7254e; white-space: nowrap; background-color: #f9f2f4; border-radius: 4px;"><div>bla bla bla</div>, <class>yada yada yada</class></code>

Hasilnya seperti di bawah:

<div>bla bla bla</div>, <class></class></code>

Gunakan simbol html di bawah untuk kes yang memerlukan simbol pembuka dan penutup kod.

&lt; = < 
&gt; = >

Tempoh XP Beroperasi

Tuesday, September 01, 2009

Untuk melihat detail berkenaan komputer (OS adalah XP Professional), pada command prompt, taip systeminfo.

cmd> systeminfo

PHP Array Get Data using Post

Wednesday, May 13, 2009

Check page 1 dan page 2
1. page satu, buat form dan collect data masuk ke array
2. page dua, dapatkan data yang ada dalam page satu.


SQL Select Limit

Wednesday, March 18, 2009

// mysql
select col from tbl limit 20;

// Oracle
select col from tbl where rownum<=20;

// Microsoft SQL
select top 20 col from tbl;

PHP Array Checkbox

Tuesday, December 23, 2008




function CheckAll(chk)
{
var chk = document.myform['check[]'];
for (var i = 0; i < chk.length; i++)
{ chk[i].checked = true ; }
}

function UnCheckAll(chk)
{
var chk = document.myform['check[]'];
for (i = 0; i < chk.length; i++)
{ chk[i].checked = false ; }
}

form name="myform"
while {
input type="checkbox" name="check[]" value="1"
}

input type="button" name="Check_All" value="Check All" onClick="CheckAll(document.myform.check)"

input type="button" name="Un_CheckAll" value="Uncheck All" onClick="UnCheckAll(document.myform.check)"

Oracle Manage Date

Tuesday, September 23, 2008

Basic knowledge

1. convert ke Date Format




2. convert ke Format Date dengan tolak 6 bulan sebelum tarikh asal.

Windows Default Icon

Tuesday, September 02, 2008

Windows : Places to Look for Icons

Everything
C:\Windows\System32\shell32.dll

Computers
C:\Windows\explorer.exe

Communication
C:\Windows\System32\hticons.dll

Household
C:\Windows\System32\pifmgr.dll

Folders
C:\Windows\System32\syncui.dll

Old programs
C:\Windows\System32\moricons.dll

Link: http://www.uv.tietgen.dk/staff/mlha/PC/Soft/WIN/App/icon/index.html

MS-Excel List Item

Wednesday, August 13, 2008

Basic Tutorial.

Nak dapatkan list sebegini kat dalam Ms-Excel.


1.


2.


3.



Taddaaaaa..