Php hapus _posting setelah dikirim

unset( $_POST['vendor_add_submit'] ); digunakan untuk mencegah lebih dari satu kali penyisipan ke db pada penyegaran halaman. Saya menguji dengan print_r($_POST['vendor_add_submit'] ) sebelum dan sesudah unset dan menemukan bahwa fungsi unset() tidak berfungsi

Bagaimana saya bisa mencapai tujuan dari fungsi yang tidak disetel, tolong?

Solusi terbaik

Unset tidak akan menghentikan penyegaran agar tidak dapat memutar ulang data POSTed ke skrip. Fungsi yang tidak disetel menghilangkannya untuk sisa eksekusi skrip itu, tetapi penyegaran adalah eksekusi baru

Anda cukup mengarahkan ulang browser ke halaman entri setelah melakukan penyisipan, dengan cara itu penyegaran berikutnya akan aman

//INSERT INTO DB
//...
header('Location: samepage.php');
exit();

Saya yakin ada cara lain untuk mencapai ini juga

Solusi Terkait

Html – Cara menonaktifkan pelengkapan otomatis browser di bidang formulir web / tag input

Firefox 30 mengabaikan autocomplete="off"_ untuk kata sandi, memilih untuk meminta pengguna sebagai gantinya apakah kata sandi harus disimpan di klien. Perhatikan yang berikut dari 5 Mei 2014

  • Pengelola kata sandi selalu meminta jika ingin menyimpan kata sandi. Kata sandi tidak disimpan tanpa izin dari pengguna
  • Kami adalah browser ketiga yang menerapkan perubahan ini, setelah IE dan Chrome

Menurut dokumentasi Jaringan Pengembang Mozilla, atribut elemen formulir Boolean autocomplete mencegah data formulir di-cache di browser lama

<input type="text" name="foo" autocomplete="off" />
_

Html – vs. Yang mana yang akan digunakan

  • Inilah halaman yang menjelaskan perbedaannya (pada dasarnya Anda dapat memasukkan html ke dalam <button></button>)
  • Dan halaman lain yang menjelaskan mengapa orang menghindari <button></button> (Petunjuk. IE6)

Masalah IE lainnya saat menggunakan

//INSERT INTO DB
//...
header('Location: samepage.php');
exit();
0

Dan sementara kita berbicara tentang IE, ada beberapa bug terkait dengan lebar tombol. Ini secara misterius akan menambahkan bantalan ekstra saat Anda mencoba menambahkan gaya, artinya Anda harus menambahkan retasan kecil untuk mengendalikan semuanya

Apakah Anda ingin menampilkan kembali konfirmasi dan formulir setelah formulir dikirimkan? . Dalam tutorial ini, kami akan menunjukkan cara mencapainya menggunakan cuplikan kode kecil

Menyiapkan formulir

Pertama, Anda harus membuat formulir baru. Untuk tujuan tutorial ini, kami telah menyelesaikan langkah ini. Namun, jika Anda memerlukan bantuan dalam membuat formulir dengan WPForms, tinjau dokumentasi ini

Untuk formulir kami, kami hanya menambahkan bidang formulir Nama, Email, dan Teks Paragraf

Php hapus _posting setelah dikirim

Menambahkan potongan kode

Selanjutnya, Anda harus menambahkan cuplikan kode kecil ke situs Anda yang memungkinkan formulir ditampilkan lagi sebelum pesan konfirmasi

Jika Anda memerlukan bantuan untuk menambahkan cuplikan ke situs Anda, harap tinjau tutorial ini

/*
 * Display confirmation message and form after successful submission.
 *
 * @link  https://wpforms.com/developers/how-to-display-the-confirmation-and-the-form-again-after-submission/
 */
 
function wpf_dev_frontend_output_success( $confirmation, $form_data, $fields, $entry_id ) {

	// Optional, you can limit to specific forms. Below, we restrict output to form #235.
	if ( absint( $form_data[ 'id' ] ) !== 235 ) {
		return;
	}
	// Reset the fields to blank
	unset(
	$_GET[ 'wpforms_return' ],
	$_POST[ 'wpforms' ][ 'id' ]
	);
	// Uncomment this line out if you want to clear the form field values after submission
	//unset( $_POST[ 'wpforms' ][ 'fields' ] );
	// Actually render the form.
	wpforms()->get( 'frontend' )->output( $form_data[ 'id' ] );

}
add_action( 'wpforms_frontend_confirmation_message_after', 'wpf_dev_frontend_output_success', 1000, 4 );

