Skocz do zawartości

Curl i problem z przepisaniem captcha


JaSam

Rekomendowane odpowiedzi

Mam problem próbuje uprościć rejstracje na stronce zeby tylko wystarczylo recznie wpisac wyswietlany obrazek a reszta pul byla wypelniana automatycznie i o ile pola sie niby wypelniaja to kod z obrazka jest zawsze zly,

Plik wyswietlajacy obrazek do wpisania i przekazujacy go dalej.

<?php

$Curl_Session = curl_init('https://www.takeagift.pl/');
curl_setopt ($Curl_Session, CURLOPT_POST, 0);
curl_setopt($Curl_Session, CURLOPT_URL,'https://www.takeagift.pl/rejestracja');  
curl_setopt ($Curl_Session, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($Curl_Session, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2');
curl_setopt($Curl_Session, CURLOPT_HEADER, 1);
curl_setopt($Curl_Session, CURLOPT_COOKIESESSION, true);  
curl_setopt($Curl_Session, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($Curl_Session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($Curl_Session, CURLOPT_REFERER, 'https://www.takeagift.pl/rejestracja'); 
$lol = curl_exec($Curl_Session); //wchodzi na stronke rejstracji aby zdobyc url orazka captcha.
$lox = explode('captcha.php',$lol); //zdobywa numerek po captcha?xxxx
$lox = explode('"', $lox[1]);
$lox = trim($lox[0],'?'); // ma numerek
curl_setopt($Curl_Session, CURLOPT_URL, "https://www.takeagift.pl/includes/modules/captcha.php?".$lox); //wyciaga Obrazek
curl_setopt($Curl_Session, CURLOPT_RETURNTRANSFER,1);
curl_setopt($Curl_Session, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($Curl_Session, CURLOPT_HEADER, 0);
$result=curl_exec($Curl_Session);
curl_close($Curl_Session);  
$fp=fopen('token.gif','w+'); //zapisuje obrazek do pliku na dysku
fwrite($fp, $result);
fclose($fp);	
echo '<img src="/token.gif" alt="go**o" border="0">'; //wyswietla token z dysku.
echo '<form action="poster.php" methpd="post">';  
echo '<input type="text" name="capti"/>'; //pole do wpisania kodu.
echo '<input type="submit"/>';
echo '</form>';
?>

Plik odbierajacy kod z obrazka i wypelniajacy pola w ankiecie a nastepnie postujacy te dane, niestety kod z obrazka zawsze jest zly:

<?php
$capt = $_REQUEST["capti"]; //kod z poprzednieego formularza
$Curl_Session = curl_init('');
curl_setopt ($Curl_Session, CURLOPT_POST, 1);
curl_setopt($Curl_Session, CURLOPT_URL,'https://www.takeagift.pl/rejestracja');
curl_setopt ($Curl_Session, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($Curl_Session, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2');
curl_setopt($Curl_Session, CURLOPT_HEADER, 1);
curl_setopt($Curl_Session, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($Curl_Session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($Curl_Session, CURLOPT_REFERER, 'https://www.takeagift.pl/rejestracja');
//-- dane wpisywane do formularza
$imie = 'Kuba';
$nazwisko = 'Nazwisko';
$ulica = 'ulica';
$dom = 'nr domu';
$mieszkanie = 'nr mieszkania';
$ulica = $ulica." ".$dom."/".$mieszkanie;
$numerwoj = '1'; //numer wojewodztwa z listy w formularzu
$miasto = 'nazwa miasta';
$dzien = 'dzien urodzenia';
$miesiac = 'miesiac urodzenia';
$rok = 'rok urodzenia';
$email = 'mail';
$kod = 'kod pocztowy'; 
$telefon = 'telefon';
$login = $nazwisko.rand(1,1000); //login
// generator dobrego hasla zeby bylo dobre i mocne
$alfa = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
$token = "";
for($i = 0; $i < 9; $i ++) {
  $token .= $alfa[rand(0, strlen($alfa))];
  }	
$pass = $token;
echo $pass  //pokaZUJE password ktory wygenerowal sie.
 curl_setopt ($Curl_Session, CURLOPT_POSTFIELDS, "tagRImieNazwisko=$imie $nazwisko&tagRLogin=$login&tagRPassword=$pass&tagRPassword2=$pass&tagREmail=$email&tagRDataD=$dzien&tagRDataM=$miesiac&tagRDataR=$rok&tagRTelefon=$telefon&tagRAdres=$ulica&tagRMiasto=$kod $miasto&tagRWojewodztwo=$numerwoj&tagROswiadczenie1=1&tagROswiadczenie2=1&tagRkod=$capt");
$lol = curl_exec($Curl_Session);
echo $lol;
echo '<img src="/token.gif" alt="go**o" border="0">';
//wyswietla wszystkie dane do weryfikacji
echo $imie."<br>".$nazwisko."<br>".$ulica."<br>".$wojewodztwo."<br>".$miasto."<br>".$dzien."<br>".$miesiac."<br>".$rok."<br>".$email."<br>".$kod."<br>".$login."<br>".$pass."<br>".$telefon;	   
?>

Wiem napewno ze ciastko z pierwszego pliku sie zapisuje nie wiem co zrobic zeby obrazek ktory wpisze ciagle byl aktualny gdy wypelniam pola w 2gim pliku.

Odnośnik do komentarza
Udostępnij na innych stronach

A co na do tego cURL !? Zapamiętywanie wpisanych danych w pola formularza należy obsłużyć w sesji, lub cookie wystawianym w javascript.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Możliwe ale moja uiętnosć obsługi php jest w najlepszym przypadku na poziomie podstawowym duzo naszukalem sie n google zeby zrobic coś takiego, i niestety nie wiem

jak podobny skrypt zrobic w javie albo przy pomocy sesji, dlatego chciał bym to zrobic w ten sposob.

Lecz jak widać nie wiem co zrobic z tym obrazkiem przeklętym zeby dzialal kod ktory odczytam.

Był bym bardzo wdzieczny gdybyś mógł mi z tym pomóc.

Odnośnik do komentarza
Udostępnij na innych stronach

@Był bym bardzo wdzieczny gdybyś mógł mi z tym pomóc.

Też ci pomagam pisząc, że źle to robisz.

@a reszta pul byla wypelniana automatycznie

To skąd mają być te dane pobierane ?

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

@Był bym bardzo wdzieczny gdybyś mógł mi z tym pomóc.

Też ci pomagam pisząc, że źle to robisz.

@a reszta pul byla wypelniana automatycznie

To skąd mają być te dane pobierane ?

To bylo tak ze najpierw napisałem ten wypełniacz żeby zobaczyć czy umie, lecz potem uświadomiłam sobie że tam jest obrazek no i nie wiedziałem jak go odczytać.

zrobiłem wiec w nowym pliku sam obrazek i pole żeby przepisać do niego kod z obrazka a resztą na razie się nie przejmowałem skoro i tak ta jedna rzecz nie działa.

Pola do wypełnienia miały być w tym samym pliku co przepisywanie obrazka przekazane dalej do tej 2 giej stronki tak jak i kod.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie mam pojęcia o co ci chodzi...

EOT

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Nie mam pojęcia o co ci chodzi...

EOT

PO prostu chciałem zrobić coś co pokaze mi captcha i pola do wypełnienia i potem wstawi to co napisze do formularza a ten ładnie zadziała i zarejestruje users.

Wiem ze to głupie bo w czasie w którym to kombinuje juz bym sie dawno zarejestrować, ale tak a nóż się czegoś nauczę.

Ogólnie chodzi o to zeby mail sie sam podawal generujac sie z imienia i nazwiska oraz mojej domeny i hasło sie generowalo automatycznie w miare trudne zeby uproscic rejstracje, dzieki temu starczylo by zebym znajomemu podal formularza a on tylko wpisze imie nazwisko i zaloży mu sie konto na jego mailu z mojej domeny.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie czytałem wszystkiego i nie analizowałem - uprzedzam, ale problem masz typowy - obrazek zczytujesz w innej sesji, niż ta, która odpowiada za wpisanie kodu z tego obrazka - w takiej sytuacji token zawsze będzie zły. Wszystko musisz obsłużyć w jednej sesji.

Nieruchomości bez pośredników? Tylko NoBroker.pl - platforma ogłoszeń bezpośrednich.

Odnośnik do komentarza
Udostępnij na innych stronach

Przy każdym generowaniu grafiki jest generowany nowy token i zapisywany w sesji wiec jaki jest sens żądania curl i zapisywania grafiki to nie mam pojęcia... Zresztą jak już pisałem nie mam bladego pojęcia co autor tego topika chce zrealizować pobierając zadaniem HTTP grafikę tokena.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Przy każdym generowaniu grafiki jest generowany nowy token i zapisywany w sesji wiec jaki jest sens żądania curl i zapisywania grafiki to nie mam pojęcia... Zresztą jak już pisałem nie mam bladego pojęcia co autor tego topika chce zrealizować pobierając zadaniem HTTP grafikę tokena.

Sens jest taki że dostajesz inny token niż komputer który pobiera za pomoca phpa :) Prawidłowo powinno to wyglądać tak:

-pobierasz cookie ze strony gdzie jest captcha i zapisujesz do pliku cookie.txt

-pobierasz captcha i zapisujesz na dysk

-wyswietlasz strone html w ktorym w <img> podajesz lokalna sciezke

-user wpisuje kod z obrazka i postuje do skryptu

-skrypt odczytuje kod ktory przeslal user, i uzywajac cookie zapisanego w cookie.txt wysyla tresc formularza do serwisu z tokenem B)

a nie dziala bo nie uzywa COOKIE_JAR i COOKIE_FILE przy pobieraniu obrazka ;)

pozycjonuj.png
Odnośnik do komentarza
Udostępnij na innych stronach

nie mam bladego pojęcia co autor tego topika chce zrealizować pobierając zadaniem HTTP grafikę tokena.

Może chce napisać spambota, a że jest captcha to chce wysyłać kody do przepisania użytkownikom jednej ze swoich stron, którzy nie będą wiedzieli że pochodzą z innej strony i je przepiszą.

Odnośnik do komentarza
Udostępnij na innych stronach

@Może chce napisać spambota..

Podejrzewam, że nie trafiłeś w sedno intencji autora topicku

:)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności