Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
Validasi Webcam ke database agar tidak double data
mohon bantuannya kawan-kawan saya butuh banyak belajar, apakah ada salah dalam code saya? misalkan input data malahan data tersebut double.
19 Jawaban:
<div>data yang masuk ke salah satu tabelnya ada yg masuk 2 baris ya?<br>gak melihat penyebabnya sih, tapi yang baris ke-28 itu , dua kolom nya berisi data username?</div>
<div>baris 28 itu gak ngaruh, cuman input data ke table sebelah gan. fokus ke hasil1 itu gan<br><br></div>
<div>iya, kalau di submit double data </div>
<div><figure data-trix-attachment="{"contentType":"image/jpeg","filename":"b7f442c212eb3d7152e83b4622c3a75434505597d5b84c7c931d6150e56e3909.jpg","filesize":45535,"height":322,"url":"https://i.ibb.co/Q9W4f8K/b7f442c212eb3d7152e83b4622c3a75434505597d5b84c7c931d6150e56e3909.jpg","width":780}" data-trix-content-type="image/jpeg" data-trix-attributes="{"caption":"contohnya gini gan, kalau di input ke database yang satu nama dan foto masuk, satunya lagi nama tidak masuk akan tetapi foto masuk, terjadinya double atau dublikate data. saya mau satu data aja nama dan foto masuk","presentation":"gallery"}" class="attachment attachment--preview attachment--jpg"><img src="https://i.ibb.co/Q9W4f8K/b7f442c212eb3d7152e83b4622c3a75434505597d5b84c7c931d6150e56e3909.jpg" width="780" height="322"><figcaption class="attachment__caption attachment__caption--edited">contohnya gini gan, kalau di input ke database yang satu nama dan foto masuk, satunya lagi nama tidak masuk akan tetapi foto masuk, terjadinya double atau dublikate data. saya mau satu data aja nama dan foto masuk</figcaption></figure></div>
<div>saya cek cek itu akibat refresh<br><br>sudah saya coba melakukkan isset akan tetapi data nama dan foto masuk ke dalam database tidak terjadi dublikat, masala terjadi lagi foto tidak masuk ke dalam direktory yang mengakibatkan data tidak muncul dalam list<br><br></div>
Tanggapan
Lalu coba periksa file yang mengeksekusi proses upload.php nya itu. Mungkin dibagian situ
<div>kalau gitu berarti yg $_POST itu di dilakukan pengecekan aja dengan if(isset($_POST)).<br>jika berisi value maka akan melanjutkan proses. Jadi saat refresh, ketika $_POST nya kosong maka akan dihiraukan kodingan yang dibawahnya.<br><br>Edit ======<br>eh sorry, ga baca yang terakhir.</div>
Tanggapan
if (isser($_POST)==0) gitu kah ?
<div><figure data-trix-attachment="{"contentType":"image/png","filename":"Screenshot (115).png","filesize":235476,"height":1080,"url":"https://i.ibb.co/SVKTQdB/Screenshot-115.png","width":1920}" data-trix-content-type="image/png" data-trix-attributes="{"caption":"saya ubah code seperti ini, sama aja data ke database masuk akan tetapi tidak muncul di list","presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/SVKTQdB/Screenshot-115.png" width="1920" height="1080"><figcaption class="attachment__caption attachment__caption--edited">saya ubah code seperti ini, sama aja data ke database masuk akan tetapi tidak muncul di list</figcaption></figure></div>
Tanggapan
yg if($_POST) jadi if(isset($_POST))
udah bang, data ke database udah masuk, sedangkan foto tidak muncul di list karena gak masuk di direktori.
saya coba tetap duplikate bang
bisa contohkan gak bang yang di kasih value
<div> if(isset($_POST)) berhasil bang, akan tetapi data masuk masih double, sedikit lagi bang, maaf bang menggangu waktunya</div>
<div>f(isset($_POST['submit'])) data tidak duplikate, akan tetapi foto tidak masuk ke direktori<br><br></div>
<div>Aku coba sendiri tadi, rupanya jika tidak di input, $_POST akan berisi value array(). Kosong memang, tapi isset tetap menganggapnya true.<br><br>Jadi daripada isset($_POST) , pake !empty($_POST). Mengecek jika tidak kosong maka true.</div>
<div>maaf bang, !empty($_POST) data masuk tidak duplikat, akan tetapi tidak masuk ke direktori mengakibatkan foto tidak muncul bang</div>
<div>aku nyoba bisa aja sih berjalan normal. <br><br>itu form nya kek gini aja kan kira2?</div><pre><form action ="upload.php" method="post" enctype="multipart/form-data"> <input name="username" value=""> <input name="nama_siswa" value=""> .. .. <input name="webcam" type="file"> <input type="submit"> </form></pre>
<div>https://suckittrees.com/artikel-470/mengambil-foto-webcam-dengan-webcamjs-dan-php.html#<br><br><br>saya menggunakan website ini bang</div>
<div>Baiklah ini terakhir , cuman sampai sini aja aku bisa memikirkannya, Kembali ke awal.<br><br>Jadi pada dasarnya kamu memproses nya ntah kenapa "2 kali" yang upload.php<br><br>Soalnya $_FILES ntah kenapa ini yang diproses terlebih dahulu meski $_POST kosong.<br>Lalu ketika selesai memindahkan yg $_FILES ini ke folder "upload/" , kodingan mu baru memproses sekali lagi untuk memproses yang $_POST.<br><br>Kalau misalkan lewat javascript buat mengeksekusi , pastikan aja di event listener nya ditambahin stopPropagation untuk jaga2 saja..<br>Kalau bukan javascript , aku taunya cuman sampai sini aja.<br><br></div>
Tanggapan
siapp bang, makasih pencerahannya
<pre>
div class="form-group col-md-6">
<div class="mb-3">
<label for="formFile" class="form-label fw-bold">Foto</label>
<div id="camera">Capture</div>
&lt;div id="webcam"&gt;
&lt;input type=button value="Capture" onClick="preview()"&gt;
&lt;/div&gt;
&lt;div id="simpan" style="display:none"&gt;
&lt;input type=button value="Remove" onClick="batal()"&gt;
&lt;/div&gt;
&lt;div id="hasil"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt; </pre>
<div>Lalu yg function preview() nya itu seperti apa isinya</div>
<pre> //script webcam <script src="https://cdnjs.cloudflare.com/ajax/libs/webcamjs/1.0.26/webcam.min.js"></script> <script language="Javascript"> // konfigursi webcam Webcam.set({ width: 320, height: 240, image_format: 'jpg', jpeg_quality: 100 }); Webcam.attach( '#camera' );
function preview() {
// untuk preview gambar sebelum di upload
Webcam.freeze();
// ganti display webcam menjadi none dan simpan menjadi terlihat
document.getElementById('webcam').style.display = 'none';
document.getElementById('simpan').style.display = '';
}
function batal() {
// batal preview
Webcam.unfreeze();
// ganti display webcam dan simpan seperti semula
document.getElementById('webcam').style.display = '';
document.getElementById('simpan').style.display = 'none';
}
function simpan() {
// ambil foto
Webcam.snap( function(data_uri) {
// upload foto
Webcam.upload( data_uri, 'tambah_aksi_siswa.php', function(code, text) {} );
// tampilkan hasil gambar yang telah di ambil
document.getElementById('hasil').innerHTML =
'&lt;p&gt;Hasil : &lt;/p&gt;' +
'&lt;img src="'+data_uri+'"/&gt;';
Webcam.unfreeze();
document.getElementById('webcam').style.display = '';
document.getElementById('simpan').style.display = 'none';
} );
}
&lt;/script&gt;
</pre>
Tanggapan
kaya gini bang
Jawaban Terpilih
<div>Sudah nemu, ntah work atau gak. <br>Permasalahannya (mungkin) ada pada </div><pre>Webcam.upload( data_uri, 'tambah_aksi_siswa.php', function(code, text) {} );</pre><div>Ntah kenapa bagian sini dua kali memproses.<br><br>lalu form yang kamu tunjukin sbelum nya dah pasti berbeda dengan yang kamu kerjakan kan?<br>jadi kurang tau pasti, ntah kamu menggunakan elemen form atau gak.<br><br>Tapi untung nya di webcamjs sudah di dokumentasikan berbagai contoh nya.<br><a href="https://github.com/jhuckaby/webcamjs/blob/master/DOCS.md">https://github.com/jhuckaby/webcamjs/blob/master/DOCS.md</a><br>jadi untuk menghandle input lain dalam satu form.<br>data_uri nya ini dikerjakan secara terpisah.<br><br>Jika kamu menggunakan form.<br><br>pertama, buat satu lagi input dengan type hidden. Misal</div><pre><input name="gambar_raw" type="hidden"> </pre><div>Itu buat naroh gambar webcam nya.<br><br>lalu bagian Webcam.snap , kita ambil data raw dari output webcam.</div><pre>var raw_image_data = data_uri.replace(/^data:image/\w+;base64,/, '');</pre><div><br>kita masukkin value raw_image_data nya ke dalam input gambar_raw tadi.<br>Nah sampai sini sudahlah di sisi client, ntah mengirim data nya lewat ajax atau submit form biasa. (Gak lewat Webcam.upload)<br><br>Lalu bagian server nya si upload.php<br>ambil gambar_raw tadi dan decode value nya.</div><pre>$gambar = base64_decode( $_POST['gambar_raw'] );
// Simpan gambar nya dengan file_put_contents, gak pake move_uploaded_file ini lagi. $result = file_put_contents( 'lokasi_keluaran/contoh_nama.jpg', $gambar ); <br></pre><div><br>Dan disini pun bisa menambahin input an lain nya misalkan username, nama_siswa, dll tadi yang ada di form.</div><div><br><br></div>
<div>work bang, terima kasih.. saya hanya bisa mengucakan doa, semoga abang sehat selalu dan di murahkan rezeki</div>