Dapatkah Anda meletakkan formulir di php?

Ada situasi ketika Anda ingin mengirim data menggunakan

<form method="post" action="http://www.domainname.com/target_url.php">
1 ke URL, baik lokal maupun jarak jauh. Mengapa Anda ingin melakukan ini? . Atau mungkin Anda ingin mengirim data ke beberapa aplikasi untuk berbagai keperluan, yang tidak mungkin dilakukan dengan cara biasa. Jadi bagaimana kita bisa mengatasi masalah ini?

Simulasikan pengiriman formulir menggunakan cURL

Jadi apa itu cURL? . cURL juga menggunakan HTTPS, sehingga dapat digunakan untuk berkomunikasi dengan server yang aman

Yang akan kita gunakan adalah, cURL HTTP. cURL mendukung metode POST dan GET, pengunggahan file, cookie, otentikasi pengguna/kata sandi, bahkan menggunakan server proxy untuk menghubungkan

Ini benar-benar dapat digunakan untuk mensimulasikan perilaku penelusuran secara terprogram. Itu dapat terhubung ke situs jarak jauh, login dengan memposting nama pengguna dan kata sandi ke formulir login atau dengan menggunakan otentikasi HTTP, kemudian mengambil halaman atau mengunggah file. Semua ini menggunakan kode PHP murni

Jadi bagaimana cara menggunakan cURL untuk mengirim data?

Mulailah dengan membuat koneksi baru

 
$curl_connection = 
  curl_init('http://www.domainname.com/target_url.php');
_

Koneksi baru dibuat menggunakan fungsi curl_init(), yang menggunakan URL target sebagai parameter (URL tempat kami ingin memposting data kami). URL target sama dengan parameter "aksi" dari bentuk normal, yang akan terlihat seperti ini

<form method="post" action="http://www.domainname.com/target_url.php">

Sekarang mari kita atur beberapa opsi untuk koneksi kita. Kita bisa melakukan ini dengan menggunakan fungsi curl_setopt(). Buka halaman referensi curl_setopt() untuk informasi lebih lanjut tentang curl_setopt() dan daftar opsi lengkap


curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl_connection, CURLOPT_USERAGENT,
	"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
	curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

Opsi apa yang kita tetapkan di sini?

Pertama, kami menyetel batas waktu koneksi menjadi 30 detik, jadi skrip kami tidak menunggu tanpa batas waktu jika server jarak jauh gagal merespons

Kemudian kami mengatur bagaimana cURL akan mengidentifikasi dirinya ke server jarak jauh. Beberapa server akan mengembalikan konten yang berbeda untuk browser yang berbeda (atau agen, seperti spider dari mesin pencari), jadi kami ingin permintaan kami terlihat seperti berasal dari browser populer

<form method="post" action="http://www.domainname.com/target_url.php">
2 disetel ke true memaksa cURL untuk tidak menampilkan keluaran permintaan, tetapi mengembalikannya sebagai string

Kemudian kami menyetel opsi

<form method="post" action="http://www.domainname.com/target_url.php">
3 ke false, sehingga permintaan tidak akan memicu kesalahan jika sertifikat SSL tidak valid, kedaluwarsa, atau tidak ditandatangani

Terakhir, kami menetapkan

<form method="post" action="http://www.domainname.com/target_url.php">
_4 ke 1 untuk menginstruksikan cURL untuk mengikuti “Location. " pengalihan ditemukan di header yang dikirim oleh situs jarak jauh

Sekarang kita harus menyiapkan data yang ingin kita posting. Pertama-tama kita dapat menyimpan ini dalam sebuah array, dengan kunci elemen yang sama dengan nama input dari formulir reguler, dan nilainya adalah nilai yang ingin kita posting untuk bidang itu

Misalnya, jika dalam bentuk biasa kita akan memilikinya


<input type="text" name="firstName" value="Name">
<input type="hidden" name="action" value="Register">

kami menambahkan ini ke array kami seperti ini


$post_data['firstName'] = 'Name';
$post_data['action'] = 'Register'
_

Lakukan hal yang sama untuk setiap bidang formulir

Data akan diposting dalam format berikut.

<form method="post" action="http://www.domainname.com/target_url.php">
5

