Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wypełnianie formularzy za pomocą culr
Forum PHP.pl > Forum > Przedszkole
Kargul1000
Witam!

Poniższy kod który zamieściłem powinien, łącząc się z .../a.php, wypełniać stworzone w tym pliku formularze.

  1.  
  2. <?php
  3. function createPostString($aPostFields) {
  4. foreach ($aPostFields as $key => $value) {
  5. $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
  6. }
  7. return implode('&', $aPostFields);
  8. }
  9.  
  10. $postFields['imie'] = 'JAN';
  11. $postFields['nazwisko'] = 'NOWAK';
  12. $postFields['email'] = 'example@example.com';
  13. $postFields['wiadomosc'] = 'mamy jakiś text ~!@#$%^&*()_+ żłóąęŻĄÓŁĘĆŚćś';
  14.  
  15. $ch = curl_init('http://www.form.pl/formu/a.php');
  16. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  17. curl_exec($ch);
  18. curl_close($ch);
  19. ?>
  20.  
  21.  


Moje pytanie jest następujące. Czemu ich nie wypełnia po odpaleniu skryptu przekieruje na stronę .../a.php ale formularze są puste sad.gif
Proszę o podpowiedź z góry dziękuję.
nospor
Kod ten sluzy do wysylania formularza na serwer, a nie do wypelniania pol formularza html...
Sephirus
1. To nie wypełni formularzy ogólnie - to wysyła dane zamiast nich
2. Nie pamiętam czy CURLOPT_POSTFIELDS nie wymusza POST ale dałbym jeszcze CURLOPT_POST ustawione na true

EDIT: literówka
Kargul1000
hymm smile.gif podpowiedzcie jak powinien wygladać kod do wypełniania z automatu formularzy chce napisać bota no ale jak widać jestem w powijakach D:
nospor
Zrozum wkoncu roznice:
jedno to wypelnienie pol formularza i widzenie tego wypelnienia
a drugie to wyslanie pol formularza postem

Boty mają za zadanie robienie tego drugiego i to własnie robi Twoj kod.

Jedyne czego moze brakowac to to:
curl_setopt($ch, CURLOPT_POST, 1);
pisał o tym Sephirus
Kargul1000
A już czaję smile.gif właśnie chodzi mi o to żeby z automatu wszystko się wypełniało i jeszcze nacisnęło przycisk submit
nospor
No to mowie: twoj kod wlasnie to robi.....
Jedyne czego nie widze, to kodu submita. Calkiem mozliwe ze przez jego brak, serwer nie przyjmuje poprawnie twojego żądania.
Kargul1000
Znaczy się sublit jest w pliku a.php tam gdzie jest cały formularz.
nospor
Pola forma tez są w a.php ale jakos w swoim kodzie je dodajesz...... submit tez nalezy wyslac postem...
$postFields['nazwa_submita'] = 'wartosc submita';
Kargul1000
A no tak tak ale i tak nie działa, bo jak dobrze rozumie odpalam skrypt który zamieściłem powyżej skrypt odpala a.php wypełnia i wywołuje action form który ładuje ../../../ tak sobie wpisałem ale nie działa sad.gif
nospor
Nie, nie ma odpelania a.php, wypelnienia, i dopiero potem zrobiea action form....

Zrozum wkoncu: na podany przez Ciebie adres czyli na a.php wysylane jest żądanie POST z polami ktore podales. Tu nie ma zadnej filozofii.
Jesli wiec w action form w pliku a.php jest inny adres niz a.php, czyli jest np. b.php, to twoj skrypt ma slac dane do b.php a nie a.php
Jesli zas jest tam a.php lub "nic" to twoj skrypt na chwilę obecną jest ok
Kargul1000
To znaczy tak skrypt curl.php wysyła dane do formularzy w a.php i po zadziałaniu <form method="post" action="../../../"> powinno mnie wywalic 3 foldery wyżej wraz z danymi z formularzy z pliku a.php ale tak się nie dzieje. Czemu ?
nospor
facepalmxd.gif
Toz ci tlumacze, ze twoj cURL ma slac dane pod adres jaki jest w ACTION formularza a nie tam gdzie jest formularz.... zacznij wkoncu czytac co sie do Ciebie pisze :/

Cytat
Jesli wiec w action form w pliku a.php jest inny adres niz a.php, czyli jest np. b.php, to twoj skrypt ma slac dane do b.php a nie a.php
Kargul1000
smile.gif sory smile.gif teraz czaje mój curl.php pomija formularze biggrin.gif czaje smile.gif Dzięki za cierpliwość smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.