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....

avatar X451
@X451

41 Kontribusi 30 Poin

Diperbarui 3 tahun yang lalu

Tanggapan

testestestestes

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 '&lt;script&gt;alert('Gagal input');&lt;/script&gt;'; }</pre>

avatar syahid246
@syahid246

70 Kontribusi 160 Poin

Dipost 3 tahun yang lalu

Jawaban Terpilih

<div>Mungkin gambarannya bisa seperti ini :<br><br></div><pre>&lt;?php

if(isset($_POST['submit'])) {

//Variabel bantuan, untuk mengecek apakah ada error atau tidak, nilai defaultnya adalah false;

$error = false;

$errNama = &quot;&quot;;
$errWeb = &quot;&quot;;

$nama = $_POST[&#039;nama&#039;];
$web = $_POST[&#039;web&#039;];

if(empty($nama)) {
	$errNama = &quot;Nama harus diisi!&quot;;
	$error = true;
}

if(empty($web)) {
	$errWeb = &quot;Web harus diisi!&quot;;
	$error = true;
} else if(!preg_match(&quot;/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&amp;amp;@#\/%?=~_|!:,.;]*[-a-z0-9+&amp;amp;@#\/%=~_|]/i&quot;,$web)) {
	errWeb = &quot;format web tidak valid&quot;;
	$error = true;
}

//Cek apakah ada error atau ngga berdasarkan niali variabel $error
if($error == true) {
	echo $errNama . &quot;&amp;lt;br&amp;gt;&quot;;
	echo $errWeb;
} else {
	//INSERT KE DATABASE
}

}</pre><div><br>Semoga membantu</div>

avatar ahanafi
@ahanafi

815 Kontribusi 552 Poin

Dipost 3 tahun yang lalu

Tanggapan

Makasih mas , berhasil.

Login untuk ikut Jawaban