Postingan lainnya
validasi dari sisi client dan server
selamat pagi semua, ane mau bertanya, dari forum2 yang ane liat, byk membahas tentang validasi dan keamanan web, untuk itu, untuk contoh validasi dari kedua sisi itu contoh nya gmna ya cara ngegabungin nya? jadi dari sisi client aman, dari sisi server aman. terima kasih para suhu :)
13 Jawaban:
https://sekolahkoding.com/forum/kenapa-setiap-mengisi-form-php-ketika-validasi-salah-halaman-tersebut-refreshngulang-dari-awal
Silahkan Dibaca2..dan dipahami..
kurang lebih seperti ini gan.
client site
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
// client site
function validasi(form) {
if (form.kode.value=="") {
alert("Kode harus diisi !");
form.kode.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<form action="simpan.php" method="post" onSubmit="return validasi(this);">
<input type="text" name="kode" placeholder="wajib">
<input type="submit" name="submit">
</form>
</body>
</html>
server site
<?php
$kode = $_POST["kode"];
if(get_magic_quotes_gpc())
{
$kode = stripslashes($kode);
}
$kode = mysql_real_escape_string($kode);
//query insert
$q = "insert into ...";
?>
saya sudah buat code ini mas, saya buat setelah baca2 forum tntg validasi dari sisi server dan client, mohon saran dan masukan nya dari code ini apa sudah cukup atau bisa di buat lebih kece,
ini javascript nya :
<script type="text/javascript">
function validasi(){
var userreeg=document.getElementById('userreg');
var passreeg=document.getElementById('passreg');
if(userreg.value=='' || passreg.value==''){
return false;
}else{
return true;
}
}
</script>
ini php nya :
<?php
$userreg=@$_POST['userreg'];
$passreg=@$_POST['passreg'];
$log=@$_POST['login'];
if(isset($log)){
if(empty($userreg) || empty($passreg)){
echo "<script type=\"text/javascript\">window.alert('Username atau Password Kosong.');</script>";
} else{
$sqllogin=mysql_query("SELECT * FROM regisuser WHERE userreg = '$userreg' AND passreg = md5('$passreg') ")or die(mysql_error());
$logindata=mysql_fetch_array($sqllogin);
$loginrow=mysql_num_rows($sqllogin);
if($loginrow>0){
if(($logindata['levelreg']=="admin" && $logindata['levellog']=="mimin")){
@$_SESSION['regadmin'] = $logindata['idreg'];
@$_SESSION['logmimin'] = $logindata['idreg'];
@$_SESSION['useradmin'] = $logindata['userreg'];
header("location:../laman/adminsite.php");
} else {
echo "<script type=\"text/javascript\">window.alert('Gagal LOGIN, Hak Akses Anda Terbatas!');</script>";
}
} else{
echo "<script type=\"text/javascript\">window.alert('Gagal LOGIN, Username atau Password SALAH!');</script>";
}
}
}
?>
ini html nya :
<form name="form1" id="form1" method="post" action="<?php echo $_SERVER ['PHP_SELF']; ?>">
<table align="center">
<tr valign="baseline">
<td nowrap="nowrap" align="right">Username :</td>
<td><input type="text" name="userreg" id="userreg" value="" size="32" maxlength="10" placeholder="Max 10 Character" style="text-transform:uppercase"/></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Password :</td>
<td><input type="password" name="passreg" id="passreg" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"> </td>
<td><input type="submit" name="login" value="Login" onclick="validasi()" /></td>
</tr>
</table>
</form>
1. di phpnya kasih pencegahan sql injection 2. dihtmlnya dikasih required biar tambah kece wkwk, contoh:
<td><input type="text" name="userreg" id="userreg" value="" size="32" maxlength="10" placeholder="Max 10 Character" style="text-transform:uppercase"/ required></td>
@dianarifr untuk sql injection, bisa diberi contoh nya gan? masih awam ane wkwk.. mohon bantuan nya gan
yang harus dipahami dari validasi ... bukan hanya masalah data kosong.. contoh : panjang karakternya melebihi atau tidak.. kalau register.. data sebelumnya udah ada / belum .. (contoh cek username) kalau delete apakah data tersebut msih berhubungan ngk sama data yg lain.. dan masih banyak lagi.. agan harus banyak rasa ingin tahunya.. semakin KEPO.. semakin JOSS...
makasih byk gan @ciloxz.. masukan nya sangat membantu. saya baru engeh.. untuk yg delete, cara pengecekan apakah data msh berhubungan itu gmna ya gan?
misal.. hubungan antara barang dan kategori
barang Sikat gigi, sabun mandi , mesin cuci hehe. .memiliki KATEGORI "K005" => "Perlengkapan Mandi" ...
kira2 .. saat nanti di form data kategori.. boleh gk saya hapus kategori "K0005".. ??? jawabannya TIDAK BOLEH.. kenapa ???
krena pada data barang.. kategori tersebut .. masih dipakai.. untuk barang tadi.. sikat gigi, sabun mandi..mesin cuci ngk ya.. hehe..
atau tetep bisa dihapus.. tapi waktu hapus bukan "DELETE FROM".. tapi UPDATE statusnya = "Non Aktif"... gitu..
semua bisa .. yg penting ngerti hehehe.. dan tergantung kebutuhan.. btw.. pertanyaan sebelah udah dijawab tuh... (login ganda) silahkan dicek.. :D
btw, ane udah bales juga mas, silahkan di cek :D
solusi yg UPDATE menarik mas,, mantaps sekali. saya akan terapkan bila nanti ada case seperti ini,, terima kasih byk mas..
Eit kayanya belum ada yg nulis nih hahah Jangan lupa CSRF juga penting di form :D
wah.. CSRF klo boleh tau apa gan? @markeronly