2014-10-22 6 views
0

Я хочу войти на сайт автоматически, используя завиток. Но на сайте говорится, что файлы cookie должны быть включены в вашем браузере. Я много искал, но не мог найти его. Если бы кто-нибудь мог помочь,

После многократного поиска в справке на веб-сайте я узнал, что на сайте используются два файла cookie Moodlesession и sessionid. Я не знаю, как с ними справиться. Пожалуйста помоги.

форма выглядит следующим образом:
PHP CURL логин сайта

<form action="http://site_name/login/index.php" method="post" id="login"> 
     <div class="loginform"> 
     <div class="form-label"><label for="username">Username</label></div> 
     <div class="form-input"> 
      <input type="text" name="username" id="username" size="15" value=""> 
     </div> 
     <div class="clearer"><!-- --></div> 
     <div class="form-label"><label for="password">Password</label></div> 
     <div class="form-input"> 
      <input type="password" name="password" id="password" size="15" value=""> 
      <input type="submit" value="Login"> 
      <input type="hidden" name="testcookies" value="1"> 
     </div> 
     <div class="clearer"><!-- --></div> 
     </div> 
    </form> 

Завиток скрипта я использую:

<?php 
    $username="myusername"; 
    $password="mypassword"; 
    $url="login_url"; 
    $cookie="cookie.txt"; 
    $postdata="username=".$username."&password=".$password; 
    $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, 0); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
    curl_setopt ($ch, CURLOPT_REFERER, $url); 

    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
    curl_setopt ($ch, CURLOPT_POST, 1); 
    curl_setopt ($ch, CURLOPT_COOKIESESSION, true); 
    curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
    $result = curl_exec ($ch); 

echo $result; 
curl_close($ch); 

>

+0

нужно всего лишь включить куки вашего браузера –

+0

Где cookie.txt и какое разрешение? – Sal00m

+0

В настоящее время я тестирую его на локальном сервере. Файл cookie находится в одной и той же папке скрипта. Я не устанавливал никаких разрешений для него. – lonecoder

ответ

0

Может быть, вы должны отправить в PostData? измените входные данные 'testcookies'. Что-то вроде:

$postdata="username=".$username."&password=".$password."&testcookies=1"; 
+0

нет, это не работает. – lonecoder

1

Добавить эту опцию cURL конфигурации:

curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt'); 

И обеспечить вас есть файл с именем cookie.txt (например, записать его в директорию/TMP) и давать разрешения 777 (или сделать апача пользователь пользователь этого файла и предоставить разрешения 644)

проверить это answer

+0

не могли бы вы рассказать мне, как устанавливать разрешения на платформе Windows? – lonecoder

+0

Я использую ubuntu, но, afaik, это: Щелкните правой кнопкой мыши в файле, свойствах, а затем в Security вы можете установить владельца и разрешения. Вы можете искать в google о том, как изменять разрешения, требующие «окна разрешения на изменение файлов», – Sal00m

Смежные вопросы