Postingan lainnya
bagaimana cara menggagalkan insert ke database ketika validasi salah
Hallo semuanya!
Gimana ya cara buat agar ketika form nya ada yang belum di input di gagalkan di proses?
Di sini saya ada baca artikel di blog, cara buat form validation dengan php, tapi yang jadi masalah adalah ketika saya menginputkan email dan no telp yang salah bukan format email & nomor, tapi masih bisa di proses, nah bagaimana cara agar menggagalkan datanya gagal di proses.
This kode :
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<style>
.warning {color: #FF0000;}
</style>
</head>
<body>
<?php
$error_nama = "";
$error_email = "";
$error_web = "";
$error_pesan = "";
$error_telp = "";
$nama = "";
$email = "";
$web = "";
$pesan = "";
$telp = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["nama"]))
{
$error_nama = "Nama tidak boleh kosong";
}
else
{
$nama = cek_input($_POST["nama"]);
if (!preg_match("/^[a-zA-Z ]*$/",$nama))
{
$nameErr = "Inputan Hanya boleh huruf dan spasi";
}
}
if (empty($_POST["email"]))
{
$error_email = "Email tidak boleh kosong";
}
else
{
$email = cek_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$error_email = "Format email Invalid";
}
}
if (empty($_POST["pesan"]))
{
$error_pesan = "Pesan tidak boleh kosong";
}
else
{
$pesan = cek_input($_POST["pesan"]);
}
if (empty($_POST["web"]))
{
$error_web = "Website tidak boleh kosong";
}
else
{
$web = cek_input($_POST["web"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$web))
{
$error_web = "URL tidak valid";
}
}
if (empty($_POST["telp"]))
{
$error_telp = "Telp tidak boleh kosong";
}
else
{
$telp = cek_input($_POST["telp"]);
if(!is_numeric($telp))
{
$error_telp = 'Nomor HP hanya boleh angka';
}
}
}
function cek_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">
Validasi Form dengan PHP
</div>
<div class="card-body">
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <div class="form-group row">
<label for="nama" class="col-sm-2 col-form-label">Nama</label>
<div class="col-sm-10">
<input type="text" name="nama" class="form-control <?php echo ($error_nama !="" ? "is-invalid" : ""); ?>" id="nama" placeholder="Nama" value="<?php echo $nama; ?>"><span class="warning"><?php echo $error_nama; ?></span>
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" name="email" class="form-control <?php echo($error_email !="" ? "is-invalid" : ""); ?>" id="email" placeholder="email" value="<?php echo $email; ?>"><span class="warning"><?php echo $error_email; ?></span>
</div>
</div>
<div class="form-group row">
<label for="web" class="col-sm-2 col-form-label">Website</label>
<div class="col-sm-10">
<input type="text" name="web" class="form-control <?php echo($error_web !="" ? "is-invalid" : ""); ?>" id="web" placeholder="web" value="<?php echo $web; ?>"><span class="warning"><?php echo $error_web; ?></span>
</div>
</div>
<div class="form-group row">
<label for="telp" class="col-sm-2 col-form-label">Telp</label>
<div class="col-sm-10">
<input type="text" name="telp" class="form-control <?php echo($error_telp !="" ? "is-invalid" : ""); ?>" id="telp" placeholder="telp" value="<?php echo $telp; ?>"><span class="warning"><?php echo $error_telp; ?></span>
</div>
</div>
<div class="form-group row ">
<label for="pesan" class="col-sm-2 col-form-label">Pesan</label>
<div class="col-sm-10">
<textarea name="pesan" class="form-control <?php echo($error_pesan !="" ? "is-invalid" : ""); ?>"><?php echo $pesan; ?></textarea><span class="warning"><?php echo $error_pesan; ?></span>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Sign in</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<?php
echo "<h2>Your Input:</h2>";
echo "Nama = ".$nama;
echo "<br>";
echo "Email = ".$email;
echo "<br>";
echo "Website = ".$web;
echo "<br>";
echo "Telp = ".$telp;
echo "<br>";
echo "Pesan = ".$pesan;
?>
</body>
</html>
Maaf kalau agak kurang kelas....
2 Jawaban:
<div>untuk menggagalkannya, caranya seperti ini:</div><pre>if ($error_nama == "" AND $error_email == "" AND $error_web == "" AND $error_pesan == "" AND $error_telp = "") { mysqli_query($koneksi, "INSERT INTO tabel(nama,email,website,telp,pesan) VALUES('$nama','$email','$web','$telp','$pesan')"); } else { echo '<script>alert('Gagal input');</script>'; }</pre>
Jawaban Terpilih
<div>Mungkin gambarannya bisa seperti ini :<br><br></div><pre><?php
if(isset($_POST['submit'])) {
//Variabel bantuan, untuk mengecek apakah ada error atau tidak, nilai defaultnya adalah false;
$error = false;
$errNama = "";
$errWeb = "";
$nama = $_POST['nama'];
$web = $_POST['web'];
if(empty($nama)) {
$errNama = "Nama harus diisi!";
$error = true;
}
if(empty($web)) {
$errWeb = "Web harus diisi!";
$error = true;
} else if(!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&amp;@#\/%?=~_|!:,.;]*[-a-z0-9+&amp;@#\/%=~_|]/i",$web)) {
errWeb = "format web tidak valid";
$error = true;
}
//Cek apakah ada error atau ngga berdasarkan niali variabel $error
if($error == true) {
echo $errNama . "&lt;br&gt;";
echo $errWeb;
} else {
//INSERT KE DATABASE
}
}</pre><div><br>Semoga membantu</div>
Tanggapan
Makasih mas , berhasil.