投稿でウェブサイトにログインしましたが、問題ありません。GET メソッドでこのサイトを取得すると、すべて問題ありません (「こんにちは、ユーザー名 !」などを返します) が、このサイトに投稿を送信しようとすると、ログイン ページにリダイレクトされます。curl は post メソッドで Cookie セッションを送信しないようです。それを修正する方法? 私のコード:
public function curlInit()
{
$this->_ch = null;
$this->_ch = curl_init();
curl_setopt($this->_ch, CURLOPT_USERAGENT, $this->_userAgent);
curl_setopt($this->_ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($this->_ch, CURLOPT_CONNECTTIMEOUT, 25);
curl_setopt($this->_ch, CURLOPT_VERBOSE, 1);
curl_setopt($this->_ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies-jar.txt');
curl_setopt($this->_ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies-jar.txt');
curl_setopt($this->_ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($this->_ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($this->_ch, CURLOPT_HTTPHEADER, 1);
curl_setopt($this->_ch, CURLOPT_AUTOREFERER, 1);
if ($this->proxy)
{
curl_setopt ($this->_ch, CURLOPT_PROXY, $this->proxy);
}
}
public function getPostSite($url, $data)
{
$this->curlError = false;
curl_setopt($this->_ch,CURLOPT_URL, $url);
curl_setopt($this->_ch,CURLOPT_POST, 1);
curl_setopt($this->_ch,CURLOPT_POSTFIELDS, $data);
$result = curl_exec($this->_ch);
if (curl_errno($this->_ch))
{
$this->curlError = curl_errno($this->_ch);
return false;
}
return $result;
}
public function getGetSite($url)
{
curl_setopt($this->_ch,CURLOPT_POST, 0);
curl_setopt($this->_ch, CURLOPT_URL, $url);
$data = curl_exec($this->_ch);
return $data;
}