validasi selalu bernilai salah

kenapa tidak bisa memproses meski data yang di inputkan sudah benar.

pada html

<div class="modal-body">
    <form action="proses/pembayaran.php" method="POST" name="modal_bukti" id="modal">
       <input name="kd_detail" type="hidden" class="form-control" value="<?php echo $row['kd_detail'] ?>">
       <div class="form-group">
	  <label>Kode Transaksi</label>
	  <input name="kd_transaksi" type="text" class="form-control" autocomplete="off" required>
       </div>
       <div class="form-group">
	  <label>Jumlah Bayar</label>
	  <input name="total_bayar" type="text" class="form-control" autocomplete="off" required>
       </div>
       <div class="modal-footer">
           <button type="reset" class="btn btn-danger"  data-dismiss="modal" aria-hidden="true">Cancel</button>
	   <button class="btn btn-success" name="submit" type="submit">Kirim</button>
       </div>
     </form>
</div>

proses.php

<?php
include '../config/connection.php';
$kd_detail = isset($_POST['kd_detail']) ? $_POST['kd_detail'] : '';
$kd_transaksi = isset($_POST['kd_transaksi']) ? $_POST['kd_transaksi'] : '';
$total_bayar = isset($_POST['kd_bayar']) ? $_POST['kd_bayar'] : '';

$cek = mysqli_query($conn, "SELECT kd_transaksi,total_bayar FROM detail_booking WHERE kd_detail='$kd_detail'");
$data = mysqli_fetch_array($cek);
    if ($data['kd_transaksi'] !== '$kd_transaksi' || $data['total_bayar'] !== '$total_bayar') {
	echo "<script>window.alert('Maaf proses gagal. Silahkan cek kembali nomor transaksi dan total bayar yang anda masukan') window.location='../mybooking.php'</script>";
	}elseif ($data['kd_transaksi'] == '$kd_transaksi' && $data['total_bayar'] == '$total_bayar'){
	$sql = mysqli_query($conn,"INSERT INTO pembayaran (kd_detail,kd_transaksi,status_bayar) VALUES ('$kd_detail','$kd_transaksi','lunas')");
	header('location:../mybooking.php');
	}else{
	   echo "<script>window.alert('Maaf proses gagal.')window.location='../mybooking.php'</script>";
        }
?>

avatar irya
@irya

59 Kontribusi 13 Poin

Diperbarui 5 tahun yang lalu

Tanggapan

errornya apa?

gini mas. saya membuat konfirmasi pembayaran. ketika kode transaksi atau total bayar yang dimasukan tidak sesuai maka sistem tidak akan memproses. tapi saya menginputkan kode transaksi dan total bayarnya sudah benar tapi masih tidak di proses. erronya masuk di if yang pertama

3 Jawaban:

Coba keluarin datany berdasarkan assosiatif array mysqli_fetch_assoc(), terus bagian if klo mo ngecek nilai aja != sedangkan klo !== mengecek berdasarkan nilai sm tipe datanya

avatar bosque
@bosque

187 Kontribusi 104 Poin

Dipost 5 tahun yang lalu

mas, itu query select dan insertnya ada salah, variable nya jadi string. $str1 = "select * from tabel where field1='".$str2."'"

semoga membantu.

avatar notee
@notee

14 Kontribusi 2 Poin

Dipost 5 tahun yang lalu

Tanggapan

Terima kasih atas koreksi dan bantuannya mas

mysqli_fetch_assoc()masih sama mas, error. tapi apa errornya ga ditampilin. total bayar ada di tabel detail_booking kan mas, klo total bayarnya saya jadikan index (constraint unique) itu menyalahi aturan tidak mas? soalnya kode transaksi saya relasikan ke tabel pembayaran. kode transaksi di tabel pembayaran itu saya jadikan index (constraint unique). pas kode transaksi salah, sistem menolak (berhasil. masalahnya ketika total bayar salah dan kode transaksi benar masih di proses harusnya di tolak. itu gimana ya mas. bisakah total_bayarnya dijadikan constraint unique?

<pre> &lt;?php include '../config/connection.php'; $kd_detail = isset($_POST['kd_detail']) ? $_POST['kd_detail'] : ''; $kd_transaksi = isset($_POST['kd_transaksi']) ? $_POST['kd_transaksi'] : ''; $total_bayar = isset($_POST['kd_bayar']) ? $_POST['kd_bayar'] : '';

$cek = mysqli_query($conn, "SELECT * FROM detail_booking WHERE kd_transaksi='$kd_transaksi'"); $data = mysqli_fetch_array($cek); if ($data &gt; 0) { $sql = mysqli_query($conn,"INSERT INTO pembayaran (kd_detail,kd_transaksi,status_bayar) VALUES ('$kd_detail','$kd_transaksi','lunas')"); header('location:../mybooking.php'); }else{ echo "&lt;script&gt;window.alert('Maaf proses gagal. Silahkan cek kembali nomor transaksi dan total bayar yang anda masukan') window.location='../mybooking.php'&lt;/script&gt;"; } ?&gt; </pre>

avatar irya
@irya

59 Kontribusi 13 Poin

Dipost 5 tahun yang lalu

Tanggapan

maksud saya kamu ganti dibagian $data['kd_transaksi'] !== '$kd_transaksi' jd $data['kd_transaksi'] != '$kd_transaksi' di total_bayar juga

Login untuk ikut Jawaban