2013-05-03 35 views
0

我在使用cURL發送PHP Post請求時遇到了一些麻煩。PHP發佈請求 - 保留在同一頁面

代碼應該做什麼:使用Post Data轉到http://www.example.com/index.php

代碼的作用是:在運行腳本的頁面中加載www.example.com。如果我嘗試使用該網站,我會得到一個404錯誤。

這裏是我的代碼:

$url = 'https://www.example.com/index.php'; 

$fields = array(
    'info1'=>'par1', 
    'info2'=>'par2' 
); 

$postvars=''; 
$sep=''; 
foreach($fields as $key=>$value) 
{ 
    $postvars.= $sep.urlencode($key).'='.urlencode($value); 
    $sep='&'; 
} 


$ch = curl_init(); 

curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_POST,count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars); 

$result = curl_exec($ch); 

curl_close($ch); 
+0

這是因爲捲曲的帖子一$ _ POST,而不是$ _GET(這是 「通過網站」) – 2013-05-03 18:24:52

回答

0

試試這個:

$ch = curl_init(); 

curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_POST,count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//Added this 

$result = curl_exec($ch); 

curl_close($ch); 
+0

隱而不宣沒有工作。 :( 這隻會給我一個空白頁 – Timo 2013-05-03 18:46:46

0

你看404每次嘗試從YOUR網站打開一個不存在的鏈接時。

那是因爲你的瀏覽器嘗試打開而不是yourwebsite.com/nicelink.phpexample.com/nicelink.php

爲什麼會出現這種情況?

讓我們來看看你做了什麼:
1)您打開yourwebsite.com/script.php
2)腳本從example.com和輸出到您的瀏覽器在yourwebsite.com背景下的負載數據
3)所有像<a href="nicelink.php">nice link</a>
不相關到您的瀏覽器當前打開的地址yourwebsite.com


並使用http_build_query()

$postvars = http_build_query($fields); 

代替:

$postvars=''; 
$sep=''; 
foreach($fields as $key=>$value) 
{ 
    $postvars.= $sep.urlencode($key).'='.urlencode($value); 
    $sep='&'; 
} 
+0

是的,我已經知道,但有沒有辦法「繞過」,它不會加載我的網站頁面 – Timo 2013-05-03 20:38:03

+0

解析從加載的所有鏈接頁面,將其更改爲site.com/curlscript.php?link=parsedlink – 2013-05-03 20:41:32