Praktikum PHP6
Assalamualaikum.. Kali ini saya akan berbagi tutorial praktikum PHP 6 tentang Validasi Form dengan PHP. Dan yang akan saya bahas adalah tentang membuat validation form menggunakan session ditambah dengan validasi captcha.
Langsung saja seperti biasa, buka dreamweaver CS6.
Langsung saja seperti biasa, buka dreamweaver CS6.
1. Pertama buat captcha terlebih dahulu untuk ditambahkan pasa validation form nanti. CAPTCHA atau Captcha adalah suatu bentuk uji tantangan-tanggapan (challange-response test) yang digunakan dalam perkomputeran untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer. Proses ini biasanya melibatkan suatu komputer (server) yang meminta seorang pengguna untuk menyelesaikan suatu uji sederhana yang dapat dihasilkan dan dinilai oleh komputer tersebut. Karena komputer lain tidak dapat memecahkan CAPTCHA, pengguna manapun yang dapat memberikan jawaban yang benar akan dianggap sebagai manusia.
2. Buat skrip untuk kode captcha nya :
<?php
session_start();
$alphaNumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$random = substr(str_shuffle($alphaNumeric),0,5);
$image = imagecreatefromjpeg("bg_captcha.jpg");
$textcolor = imagecolorallocate ($image, 0, 0, 0); //hitam
imagestring ($image, 5, 5, 8, $random, $textcolor);
$_SESSION['image_random_value']=md5($random);
//header("Expires: MOn, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s"). " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>
3. Setelah captcha dibuat, kemudian buatlah form.php dimana form.php adalah halaman untuk memasukkan inputtan dimana inputan itu nanti akan di resume pada halaman action.php. Catatan: pada form.php nanti akan muncul pesan error jika inputan masih kosong atau tidak esuai dengan format yang ditentukan. Berikut adalah skrip nya :
<?php
session_start();
if(isset($_SESSION['error'])){
$error = $_SESSION['error'];
$true = $_SESSION['true'];
$_POST = $_SESSION['post'];
unset ($_SESSION['error']);
unset ($_SESSION['true']);
unset ($_SESSION['post']);
}
if (empty($nama) || empty($gender) || empty($email) || empty($alamat) || empty($tempat) || empty($email) || empty($pwd) || empty($agama) || empty($noHP) || empty($captcha) || empty($hari) ||empty($bualan) ||empty($bulan) ){
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="button.css" />
<title>Formulir</title>
</head>
<body style="background-image:url(blue.jpg); background-repeat:repeat;">
<form action="action.php" name="form1" method="post">
<table cellspacing="0" cellpadding="4" bgcolor="#FFFFFF" border="0" width="800" height="440" background="4.png" Style='border-radius:20px;border-color:white;
box-shadow: 0 0 5px 5px black; position:fixed;left:350px;top:55px;'>
<tr>
<td rowspan="10" width="250" background="4.png"=' border-top-left-radius:20px; border-bottom-left-radius:20px '><center><img src="logotelkom.jpg" width="200" 0height="200" /></center></td>
<td colspan="3" background="4.png" bgcolor="#CCCCCC" Style=' border-top-right-radius:20px; '>
<center><strong><font color="#0000CC" size="+2">INPUTAN BIODATA</font></strong></center>
</td>
</tr>
<tr>
<td> Nama Lengkap</td>
<td width="1"><center>:</center></td>
<td><input type='text' name="nama" size="40" placeholder="Nama Lengkap" value="<?php echo isset($_POST['nama']) ? $_POST['nama'] : ''; ?>" />
<font size="-1" color="red"><?php echo isset($error['nama']) ? $error['nama'] : '';?></font>
<font ><?php echo isset ($true['nama'])? $true['nama'] : '';?></font>
</td>
</tr>
<tr>
<td> Jenis Kelamin</td>
<td><center>:</center></td>
<td>
<input type="radio" name="gender" value="L" <?php echo isset($_POST['gender']) ? $_POST['gender']=='L' ? ' checked' : '': ''; ?>/>Laki - Laki
<input type="radio" name="gender" value="P" <?php echo isset($_POST['gender']) ? $_POST['gender']=='P' ? ' checked' : '': ''; ?>/>Perempuan
<font size="-1" color="red"><?php echo isset($error['gender']) ? $error['gender'] : '';?></font>
<?php echo isset ($true['gender'])? $true['gender'] : '';?>
</td>
</tr>
<tr>
<td>TTL</td>
<td><center>:</center></td>
<td>
<input type='text' placeholder="Tempat" name="tempat" size="8" value="<?php echo isset($_POST['tempat']) ? $_POST['tempat'] : ''; ?>" />
<font size="-1" color="red"><?php echo isset($error['tempat']) ? $error['tempat'] : '';?></font>
<font ><?php echo isset ($true['tempat'])? $true['tempat'] : '';?></font>
<?php
$bulan=array("Januari" ,"Februari", "Maret" ,"April", "Mei", "Juni",
"Juli", "Agustus", "September", "Oktober", "November", "Desember");
echo '<select name="hari" >';
echo "<option value=hari>Hari</option>";
$hari=1;
$haripilih = isset($_POST['hari']) ? $_POST['hari'] : "hari";
while($hari<=31) {
echo "<option value=$hari";
echo $hari == $haripilih ? " selected" : "";
echo '>'.$hari.'</option>';
$hari++;
}
echo '</select>';
echo '<select name="bulan">';
echo "<option value=bulan>Bulan</option>";
$jumlah=count($bulan);
$bulanpilih = isset($_POST['bulan']) ? $_POST['bulan'] : "bulan";
for($i=0; $i<$jumlah ; $i++){
echo "<option value=$bulan[$i]";
echo $bulan[$i] == $bulanpilih ? " selected" : "";
echo '>'.$bulan[$i].'</option>';
}
echo '</select>';
echo '<select name="tahun">';
echo "<option value=tahun>Tahun</option>";
$tahunpilih = isset($_POST['tahun']) ? $_POST['tahun'] : "tahun";
for($tahun=1995; $tahun<2010; $tahun++){
echo "<option value='$tahun'";
echo $tahun == $tahunpilih? " selected" : "";
echo '>'.$tahun.'</option>';
}
echo '</option>';
?>
</td>
</tr>
<tr>
<td>Alamat</td>
<td><center>:</center></td>
<td><input type='text' placeholder="Alamat" name="alamat" size="40" value="<?php echo isset($_POST['alamat']) ? $_POST['alamat'] : ''; ?>" />
<font size="-1" color="red"><?php echo isset($error['alamat']) ? $error['alamat'] : '';?></font>
<font ><?php echo isset ($true['alamat'])? $true['alamat'] : '';?></font>
</td>
</tr>
<tr>
<td>E-mail</td>
<td><center>:</center></td>
<td><input type='text' name="email" placeholder="E-mail" size="40" value="<?php echo isset($_POST['email']) ? $_POST['email'] : ''; ?>" />
<font size="-1" color="red"><?php echo isset($error['email']) ? $error['email'] : '';?></font>
<font ><?php echo isset ($true['email'])? $true['email'] : '';?></font>
</td>
</tr>
<tr>
<td>Password</td>
<td><center>:</center></td>
<td><input type='password' placeholder="Password" name="pwd" size="40" value="<?php echo isset($_POST['pwd']) ? $_POST['pwd'] : ''; ?>" />
<font size="-1" color="red"><?php echo isset($error['pwd']) ? $error['pwd'] : '';?></font>
<font ><?php echo isset ($true['pwd'])? $true['pwd'] : '';?></font>
</td>
</tr>
<tr>
<td>No. HP</td>
<td><center>:</center></td>
<td><input type='text' placeholder="No.HP" name="HP" size="40" value="<?php echo isset($_POST['HP']) ? $_POST['HP'] : ''; ?>" />
<font size="-1" color="red"><?php echo isset($error['HP']) ? $error['HP'] : '';?></font>
<font ><?php echo isset ($true['HP'])? $true['HP'] : '';?></font>
</td>
</tr>
<tr>
<td>Captcha <img height="30" style="vertical-align:middle;" src="captcha.php?data=<?php echo date('YmdHis');?> alt="securiy image" /></td>
<td><center>:</center></td>
<td>
<input name="pin" placeholder="Captcha" type="text" value="<?php echo isset($_POST['captcha']) ? $_POST['captcha'] : ''; ?>" />
<font size="-1" color="red"><?php echo isset($error['pin']) ? $error['pin'] : '';?></font>
<font ><?php echo isset ($true['pin'])? $true['pin'] : '';?></font>
</td>
</tr>
<tr>
<td colspan="3" Style=' border-bottom-right-radius:20px;'><center><button type="reset" value="Refresh" ONCLICK="history.go(0)"> Reset </button>
<button type="submit" name="submit"> Kirim </button></center>
</td>
</tr>
</table>
</form>
<?php } ?>
</body>
</html>
4. Selanjutnya membuat action.php dan fungsinya untuk menampilkan hasil inputan dari form.php Berikut adalah script action.php.
<?php
session_start();
if($_POST){
$nama=$_POST['nama'];
$gender=isset($_POST['gender'])? $_POST['gender']:"";
$tempat=$_POST['tempat'];
$hari=$_POST['hari'];
$bulan=$_POST['bulan'];
$tahun=$_POST['tahun'];
$alamat=$_POST['alamat'];
$email=$_POST['email'];
$pwd=$_POST['pwd'];
$noHP=$_POST['HP'];
$CAPTCHA=$_POST['pin'];
$emailpattern = '/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/';
$imgTrue = '<img src=bener.JPG width="20px" style="vertical-align:middle" /><br>
';
$imgEmp = '<img src=empty.GIF style="vertical-align:middle" width="20px" /><br>
';
$imgErr = '<img src=error.JPG style="vertical-align:middle" /><br>
';
$error = array();
if(empty ($nama)){
$error['nama'] = $imgEmp.'Nama tidak boleh kosong';
} else if(preg_match('/[^a-zA-Z ]/', $nama)) {
$error['nama'] = $imgErr.'Inputan nama hanyalah huruf saja';
} else{
$true['nama'] = $imgTrue;
}
if(empty ($email)){
$error['email'] = $imgEmp.'Email tidak boleh kosong';
} elseif (!preg_match($emailpattern, $email)){
$error['email'] = $imgErr.'Email salah tulis (xxxxxxx@xxxxx.xxx)';
} else{
$true['email'] = $imgTrue;
}
if(empty ($alamat)){
$error['alamat'] = $imgEmp.'Alamat tidak boleh kosong';
} else{
$true['alamat'] = $imgTrue;
}
if(empty ($pwd)){
$error['pwd'] = $imgEmp.'Password tidak boleh kosong';
} else{
$true['pwd'] = $imgTrue;
}
if (empty($gender)){
$error['gender'] = $imgEmp.'Jenis kelamin tidak boleh kosong';
} else{
$true['gender'] = $imgTrue;
}
if(empty ($tempat)){
$error['tempat'] = $imgEmp.'TTL tidak boleh kosong';
} else{
$true['tempat'] = $imgTrue;
}
if(empty ($noHP)){
$error['HP'] = $imgEmp.'No HP tidak boleh kosong';
} else if(preg_match('/[^0-9 ]/', $noHP)) {
$error['HP'] = $imgErr.'Inputan No HP hanyalah angka saja';
}
else{
$true['HP'] = $imgTrue;
}
if(empty ($CAPTCHA)){
$error['pin'] = $imgEmp.'Captcha tidak boleh kosong';
} elseif (md5($_POST['pin']) <> $_SESSION['image_random_value']){
$error['pin'] = $imgErr.'Salah, coba ulangi kembali';
} else {
$true['pin'] = $imgTrue;
}
if(empty($error)){
if($gender=='Laki - Laki'){
echo'<h2><center>Selamat Datang Saudara, '.$nama.'
<br> Berikut Biodatamu</center></h2>';
}
else{
echo'<h2><center>Selamat Datang Saudari, '.$nama.'
<br>Berikut Biodatamu</center></h2>';
}
print("
<table cellspacing='0' cellpadding='4' bgcolor='#CCCCCC' border='0' width='650' height='300' Style='border-radius:20px;border-color:white; position:fixed;left:360px;top:110px;box-shadow: 0 0 5px 5px blue; '>
<tr>
<td colspan='4' bgcolor='#3399FF' Style=' border-top-left-radius:20px; border-top-right-radius:20px'>
<center><strong><font color='white'><div class='Da'>DATA DIRI</div></font></strong></center>
</td>
</tr>
<tr>
<td> Nama Lengkap </td>
<td width='1'><center>:</center></td>
<td> $nama</td>
</tr>
<tr>
<td> Jenis Kelamin</td>
<td><center>:</center></td>
<td> $gender </td>
</tr>
<tr>
<td>TTL</td>
<td><center>:</center></td>
<td>$tempat, $hari - $bulan - $tahun</td>
</tr>
<tr>
<td>Alamat</td>
<td><center>:</center></td>
<td> $alamat</td>
</tr>
<tr>
<td>E-mail</td>
<td><center>:</center></td>
<td>$email</td>
</tr>
<tr>
<td>Password</td>
<td><center>:</center></td>
<td> $pwd</td>
</tr>
<tr>
<td Style=' border-bottom-left-radius:20px'>No. HP</td>
<td><center>:</center></td>
<td>$noHP</td>
</tr>
<tr>
</table>
");
}
else{
$_SESSION['error']=$error;
$_SESSION['true'] =$true;
header("location:form.php");
}
}
?>
5. Dan hasilnya ketika di run adalah :
Bagaimana? Mudah toh? selamat mencoba. terimakasih
01.29
|
Label:
PHP
|
Langganan:
Posting Komentar (Atom)




1 komentar:
extract($_POST)
/*
$tempat = $_POST['tempat'];
$alamat = $_POST['alamat'];
dll...
*/
Posting Komentar