ugrás a tartalomhoz

POST metódusú kérés indítása PHP-ből

akoel · 2005. Júl. 26. (K), 12.42
van egy php fájlom amiből szeretnék lehívni egy html oldalt.
Ez az oldal azonban még nem létezik, egy map szerver állítja elő.
Amíg GET metódussal végeztem a dolgot ment is a file() függvénnyel. Azonban a paraméterekkel kifutok a limitből ezért POST metódusra van szükségem. Van erre valami megoldás???

(Kerestem a forumon ezzel kapcsolatban, de választ nem találtam)

üdv akoel
 
1

Pontosíts!

kgyt · 2005. Júl. 26. (K), 13.06
Tudni kellene pontosan mit is szeretnél.
Elsőre ezek ugranak be: Curl, fsockopen, fopen, telnet...

--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
2

Eddig GET metódussal

akoel · 2005. Júl. 26. (K), 13.32
Ok.
Eddig GET metódussal adtam át a paramétereimet a szervernek, és kaptam vissza a html oldalt, a következő módon:

$fcontents = file ('http://localhost/mapserv?parameters');
while (list ($line_num, $line) = each ($fcontents)) {
echo $line;
}

A probléma az, hogy tul hosszú a paraméterlistám és nem fér bele a ??128-256??karakternyi limitbe, ezért más módon kell átadnom a mapservernek a paramétereket.
Nekem a POST metódus jutott eszembe, meg azt támogatja is a szerver, csakhogy nem tudom php-ben lehet-e ilyet, és ha lehet mi a módja.

üdv akoel
3

Űrlap???????

DevNULL · 2005. Júl. 26. (K), 13.37
És ha csinálsz egy űrlapot csak hidden elemekkel????
Plussz egy gomb ami elküldi???
5

Ez nem jó megoldás, mert

akoel · 2005. Júl. 26. (K), 13.44
Ez nem jó megoldás, mert először is beavatkozás nélkül kell kinyilni az oldalnak. Másodszor az adott oldalon lesz még más tartalom is a mapservertől visszakapott oldalon kívül.
De a curl-ös ötletet köszi mégegyszer.
4

Köszi a segítséget. Most

akoel · 2005. Júl. 26. (K), 13.39
Köszi a segítséget. Most nézegetem a curl-t. hátha ez a megoldás...

mégegyszer köszi.

üdv akoel
6

fopen-nel POST?

Hodicska Gergely · 2005. Júl. 26. (K), 18.29
;-)


Felhő
7

:-)

kgyt · 2005. Júl. 26. (K), 23.46
Tudtam én, hogy mit szeretne akoel?
Ezért sem az fopent írtam előre.
Mellesleg kerülő módszerrel megoldható... ;-)


--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
8

Na, mégis úgy néz ki,

akoel · 2005. Júl. 27. (Sze), 19.31
Na, mégis úgy néz ki, hogy gáz van.
Amikor visszakaptam a html oldalt tele volt fura dolgokkal, (miközben ha javascript-ben teszem ugyanezt form-ból, akkor hibátlan az oldal.)

A html oldal tetején, a <html> tag előtt megjelenik a header szöveges formában...

A másik, pedig, hogy teleszorja az oldalt valaki(?) véletlenszerüen elhelyezett karakterekkel. -hangsúlyozom, hogy javascriptben ugyanezek a paraméterek hibátlan választ adtak.

mi lehet a gond? itt egy rövid kódrészlet:

<?php
   $url = 'http://localhost/cgi-bin/mapserv_44.exe';
   $host= 'localhost';
   $path= '/cgi-bin/mapserv_44.exe';

   $params = "program=http://localhost/cgi-bin/mapserv_44.exe&".
                     "mode=browse&".
                     "zoom=1&".
                     "map=../htdocs/wis/wis.map";

   $request="POST ".$path." HTTP/1.1n";
   $request.="Host: ".$host."n"; 
   $request.="Content-type: application/x-www-form-urlencodedn";
   $request.="Content-length: ".(strlen($params)-0)."n";
   $request.="Request-number: 1n";
   $request.="Document-type: Requestn";
   $request.="Interface-Version: Test 1.4n";
   $request.="Connection: closen";
   $request.="n";
   $request.=$params."n"; 
   $fp = fsockopen("localhost", 80, $errno, $errstr);

   if (!$fp) {
      echo "$errstr ($errno)<br>n";
   }else{
      fputs($fp, $request);

      while(!feof($fp)) {
         echo fgets($fp, 2048);
      }
      fclose($fp);
   }
?>
11

Nem meglepő

Hojtsy Gábor · 2005. Júl. 27. (Sze), 20.45
A HTTP fejléceket visszakapod, azoktól el kellene tekinteni, ha nem érdekel (az első üres sor után van a HTML tartalom). Aztán érdemes azért még megnézni a kódolást (Content-type-ban a charset), mert valószínűleg ez okozza a 'véletlenszerű karakterek' dolgot, könnyen lehet, hogy más kódolásban van amit kapsz, mint amit vársz.

Forráskódot jó lenne colorer bbcode elembe tenni, most megtettem neked.
13

Még csodálkoztam is, hogy

akoel · 2005. Júl. 27. (Sze), 22.02
Még csodálkoztam is, hogy hogy csináltam ilyen szép kis ablakot ;)

megnézem ezt charset dolgot...
mindenesetre köszi.


üdv akoel
9

Megmondod nekem, hogy mi az

akoel · 2005. Júl. 27. (Sze), 20.14
Megmondod nekem, hogy mi az a kerülő módszer?
Lehet, hogy szükség lesz rá ;)

üdv akoel
10

saját kliens

kgyt · 2005. Júl. 27. (Sze), 20.33
Pl. lementem fájlba vagy adatbázisba a kérni kívánt paramétereket, és egy erre a célra írt klienssel lekérem az eredményt.

Alább ezt szemléltetem egy nem túl akadálymentes ábrával:
.
.___________    2.     __________ 4. valódi ___________
.|         |lekérés id |        |  lekérés  |         |
.|         |---------->|  spéci |---------->|   map   |
.|  progi  |           | kliens |           | szerver |
.|         |<----------|        |<----------|         |
.|_________|     6.    |________| 5. adatok |_________|
.     |       eredmény      /|\     vissza
.     |                      |
.     |                      |
.     |          1.          |
.     | a lekérés adatainak  |
.     |       mentése        |
.     |                      |  3. lekérés adatait
.____\|/______               |    elkéri a kliens
.|           |               |
.|           |               |
.| adatbázis |               |
.|           |---------------'
.|___________|
.

--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
12

Ja igen

kgyt · 2005. Júl. 27. (Sze), 20.56
A közbeiktatott kliens készülhet bármilyen nyelven, így akár lehet egy apache modul is...

--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu