![]() |
Prenos podataka u php skriptu POST metodom
Recimo da u HTML ubacim nesto.php ali umesto nesto.php?a=223 zelim da prenesem odmah a=223 POST metodom (treba mi za dinamicko generisanje grafikona sa GD i radije bih koristio $_POST nego $_GET dakle ne grafikon.php?Januar=115&Februar=112 itd.. nego sa POST ;) Da jos jednom vrsim SQL upit nema sanse (niti treba). Ovo sto imam radi sa GET, ali bi bilo dobro da ide POST metodom
Edit: XMLHttpRequest mi ne cini ovde dobro zbog binarnog fajla (GIF) morace sa socketima da se radi :( Ide u TO-DO listu ;) |
Ukratko zelis da preneses a=223 POST metodom a ne GET metodom :) ?
Objasnio sam ovde kako se to radi. Pored gore opisanog primera mozes koristiti i curl. Za curl k-du bi bilo: curl -d a=223 http://gde-vec-hoces.com Nesto (ali ne preterano) komplikovanije je koristeci curl php lib, ali to tebi prepustam. |
Malo me zbunilo sto pominjes Ajax koji je klijent side, a Dinke ti je odgovorio za server side resenje ?
Ali u svakom slucaju evo ti copy&paste upotrebe curla za postovanje podataka (inace ovo je funkcionalan komad paypal IPN koda, pa mozda nekom ustedim par sati citanja dokumentacije, nevezano za ovu temu...) PHP kôd:
|
Izgleda de cu trebati da koristim php -q preko CGI (tj. prvo pitam host koja je putanja do PHP)
<?php $postdata = "var1=332&var2=16"; $fp = fsockopen("localhost", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "POST /debug.php HTTP/1.0\r\n"; $out .= "Host: localhost\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Content-Length: ".strlen($postdata)."\r\n"; $out .= "\r\n$postdata\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> i debug.php <?php header ("Content-Type: text/html"); echo "<STRONG>".$_POST["var1"]."</STRONG>"; echo "<BR><STRONG>".$_POST["var2"]."</STRONG>"; ?> i izlaz (u browseru) Citat:
joj isto mu dodje i sa php -q :( |
U čemu je tačno problem ? Koliko vidim dobio si post vrednosti (332, 16) ?
|
pa mozes da preparsiras output od fgets i da preskocis deo sa headerom, uradis echo samo onoga sto ti treba...
|
evo u cemu je problem - da li se heder zavrsava sa 'text/html' ili ima jos nesto iza sto moram preskociti? Tek toliko. jedan brzi odgovor ce mi pomoci da se ne udavim u HTTP protokol standardu sa w3.org
|
Header se završava sa "\r\n\r\n"
Dakle, imaš nešto ovako: PHP kôd:
|
Radi dobro, ali... moram da snimam GIF sa imagegif($im, 'grafikon.gif'); pa da vracam stazu do fajla. Prakticno, hocu <img src="grafikon.php" /> ali sa POST da mu prosledim argumente, sto nece ici iz html, nit mogu tek tako da ubacim GIF u html direktno. Morace ovde ili AJAX da radi, ili da se snima GIF, i mislim da cu ici na drugo zasad. Hvala puno!
Moze i HEAD zahtev sto mnogo pomaze ako clan npr. moze da specificira eksterni URL do slike ili fajla ;) Dobar kod, nema sta ;) |
a sto ne preneses te parametre preko sessiona, umesto preko POST-a, ako je fora da se ne vide parametri kao kod GET metode...
|
Zato sto ce da mi posalje 'Headers already sent' evo o cemu se radi - korisnik se loguje i zatrazi svoju statistiku (sesija startovana, HTML izlaz je poceo) i ja sa <img ... /> tagom referenciram PHP koji generise grafikon u GIF on the fly, a to nece ici sa POST vec samo sa get, a inace mogu i da zaobidjem ovo i da napravim GIF sa imagegif pre nego sto HTML krene u browser i samo ubacim putanju u img tag. Trebace mi za HEAD zahtev, i to nadam se, skoro, ili uz AJAX (to ce ici valjda), s obzirom da mislim glasanje da implementiram sa AJAX. On the fly ne mogu tek dako da napravim POST zahtev kad je stranica vec pocela da se renderuje tj ubacim php u <img ... /> tag ali sa AJAXom ca mozda moci, i to cu da pogledam
|
Vreme je GMT +2. Trenutno vreme je 10:59. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.