2013-12-11 41 views
0

我試圖在頁面重新加載後使用cURL。首先,我需要從其他網站獲得問題,然後我想問用戶有關此問題的答案,然後使用get/post將其發送到同一頁面(我的頁面) 和之後: 使用cURL將答案發送給另一個頁。不幸的是,我得到的消息:cURL初始化並重新加載後訪問它

警告:curl_setopt():提供的參數是不是一個有效的捲曲處理 資源

($ CH變量不是重裝什麼我可以做網頁後可見它) 我的代碼:?

if(!isset($_GET['answer'])) 
{ 
$cookie = tempnam ("/tmp", "CURLCOOKIE"); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1"); 
curl_setopt($ch, CURLOPT_URL, $question_url); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$question = curl_exec($ch); 
echo $question. 
'<form name="input" method="get"> 
    Question: <input type="text" name="answer"> 
    <input type="submit" value="Send"> 
</form> '; 
} else 
{ 
    $postFields['answer'] = $_GET['answer']; 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_URL, $answer_url); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); 
    curl_exec ($ch); 
} 

我以爲我可以在會話初始化捲曲,但它不是工作壓力太大。

回答

0

請參閱將您的curl_init()放在條件之外。如果頁面正在重新加載,很有可能永遠不會被調用,這意味着您的捲曲連接不存在,因此錯誤。

$ch = curl_init(); 
if(!isset($_GET['answer'])) 
{ 
$cookie = tempnam ("/tmp", "CURLCOOKIE"); 
//removed 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1"); 
curl_setopt($ch, CURLOPT_URL, $question_url); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$question = curl_exec($ch); 
echo $question. 
'<form name="input" method="get"> 
    Question: <input type="text" name="answer"> 
    <input type="submit" value="Send"> 
</form> '; 
} else 
{ 
    $postFields['answer'] = $_GET['answer']; 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_URL, $answer_url); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); 
    curl_exec ($ch); 
} 

這樣你就知道無論條件運行的哪一部分都會有這個句柄。儘管PHP中的條件對於在if(在if之外可以訪問該變量)中定義的變量沒有範圍,但是如果if(太多ifs)從不運行開始,變量將永遠不會存在,無論範圍。

+0

如果我這樣做,我不會在PHP中的錯誤,但我從網站的消息「你沒有權限」 我認爲有一個問題與$ ch ($ ch在第一部分conition是不一樣的$ ch是在條件的第二部分) – user2796493

+0

你沒有權限做什麼?看着你的代碼,你似乎正在發佈一些網址,我不知道這個網址是什麼。 – Zarathuztra