Hướng dẫn php post to another php - bài php đến một php khác

32

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm thế nào tôi có thể thực hiện yêu cầu bài đăng đến một trang PHP khác trong tập lệnh PHP? Tôi có một máy tính phía trước làm máy chủ trang HTML, nhưng khi người dùng nhấp vào nút, tôi muốn một máy chủ phụ trợ để xử lý và sau đó gửi thông tin trở lại máy chủ phía trước để hiển thị người dùng. Tôi đã nói rằng tôi có thể có một trang PHP trên máy tính phía sau và nó sẽ gửi thông tin trở lại mặt trước. Vì vậy, một lần nữa, làm thế nào tôi có thể thực hiện yêu cầu bài đăng đến một trang PHP khác, từ một trang PHP?

Hướng dẫn php post to another php - bài php đến một php khác

Hỏi ngày 2 tháng 8 năm 2009 lúc 0:05Aug 2, 2009 at 0:05

Có thể cách dễ nhất để thực hiện PHP thực hiện yêu cầu POST là sử dụng Curl, như một phần mở rộng hoặc đơn giản là chuyển sang quy trình khác. Đây là một mẫu bài viết:

// where are we posting to?
$url = 'http://foo.com/script.php';

// what post fields?
$fields = array(
   'field1' => $field1,
   'field2' => $field2,
);

// build the urlencoded data
$postvars = http_build_query($fields);

// open connection
$ch = curl_init();

// set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);

// execute post
$result = curl_exec($ch);

// close connection
curl_close($ch);

Ngoài ra, hãy kiểm tra bộ các lớp Zend_http trong khung Zend, cung cấp một ứng dụng khách HTTP có khả năng khá có khả năng được viết trực tiếp trong PHP (không yêu cầu tiện ích mở rộng).

Chỉnh sửa năm 2014 - Chà, đã được một thời gian kể từ khi tôi viết điều đó. Ngày nay, đáng để kiểm tra Guzle mà một lần nữa có thể hoạt động có hoặc không có phần mở rộng Curl. - well, it's been a while since I wrote that. These days it's worth checking Guzzle which again can work with or without the curl extension.

Đã trả lời ngày 2 tháng 8 năm 2009 lúc 0:11Aug 2, 2009 at 0:11

Paul Dixonpaul DixonPaul Dixon

291K51 Huy hiệu vàng310 Huy hiệu bạc344 Huy hiệu đồng51 gold badges310 silver badges344 bronze badges

4

Giả sử cài đặt PHP của bạn có phần mở rộng Curl, nó có thể là cách dễ nhất (và hoàn chỉnh nhất, nếu bạn muốn).

Cắt hấp thụ mẫu:

//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
                      'lname'=>urlencode($last_name),
                      'fname'=>urlencode($first_name),
                      'email'=>urlencode($email)
               );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

Tín dụng truy cập http://php.dzone.com. Ngoài ra, đừng quên truy cập (các) trang thích hợp trong hướng dẫn sử dụng PHP

Đã trả lời ngày 2 tháng 8 năm 2009 lúc 0:19Aug 2, 2009 at 0:19

J.C. Inacioj.C. InacioJ.C. Inacio

4.4122 Huy hiệu vàng20 Huy hiệu bạc25 Huy hiệu Đồng2 gold badges20 silver badges25 bronze badges

Để xử lý PHP, hãy nhìn vào Curl. Nó sẽ cho phép bạn gọi các trang ở mặt sau của bạn và lấy dữ liệu từ nó. Về cơ bản, bạn sẽ làm điều gì đó như thế này:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_URL,$fetch_url);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt ($ch,CURLOPT_USERAGENT, $user_agent;
curl_setopt ($ch,CURLOPT_CONNECTTIMEOUT,60);
$response = curl_exec ( $ch );
curl_close($ch);

Bạn cũng có thể xem xét tiện ích mở rộng PHP HTTP.

Đã trả lời ngày 2 tháng 8 năm 2009 lúc 0:06Aug 2, 2009 at 0:06

Tyler Cartertyler CarterTyler Carter

59,8K20 Huy hiệu vàng126 Huy hiệu bạc149 Huy hiệu đồng20 gold badges126 silver badges149 bronze badges

4

index.php

$url = 'http://[host]/test.php';
$json = json_encode(['name' => 'Jhonn', 'phone' => '128000000000']);

$options = ['http' => [
    'method' => 'POST',
    'header' => 'Content-type:application/json',
    'content' => $json
]];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);

test.php

$raw = file_get_contents('php://input');
$data = json_decode($raw, true);
echo $data['name']; // Jhonn

Đã trả lời ngày 24 tháng 9 năm 2019 lúc 10:16Sep 24, 2019 at 10:16