Karena kami hanya ingin cuplikan ini dijalankan pada formulir tertentu, kami menggunakan if ( absint( $form_data[ 'id' ] ) !== 235 ). Artinya, cuplikan ini hanya akan berjalan jika ID formulir cocok dengan 235

Jika Anda memerlukan bantuan dalam mengidentifikasi nomor ID formulir Anda, silakan lihat tutorial ini

Jika Anda ingin menyimpan nilai di dalam bidang formulir setelah formulir dikirimkan, hapus saja unset( $_POST[ 'wpforms' ][ 'fields' ] );

Sekarang Anda akan melihat kapan formulir dikirimkan, pengunjung Anda akan melihat konfirmasi dan formulir di halaman yang sama setelah formulir dikirimkan

Php hapus _posting setelah dikirim

Dan itu saja. Apakah Anda ingin menyetel tanggal default pada pemilih tanggal Anda?

Terkait

Referensi Aksi. wpforms_frontend_output_sukses

FAQ

Q. Mengapa pesan konfirmasi saya muncul di bawah formulir?

A. Jika pesan konfirmasi Anda muncul di atas formulir dan Anda ingin pesan itu muncul di bawah, harap ubah prioritas fungsi ini

Untuk menjelaskan apa yang menjadi prioritas suatu fungsi, mari kita lihat cuplikan di atas, khususnya baris terakhir

add_action( 'wpforms_frontend_output_success', 'wpf_dev_frontend_output_success', 10, 3 );
_

Dalam hal ini, nama action hook (sebagaimana didefinisikan oleh WPForms) adalah wpforms_frontend_output_success, nama fungsi kita adalah wpf_dev_frontend_output_success. Di dalam fungsi ini, kami memberikan 3 argumen ($form_data, $fields, $entry_id), dan kami memiliki prioritas default yang ditetapkan ke 10

Karena kami ingin fungsionalitas default dari formulir muncul terlebih dahulu, dalam hal ini, pesan konfirmasi, kami perlu mengubah prioritas sehingga pesan muncul lebih dulu dan fungsi berjalan setelahnya. Untuk melakukan ini, kami akan meningkatkan prioritas menjadi 99

Sebagian besar fungsi menggunakan 10 sebagai nomor prioritas default jadi jika Anda ingin sesuatu berjalan sebelum Anda akan membuat prioritas di bawah 10 jika Anda ingin fungsi berjalan setelahnya, tingkatkan prioritas menjadi lebih dari 10

/*
 * Display confirmation message and form after successful submission.
 *
 * @link  https://wpforms.com/developers/how-to-display-the-confirmation-and-the-form-again-after-submission/
 */
 
function wpf_dev_frontend_output_success(  $form_data, $fields, $entry_id ) {
      
    // Optional, you can limit it to specific forms. Below, we restrict output to form #235.
    if ( absint( $form_data[ 'id' ] ) !== 235 ) {
        return;
    }
                // Reset the fields to blank
		unset(
			$_GET[ 'wpforms_return' ],
			$_POST[ 'wpforms' ][ 'id' ]
		);

		// Uncomment this line out if you want to clear the form field values after submission
		//unset( $_POST[ 'wpforms' ][ 'fields' ] );

		// Actually render the form.
		wpforms()->frontend->output( $form_data[ 'id' ] );
 
}

add_action( 'wpforms_frontend_output_success', 'wpf_dev_frontend_output_success', 99, 3 );

Q. Mengapa cuplikan tidak berfungsi untuk saya?

A. Jika cuplikan tidak berfungsi, pastikan Anda telah mengubah 235 agar cocok dengan ID formulir Anda sendiri di situs Anda. Silakan lihat tutorial ini untuk membantu menemukan ID formulir Anda

Bagaimana cara menghapus nilai posting di PHP?

Anda dapat menggunakan kombinasi unset() dan inisialisasi. tidak disetel($_POST); . tidak disetel($_POST) ? Or in a single statement: unset($_POST) ?

Apa itu $_ POST di PHP?

PHP $_POST adalah variabel super global PHP yang digunakan untuk mengumpulkan data formulir setelah mengirimkan formulir HTML dengan method="post" . $_POST juga banyak digunakan untuk meneruskan variabel. Contoh di bawah ini menunjukkan formulir dengan kolom input dan tombol kirim.

Bagaimana Anda menghapus data formulir?

Metode reset() menyetel ulang nilai semua elemen dalam formulir (sama seperti mengklik tombol Reset). Tip. Gunakan metode submit() untuk mengirimkan formulir.