2013-06-20 3 views
0

Мой PHP скрипт выполняет следующиепроверка, если удаленный веб-страница была изменена

  1. Это Логины на удаленный сервер с Логин и пароль с помощью CURL, который прекрасно работает. echo $result; отображает зарегистрированные страницы.
  2. Во-вторых, это доступ к внутренней странице (для которой требуется человек, который должен войти в систему) и проверить, удалена ли версия изменена (обновлена) или нет, с помощью CURL.

Ошибка я получаю в Part 2 of the code below"Access denied", я думаю, что печенье не сохраняющиеся в течение всей сессии? Это проблема, какие изменения я должен делать в коде.

<? 
//Part 1 
$username="username; 
$password="pwd"; 
$url="http://abc.com/home?q=login&destination=filmmaker%2Fhome"; 
$cookie="cookie.txt"; 

$postdata = "name=".$username."&pass=".$password."&form_id=user_login&edit-name=".$username."&remember_me=1"; 



$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 

echo $result; 

//Part 2 

$curl = curl_init("http://abc.com/filmmaker/home"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_NOBODY, true); 
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_FILETIME, true); 
$result = curl_exec($curl); 

if ($result === false) { 
    die (curl_error($curl)); 
} 

$timestamp = curl_getinfo($curl, CURLINFO_FILETIME); 
if ($timestamp != -1) { //otherwise unknown 
    echo date("Y-m-d H:i:s", $timestamp); //etc 
} 
curl_close($ch); 


?> 
+0

Часть 2 не использует файл куки. – Barmar

+0

@Barmar Итак, как я могу использовать файл Cookie в части 2? – user580950

ответ

1

Часть 2 Потребности:

curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); 

Это будет отправлять куки, которые были сохранены с помощью опции CURLOPT_COOKIEJAR в части 1.

+0

Я пробовал такую ​​же ошибку, доступ запрещен – user580950

+0

Я обновил код в вопросе – user580950

+0

Вы проверили файл 'cookie.txt', чтобы узнать, написано ли оно? Возможно, есть проблема с разрешениями. – Barmar