Đối với những người sử dụng Curl, lưu ý rằng tùy chọn Curlopt_Post được lấy làm giá trị boolean, do đó thực sự không cần phải đặt nó thành số trường bạn đang đăng. Đặt curlopt_post thành true (nghĩa là bất kỳ số nguyên nào ngoại trừ 0) sẽ chỉ yêu cầu Curl mã hóa dữ liệu là ứng dụng/X-www-form-urlencoded, mặc dù tôi cá là điều này không cần thiết khi bạn chuyển chuỗi urlencoded dưới dạng curlopt_postfield Curl đã cho biết mã hóa theo loại giá trị (chuỗi vs mảng) mà tùy chọn sau này được đặt thành.
Setting CURLOPT_POST to TRUE (i.e. any integer except zero) will just tell cURL to encode the data as application/x-www-form-urlencoded, although I bet this is not strictly necessary when you're passing a urlencoded string as CURLOPT_POSTFIELDS, since cURL should already tell the encoding by the type of the value (string vs array) which this latter option is set to.

Cũng lưu ý rằng, vì PHP 5, bạn có thể sử dụng chức năng http_build_query để tạo ra urlencode php mảng trường cho bạn, như thế này:

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));

Đã trả lời ngày 13 tháng 5 năm 2013 lúc 8:52May 13, 2013 at 8:52

Matpopmatpopmatpop

1.8891 Huy hiệu vàng19 Huy hiệu bạc35 Huy hiệu đồng1 gold badge19 silver badges35 bronze badges

Giải pháp nằm trong Target = "_ Blank" như thế này:

http://www.ozzu.com/website-design-forum/multiple-form-submit-actions-t25024.html

Chỉnh sửa biểu mẫu như thế này:

<form method="post" action="../booking/step1.php" onsubmit="doubleSubmit(this)">

Và sử dụng tập lệnh này:

    <script type="text/javascript">
<!--
function doubleSubmit(f)
{
  // submit to action in form
  f.submit();
  // set second action and submit
  f.target="_blank";
  f.action="../booking/vytvor.php";
  f.submit();
  return false;
}
//-->
</script>

Đã trả lời ngày 27 tháng 8 năm 2016 lúc 14:01Aug 27, 2016 at 14:01

Mặc dù không lý tưởng, nhưng nếu tùy chọn Curl không làm điều đó cho bạn, có thể thử sử dụng shell_exec ();

Đã trả lời ngày 15 tháng 2 năm 2019 lúc 10:09Feb 15, 2019 at 10:09

Phương pháp Curl rất phổ biến vì vậy có nó là tốt để sử dụng nó. Bạn cũng có thể giải thích thêm các mã đó với một số bình luận bổ sung vì người mới bắt đầu có thể hiểu chúng.

Đã trả lời ngày 6 tháng 11 năm 2009 lúc 3:11Nov 6, 2009 at 3:11

1

Làm thế nào chúng ta có thể gửi dữ liệu từ trang này sang trang khác trong PHP?

Mở trình duyệt web của bạn và nhập địa chỉ localhost của bạn theo sau là '\ form1.php'. Đầu ra: Nó sẽ mở biểu mẫu của bạn như thế này, thông tin được hỏi sẽ được chuyển đến trang PHP được liên kết với biểu mẫu (Action = Tiết Form2. PHP) với việc sử dụng phương thức POST. php'. Output: It will open your form like this, asked information will be passed to the PHP page linked with the form (action=”form2. php”) with the use of the POST method.

$ _ Bài viết trong PHP là gì?

PHP $ _POST là một biến siêu toàn cầu PHP được sử dụng để thu thập dữ liệu biểu mẫu sau khi gửi biểu mẫu HTML với Phương thức = "Post".$ _POST cũng được sử dụng rộng rãi để vượt qua các biến.Ví dụ dưới đây hiển thị một biểu mẫu có trường đầu vào và nút gửi.a PHP super global variable which is used to collect form data after submitting an HTML form with method="post". $_POST is also widely used to pass variables. The example below shows a form with an input field and a submit button.

Làm thế nào đăng URL trong PHP?

Nếu bạn đang tìm cách đăng dữ liệu lên URL từ chính mã PHP (mà không sử dụng biểu mẫu HTML), nó có thể được thực hiện với Curl.Nó sẽ trông như thế này: $ url = 'http://www.someurl.com';$ myvars = 'myvar1 ='.$ myvar1.with curl. It will look like this: $url = 'http://www.someurl.com'; $myvars = 'myvar1=' . $myvar1 .

Làm thế nào để bạn thực hiện một cuộc gọi API bài đăng trong PHP?

Để thực hiện yêu cầu POST đến điểm cuối API, bạn cần gửi yêu cầu POST HTTP đến máy chủ và chỉ định tiêu đề yêu cầu loại nội dung chỉ định loại phương tiện dữ liệu trong phần thân của yêu cầu POST.Tiêu đề độ dài nội dung cho biết kích thước của dữ liệu trong phần thân của yêu cầu POST.send an HTTP POST request to the server and specify a Content-Type request header that specifies the data media type in the body of the POST request. The Content-Length header indicates the size of the data in the body of the POST request.