Untuk memformat data seperti ini, kita akan membuat string untuk setiap key-value pair (misalnya key1=value1), memasukkannya ke dalam array lain ($post_items) lalu menggabungkannya menjadi satu string menggunakan fungsi PHP implode()


foreach ( $post_data as $key => $value) 
{
    $post_items[] = $key . '=' . $value;
}
$post_string = implode ('&', $post_items);

Selanjutnya, kita perlu memberi tahu cURL string mana yang ingin kita posting. Untuk ini, kami menggunakan opsi CURLOPT_POSTFIELDS

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

Terakhir, kita eksekusi postingannya, lalu tutup koneksinya


$result = curl_exec($curl_connection);
curl_close($curl_connection);

Saat ini, data seharusnya sudah diposting ke URL jarak jauh. Periksa ini, dan jika tidak berfungsi dengan baik, gunakan fungsi

<form method="post" action="http://www.domainname.com/target_url.php">
6 untuk melihat kesalahan yang mungkin terjadi

print_r(curl_getinfo($curl_connection));

Baris ini menampilkan berbagai informasi mengenai transfer. Ini harus digunakan sebelum menutup koneksi dengan

<form method="post" action="http://www.domainname.com/target_url.php">
7;

Anda juga dapat melihat nomor dan deskripsi kesalahan dengan menampilkan

<form method="post" action="http://www.domainname.com/target_url.php">
8 dan
<form method="post" action="http://www.domainname.com/target_url.php">
9

Jadi mari kita satukan semuanya. Ini kode kami


<?php

//create array of data to be posted
$post_data['firstName'] = 'Name';
$post_data['action'] = 'Register';

//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
    $post_items[] = $key . '=' . $value;
}

//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);

//create cURL connection
$curl_connection = 
  curl_init('http://www.domainname.com/target_url.php');

//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, 
  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

//perform our request
$result = curl_exec($curl_connection);

//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' . 
                curl_error($curl_connection);

//close the connection
curl_close($curl_connection);

?>

Posting data formulir tanpa menggunakan cURL

Jika server hosting Anda tidak dilengkapi dengan cURL terpasang (walaupun hal ini jarang terjadi karena cURL dipasang di sebagian besar server hosting komersial) dan Anda juga tidak memiliki akses ke server untuk memasangnya, ada alternatif lain

Salah satunya adalah menggunakan fungsi PHP


curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl_connection, CURLOPT_USERAGENT,
	"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
	curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
0 dan

curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl_connection, CURLOPT_USERAGENT,
	"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
	curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
1 untuk mengirim data yang diformat dengan benar ke server jarak jauh. Berikut adalah contoh kode yang melakukan hal ini

Bisakah Anda membuat formulir di PHP?

Formulir dapat dikirimkan ke halaman web itu sendiri menggunakan PHP . Tujuan utama pengiriman formulir ke diri sendiri adalah untuk validasi data. Validasi data berarti memeriksa data yang diperlukan untuk dimasukkan dalam kolom formulir. PHP_SELF adalah variabel yang mengembalikan skrip saat ini sedang dieksekusi.

Bisakah PHP mengumpulkan data formulir?

Superglobal PHP $_GET dan $_POST digunakan untuk mengumpulkan data formulir .

Bagaimana cara menghubungkan formulir dengan PHP?

Jawaban ini menguraikan cara menggunakan PHP untuk menghubungkan formulir HTML ke database MySQL. Kita akan menggunakan XAMPP sebagai software server untuk membuat database dan menjalankan PHP. .
Langkah 1. Siapkan XAMPP. .
Langkah 2. Buat formulir HTML. .
Langkah 3. Buat database MySQL. .
Langkah 4. Buat file PHP. .
Langkah 5. Buat koneksi

Bagaimana cara membuat formulir sederhana di PHP?

Membuat Bentuk Sederhana .
Buka editor teks Anda dan buat dokumen baru
Between the body tags, add the opening and closing
tags:.
Simpan halaman sebagai formulir. .
Setelah baris FORM pembuka (baris 6) tetapi sebelum tag FORM penutup, tekan Return untuk membuat baris baru
Sekarang mulailah menambahkan bidang formulir Anda dengan mengetik