2011-08-06 28 views
7

Tôi đang phát triển một hình thức, trong đó yêu cầu để gửi dữ liệu thu thập vào một trang web của bên thứ ba, theo hình thức: http://www.domain.com/page?key=value&key2=value2Làm thế nào để ngăn chặn được chuyển hướng với PHP cURL

tôi quyết định sử dụng cURL như tôi đã không tìm thấy một sự thay thế nào thuyết phục tôi.

Sự cố mà tôi đang chạy là khi biểu mẫu được gửi, cURL được thực thi nhưng tôi đang được chuyển hướng đến miền mà tôi đã chỉ định. Thay vào đó, tôi muốn chuyển hướng người dùng đến trang xác nhận trong miền của tôi chứ không phải đến trang web của bên thứ ba.

Dưới đây là một ví dụ về mã mà tôi đang sử dụng:

$URL="otherserver.domain.com"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://$URL"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "key=value2&key2=value2&key3=value3"); 
curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close ($ch); 

Làm thế nào tôi có thể ngăn ngừa khỏi bị chuyển hướng đến otherserver.domain.com?

Vui lòng cho tôi biết nếu bạn cho rằng thay vì sử dụng cURL, có cách tốt hơn để gửi dữ liệu đến trang web của bên thứ ba.

Cảm ơn tất cả các bạn trước

Trả lời

4

Hãy thử cách này:

<?php 
$url = "http://***.."; 
$ch = curl_init($url); 
$opts = array(CURLOPT_RETURNTRANSFER => 1, 
      CURLOP_HEADER => 1, 
      CURLOPT_FOLLOWLOCATION => 0, 
      CURLOPT_POST => 1, 
      CURLOPT_POSTFIELDS => "foo=ba"); 
curl_setopt_array($ch, $opts); 
echo curl_exec($ch); 
?> 
+0

Bạn có thể viết một ví dụ không? Tôi vẫn đang được chuyển hướng bất kể tôi sử dụng 0 hoặc 1 cho CURLOPT_FOLLOWLOCATION. Thực ra tôi đang nhận được nội dung của url mà tôi đã chỉ định. Tất cả những gì tôi muốn chỉ là gửi dữ liệu đã thu thập –

+0

Tôi đã tìm thấy sự cố và đó là do trang web của bên thứ ba gây ra sự chuyển hướng. –

5
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 

sẽ không kết quả đầu ra

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 

sẽ bỏ qua trang đổi hướng (vì vậy khi http://google.com/ chuyển bạn https://google.us/ này sẽ bỏ qua nó)

+0

Tôi cần chạy URL từ tệp .php. Tôi không cần phải lấy sản lượng của nó hoặc làm bất cứ điều gì. Tất cả những gì tôi muốn làm chỉ là gọi một URL, ví dụ: http://www.domain.com để máy chủ nhận được yêu cầu cho URL và thực hiện yêu cầu. Bất kỳ giúp đỡ? –

Các vấn đề liên quan