Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z cURL
-lukasz1234567-
post
Post #1





Goście







Witam wszystkich serdecznie.
Piszę, ponieważ mam problem... Napisałem sobie taki o to skrypt:
Kod
<?php

//inicjalizacja i ustawienie url'a
$url = 'http://localhost/admin';
$curl = curl_init();

//ustawienie opcji
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 3);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'login=admin&haslo=1234566');
curl_setopt($curl, CURLOPT_REFERER, $url);

//wykonanie i zamkniecie
curl_exec($curl);
curl_close($curl);


$url2 = 'http://localhost/admin/index.php?strona=druzyny&operacja=zmien_aktywnosc_roz&id=4&roz=1';
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 3);

curl_exec($curl);
curl_close($curl);

?>


Założenie mam takie, że skrypt ten będzie zmieniał pokazywanie drużyny w menu on na off.
Jednak po uruchomieniu tego skryptu w konsoli nie dzieje się nic. Po wejściu na stronę, opcja nie działa.
A w konsoli, nie wyświetlają się żadne błędy. Dlatego właśnie zwracam się z prośbą o pomoc do Was. Co takiego robię źle?

Dodam, że pole logowania do panelu administracyjnego zawiera następujące pola:
Kod
<div style="width: 400px; background: #eee; margin: 100px auto; padding: 50px; text-align: center;"><img src='Users.png'/><br><br /><form action='index.php' method=post>Login: <input type=text id=field1 name=login><br /><br />Hasło: <input type=password id=field2 name=haslo><br /><br /><input type=submit value='Zaloguj!'></form></div>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Tajgeer
post
Post #2





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


A czego się spodziewałeś? Przecież podany przez Ciebie skrypt nie wyświetli dosłownie nic. Jeśli ustawiłeś już CURLOPT_RETURNTRANSFER na 1, to wypadałoby jakoś wyświetlić to, co cURL pobrał (czy to poprzez przypisanie wyniku curl_exec() do zmiennej, czy przez zwykłe "echo").
Go to the top of the page
+Quote Post
-lukasz1234567-
post
Post #3





Goście







Przypisałem teraz wynik ostatniego curl_exec do zmiennej i po wykonaniu wywala mi źródło indexu logowania do panelu.

Przepraszam, za tak błache problemy, ale jestem zielony jeśli chodzi o curl, bo dopiero zacząłem.
Liczę na wyrozumiałość.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Przypisałem teraz wynik ostatniego curl_exec do zmiennej i po wykonaniu wywala mi źródło indexu logowania do panelu.
No tak, bo sesja/logowanie pamietana jest w ciachach, a ty chiach nie zapisujesz i nie przekazujesz dla ostatniego curl_exec.

Zajrzyj do manuala curl bo masz tam napisane jak poprawnie obsluzyc autoryzacje wraz z ciachami by pamietalo logowanie
Go to the top of the page
+Quote Post
-lukasz1234567-
post
Post #5





Goście







[code]
<?php

$url = 'http://localhost/admin';
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 3);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'login=admin&haslo=1234567');
curl_setopt($curl, CURLOPT_REFERER, $url);

curl_exec($curl);

$curl1 = curl_init('http://localhost/admin/index.php');
curl_setopt($curl1, CURLOPT_HEADER, 1);
curl_setopt($curl1, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
curl_setopt($curl1, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
curl_exec($curl1);

curl_close($curl1);
curl_close($curl);


$url2 = 'http://localhost/admin/index.php?strona=druzyny&operacja=zmien_aktywnosc_roz&id=4&roz=1';
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 3);

curl_exec($curl);
//$zmienna = curl_exec($curl);
//echo($zmienna);
curl_close($curl);

?>

Mam coś takiego, i ciastka zapisują się.
Jak przy drugim użyciu curla wczytać je, aby wiedział on, że jest zalogowany i może wykonać operacje w panelu administratora?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




No przy drugim wywolaniu tez masz ustawic te ciacha....
curl_setopt($curl1, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
curl_setopt($curl1, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
Go to the top of the page
+Quote Post
-lukasz1234567-
post
Post #7





Goście







A powiedz mi, czy w ogóle w dobry sposób te ciacha zapisuje:

Kod
$url = 'http://localhost/admin';
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 3);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'login=admin&haslo=1234567');
curl_setopt($curl, CURLOPT_REFERER, $url);

curl_exec($curl);

$curl1 = curl_init('http://localhost/admin/index.php');
curl_setopt($curl1, CURLOPT_HEADER, 1);
curl_setopt($curl1, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
curl_setopt($curl1, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
curl_exec($curl1);

curl_close($curl1);
curl_close($curl);
Go to the top of the page
+Quote Post
-lukasz1234567-
post
Post #8





Goście







Ustawiłem ciastka, ale po wykonaniu w konsoli wyświetla się źródło indexu logowania a akcja nadal nie jest wykonana...
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




No ale czemu logowanie rozbiles na dwa zadania? Jedno z haslem a drugie z ciachem? Haslo i ciacho maja byc w tym samym jednym zadaniu.... mowilem, bys zajrzal do manuala bo tam masz to podane na przykladach. no ale po co...
Go to the top of the page
+Quote Post
-lukasz1234567-
post
Post #10





Goście







Dziękuje za pomoc. Już wszystko działa tak, jakbym chciał. Następnym razem od razu zajrzę do manuala (IMG:style_emoticons/default/smile.gif)
Dziękuje jeszcze raz (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 13:18