Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z formularzem POST
Forum PHP.pl > Forum > Przedszkole
pitrro131
Witam, mam problem z formularzem który jest wypełniany przez PHP.

Kawałek strony o który się rozchodzi to:

  1. <input type="text" name="menge" id="mengeNone" size="3" value="1" onKeyUp="generatePreis(None);"/>
  2. <input type="hidden" name="i" value="1" />
  3. <input type="hidden" name="ca" value="1" />
  4. <input type="hidden" name="pr" id="preisNone" value="&euro; 0,25"/>
  5. <input type="hidden" name="pr_ce" id="preis_centNone" value="25"/>
  6. <input type="hidden" name="in" value="bi"/>
  7. <input id="submitFormNone" class="formbutton" type="submit" name="submitForm" value="&euro; 0,25">


Kawałek PHP który ma za zadanie wypełnić formularz:
  1. $page = $this->get_page($this->url_buy,'post','menge='.$ile.'&i=1&ca=1&pr=0,25&pr_ce=25&in=bi',
  2. false,
  3. $this->url_buy_ref);


I problem w tym że formularz się w ogóle nie chce wypełnić...



Dodam tylko że inny formularz się już dobrze wypełnia a jest taki sam.

  1. <input type="text" name="menge" id="mengeNone" size="3" value="1" onKeyUp="generatePreis(None);"/>
  2. <input type="hidden" name="i" value="1" />
  3. <input type="hidden" name="ca" value="1" />
  4. <input type="hidden" name="pr" id="preisNone" value="0.25"/>
  5. <input type="hidden" name="pr_ce" id="preis_centNone" value="25"/>
  6. <input type="hidden" name="in" value="bi"/>
  7. <input id="submitFormNone" class="formbutton" type="submit" name="submitForm" value="0,25 z&#x142;">


PHP:

  1. $page = $this->get_page($this->url_buy,'post','menge='.$ile.'&i=1&ca=1&pr=0.25&pr_ce=0.25&in=bi',
  2. false,
  3. $this->url_buy_ref);


No i to drugie działa idealnie, pomocy:(
darko
Cytat
Kawałek PHP
Dobrze powiedziane smile.gif, daj więcej tego "kawałka" kodu przynajmniej zawartość metody get_page
wichr
Nie jestem fachowcem, może jest tutaj jakaś głębsza myśl ale ... :

<input id="submitFormNone" class="formbutton" type="submit" name="submitForm" value="0,25 z&#x142;">


czemu nie ma zamknięcia ? " /"


<input id="submitFormNone" class="formbutton" type="submit" name="submitForm" value="0,25 z&#x142;"/>


Kshyhoo
Bo tag zamknięcia to > a /> to w xml/xhtml...
pitrro131
Cytat(darko @ 19.12.2009, 00:00:37 ) *
Dobrze powiedziane smile.gif, daj więcej tego "kawałka" kodu przynajmniej zawartość metody get_page


get_page działa dobrze...

powiedział bym że raczej chodzi o ten znak EURO przed 0.25:(

jak go odczytać?
lnn
cos mi sie zdaje ze w wartosci moze zamiast przecinka powinna byc kropka?
darko
Cytat(pitrro131 @ 18.12.2009, 22:55:10 ) *
Dodam tylko że inny formularz się już dobrze wypełnia a jest taki sam.


Cytat
Nie jestem fachowcem, może jest tutaj jakaś głębsza myśl ale ...


Cytat
get_page działa dobrze...
powiedział bym że raczej chodzi o ten znak EURO przed 0.25:(
jak go odczytać?

Ja też nie jestem i staram się nie wnioskować na chwiejnych podstawach, pytałem o metodę get_page, żeby wyjaśnić to:
menge='.$ile.'&i=1&ca=1&pr=0,25&pr_ce=25&in=bi
Jeśli wiesz, za co jest odpowiedzialny każdy parametr, to znasz odpowiedź na swoje pytanie.
pitrro131
w takim razie dorzucam get_page

  1. private function get_page($hostname, $type='', $params='', $returnheader=false, $referer='') {
  2. $ch = curl_init();
  3. if($type == 'post') {
  4. curl_setopt($ch, CURLOPT_URL, $hostname);
  5. curl_setopt($ch, CURLOPT_POST, true);
  6. curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
  7. } elseif ($type == 'get')
  8. curl_setopt($ch, CURLOPT_URL, $hostname.'?'.$params);
  9. else
  10. curl_setopt($ch, CURLOPT_URL, $hostname);
  11. if($returnheader == true) curl_setopt($ch, CURLOPT_HEADER, true);
  12. else curl_setopt($ch, CURLOPT_HEADER, false);
  13. if($referer != '') curl_setopt($ch, CURLOPT_REFERER, $referer);
  14. if($this->proxy_use) {
  15. switch ($this->proxy_type) {
  16. case 'http':
  17. curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
  18. break;
  19. case 'socks5':
  20. curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
  21. break;
  22. }
  23. curl_setopt($ch, CURLOPT_PROXY, $this->proxy_ip);
  24. curl_setopt($ch, CURLOPT_PROXYPORT, $this->proxy_port);
  25. }
  26. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  27. curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
  28. curl_setopt($ch, CURLOPT_USERAGENT, $this->curl_useragent);
  29. $cj = @curl_setopt($ch, CURLOPT_COOKIEJAR, $this->curl_cookiefile);
  30. $cf = @curl_setopt($ch, CURLOPT_COOKIEFILE, $this->curl_cookiefile);
  31. if(!$cj OR !$cf) {
  32. $this->verbose('Błąd! Problem z plikiem cookie!');
  33. die();
  34. }
  35. $page = curl_exec($ch);
  36. $return['page'] = $page;
  37. $return['info'] = curl_getinfo($ch);
  38. $return['error'] = curl_error($ch);
  39. $return['errno'] = curl_errno($ch);
  40. @curl_close($ch);
  41. return $return;
darko
Hmm, a czy Ty nie próbujesz przesłać w urlu tego: &euro; 0,25 ? Wiem, że z Twojego kodu tak nie wynika, jednak na formularzu widać, że chciałbyś mieć tam taką wartość. I tu może być problem, bo nie kodujesz symbolu ampersand (&) do wyświetlenia symbolu euro.

// edit
Właśnie zauważyłem że już wcześniej sygnalizowałeś z tym symbolem euro, może wstaw po prostu "euro" zamiast używać symbolu euro ? Testowo najlepiej w ogóle wstawić coś "mniej ryzykownego" i sprawdzić czy przesyłane dalej zmienne i wartości: pr_ce=25&in=bi zostają dodane do linka.
pitrro131
Czyli co mi radzisz?

  1. $page = $this->get_page($this->url_buy,'post','menge='.$ile.'&i=1&ca=1&pr=0,25&pr_ce=25&in=bi',
  2. false,
  3. $this->url_buy_ref);


&pr=0,25 jak to zamienić?

na "&pr=? 0,25"

nie mam pomysłu:(

//edit. "&pr=? 0,25" nie idzie...
darko
Nie wiem czy tego chcę, ale poproszę zarówno o całość klasy, której metoda get_page sprawia problemy, jak również o kontekst wywołania wspomnianej metody oraz rozwinięcie, co w praktyce oznacza, że
Cytat
formularz się w ogóle nie chce wypełnić
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.