Likes Likes:  0
Resultaten 1 tot 15 van de 17
Pagina 1 van de 2 1 2 LaatsteLaatste
Geen

Onderwerp: POST vanuit PHP

  1. #1
    Sander Ros
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    POST vanuit PHP

    Vraagje,

    Vanuit PHP kan ik een ander script aanroepen met variabelen volgens de
    GET-methode op de volgende manier:

    <?php
    $fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
    if (!$fp) {
    echo "$errstr ($errno)<br>\n";
    } else {
    fputs ($fp, "GET /page.php?a=b HTTP/1.0\r\nHost:
    www.example.com\r\n\r\n");
    while (!feof($fp)) {
    echo fgets ($fp,128);
    }
    fclose ($fp);
    }
    ?>

    Hoe kan ik dezelfde pagina opvragen volgens de POST-methode, en hoe
    specificeer ik dan de variabelen? Bijkomende vraag is dan meteen, hoe zorg
    ik dat de meegestuurde headers die ik terug krijg worden gescheiden van de
    inhoud van de pagina.

    Ik ben al enkele weken naar de oplossing op zoek, maar kan deze nog niet
    vinden. Ook als iemand een voorbeeld script weet, waaruit ik zelf de
    oplossing kan halen is dit welkom.

    Alvast bedankt,

    Sander Ros
    --
    Ik lurk nu alweer enige tijd mee vanuit Dialog, wat een geweldige
    newsreader!

  2. #2
    Daniel Tryba
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Sander Ros <sanderros@cistron.nl> wrote:
    > Hoe kan ik dezelfde pagina opvragen volgens de POST-methode, en hoe
    > specificeer ik dan de variabelen?


    Hoe je dat doet staat beschreven in rfc 2616 IIRC.

    > Bijkomende vraag is dan meteen, hoe zorg
    > ik dat de meegestuurde headers die ik terug krijg worden gescheiden van de
    > inhoud van de pagina.


    Ook dat staat in de zelfde rfc (de eerste lege regel is de seperator
    tussen content en headers).

    > Ik ben al enkele weken naar de oplossing op zoek, maar kan deze nog niet
    > vinden.


    Waarop/hoe zoek je dan? Ik had binnen 1 poging al een relevante link
    gevonden. Wellicht dat het tijd is voor een cursus "hoe vind ik wat ik
    zoek?"?

    > Ook als iemand een voorbeeld script weet, waaruit ik zelf de
    > oplossing kan halen is dit welkom.


    Zoek op mijn naam, post tussen 2002-12-01 en 2003-01-01 in het google
    nieuws archief en je zult een voorbeeld vinden. Niet perfect maar moet
    voldoende zijn om je het goed pad op te helpen.

    --

    Daniel Tryba


  3. #3
    Maarten Wierda
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Daniel Tryba wrote:

    > Waarop/hoe zoek je dan? Ik had binnen 1 poging al een relevante link
    > gevonden. Wellicht dat het tijd is voor een cursus "hoe vind ik wat ik
    > zoek?"?


    Waar kan ik die volgen?

    --
    Cheers, Maarten Wierda

    "Meeting Again For The First Time"
    PTW/YCBYG


  4. #4
    Daniel Tryba
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Maarten Wierda <moart3nAT@chello.nl> wrote:
    >> Waarop/hoe zoek je dan? Ik had binnen 1 poging al een relevante link
    >> gevonden. Wellicht dat het tijd is voor een cursus "hoe vind ik wat ik
    >> zoek?"?

    >
    > Waar kan ik die volgen?


    Geen idee, nog niet gevonden. Ik verwacht een verlossend antwoord van
    Rene (en snel en beetje (voor de kerst aub)).

    --

    Daniel Tryba


  5. #5
    Sander Ros
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    On Mon, 22 Dec 2003 18:10:23 +0000 (UTC), Daniel Tryba wrote:

    > Sander Ros wrote:
    >> Hoe kan ik dezelfde pagina opvragen volgens de POST-methode, en hoe
    >> specificeer ik dan de variabelen?


    > Hoe je dat doet staat beschreven in rfc 2616 IIRC.

    <KNIP>
    > Wellicht dat het tijd is voor een cursus "hoe vind ik wat ik
    > zoek?"?


    Sorry, 8313 regels RFC is mij net iets te veel van het goede, zeker als ik
    daarna ook nog moet uitvogelen hoe ik dat in PHP moet implementeren. Is
    toch al gauw weer anderhalf jaar geleden dat ik er iets zinnigs mee heb
    gedaan, dus ik was al blij dat ik 'fsockopen' had gevonden. Ook op
    php.resourceindex.com kon ik geen fatsoenlijk voorbeeldscript vinden.

    > Zoek op mijn naam, post tussen 2002-12-01 en 2003-01-01 in het google
    > nieuws archief en je zult een voorbeeld vinden. Niet perfect maar moet
    > voldoende zijn om je het goed pad op te helpen.


    Ongeveer 106 posts gevonden, ik zal eens kijken.

    Bedankt,

    Sander Ros

  6. #6
    Rene Pijlman
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Daniel Tryba:
    >Maarten Wierda:
    >>> Wellicht dat het tijd is voor een cursus "hoe vind ik wat ik zoek?"?

    >>
    >> Waar kan ik die volgen?

    >
    >Geen idee, nog niet gevonden. Ik verwacht een verlossend antwoord van
    >Rene (en snel en beetje


    http://www.leren.nl/rubriek/computer...en_op_het_web/

    --
    René Pijlman

    "Moet ik nog geëerd zijn om het feit dat ze mijn body willen hebben, omdat
    ze het zelf niet kunnen maken ..?"
    - RR in niwo

  7. #7
    Daniel Tryba
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Sander Ros <sanderros@cistron.nl> wrote:
    >> Hoe je dat doet staat beschreven in rfc 2616 IIRC.

    >
    > Sorry, 8313 regels RFC is mij net iets te veel van het goede, zeker als ik
    > daarna ook nog moet uitvogelen hoe ik dat in PHP moet implementeren.


    Het is echter de enige autoriteit op het gebied van http proctol
    geleuter.

    > Is toch al gauw weer anderhalf jaar geleden dat ik er iets zinnigs mee
    > heb gedaan, dus ik was al blij dat ik 'fsockopen' had gevonden. Ook op
    > php.resourceindex.com kon ik geen fatsoenlijk voorbeeldscript vinden.


    Hmmm, kijk eens naar PEAR of zoek naar snoopy, in PEAR zit IIRC ergens
    een httpclient en snoopy is een classes die jij zoekt (IIRC).

    >> Zoek op mijn naam, post tussen 2002-12-01 en 2003-01-01 in het google
    >> nieuws archief en je zult een voorbeeld vinden. Niet perfect maar moet
    >> voldoende zijn om je het goed pad op te helpen.

    >
    > Ongeveer 106 posts gevonden, ik zal eens kijken.


    Huh! Volgens mij zijn het er maar 4 (het is de yyy-mm-dd notatie).

    --

    Daniel Tryba


  8. #8
    Sander Ros
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    On Mon, 22 Dec 2003 20:01:19 +0100, Rene Pijlman wrote:

    > Daniel Tryba:
    >>Maarten Wierda:
    >>>> Wellicht dat het tijd is voor een cursus "hoe vind ik wat ik zoek?"?


    >>> Waar kan ik die volgen?


    >>Geen idee, nog niet gevonden. Ik verwacht een verlossend antwoord van
    >>Rene (en snel en beetje


    > http://www.leren.nl/rubriek/computer...en_op_het_web/


    Hmmm, net op die pagina CTRL-F "Google" gedaan, maar niets gevonden. Wat
    doe ik fout ;-)

    Gegroet,

    Sander Ros

  9. #9
    Sander Ros
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    On Mon, 22 Dec 2003 18:10:23 +0000 (UTC), Daniel Tryba wrote:

    > Zoek op mijn naam, post tussen 2002-12-01 en 2003-01-01 in het google
    > nieuws archief en je zult een voorbeeld vinden. Niet perfect maar moet
    > voldoende zijn om je het goed pad op te helpen.


    Heb de betreffende post inmiddels gevonden en ben even aan het
    experimenteren. Geeft vooralsnog vooral:

    "Bad Request
    Your browser sent a request that this server could not understand."

    maar dat is al meer dan voorheen.

    Misschien komt dat doordat ik de code na
    "fwrite($fp,"$post\r\n");" nog niet helemaal begrijp en dus nog niet heb
    overgenomen.

    Feitelijk wil ik alleen maar een scriptje dat tussen mijn HTML-pagina en
    een mailform gaat zitten zodat ik hiermee het email-adres kan verbergen
    voor de gebruiker. Wanneer ik eruit ben laat ik het hier wel weten.

    Gegroet,

    Sander Ros

  10. #10
    Daniel Tryba
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Sander Ros <sanderros@cistron.nl> wrote:
    > Heb de betreffende post inmiddels gevonden en ben even aan het
    > experimenteren. Geeft vooralsnog vooral:
    >
    > "Bad Request
    > Your browser sent a request that this server could not understand."
    >
    > maar dat is al meer dan voorheen.


    Het is wellicht handig om wat je stuurt hier even te vermelden. Een
    packetsniffer is in deze gevallen zeer waardevol.

    > Misschien komt dat doordat ik de code na
    > "fwrite($fp,"$post\r\n");" nog niet helemaal begrijp en dus nog niet heb
    > overgenomen.


    De code die dan komt probeert een chunked response te decoden. Kan in
    principe worden ingekort tot
    while(!feof($fp))
    {
    echo fread($fp,65535);
    }

    indien je de response gewoon even raw wilt bekijken.

    > Feitelijk wil ik alleen maar een scriptje dat tussen mijn HTML-pagina en
    > een mailform gaat zitten zodat ik hiermee het email-adres kan verbergen
    > voor de gebruiker. Wanneer ik eruit ben laat ik het hier wel weten.


    Dat is precies waar dit script voor gebruikt kan worden, echter gaat het
    veel gemakkelijker indien je emailaddress alleen serverside in je code
    hebt (wat IMHO de meest normale zaak van de wereld is), MAW je zoekt een
    oplossing voor een probleem wat er eigenlijk helemaal niet niet.

    --

    Daniel Tryba


  11. #11
    Sander Ros
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    On Mon, 22 Dec 2003 19:04:22 +0000 (UTC), Daniel Tryba wrote:

    >>> Hoe je dat doet staat beschreven in rfc 2616 IIRC.

    > Het is echter de enige autoriteit op het gebied van http proctol
    > geleuter.


    Ik weet het, echter als het gaat om de implementatie ervan in b.v. PHP
    zullen velen duizenden mij al zijn voor gegaan. Het wiel voor de 1000+te
    manier opnieuw uit te vinden lijkt mij derhalve compleet zinloos.

    > Hmmm, kijk eens naar PEAR of zoek naar snoopy, in PEAR zit IIRC ergens
    > een httpclient en snoopy is een classes die jij zoekt (IIRC).


    ;-) Snoopy had ik al hier lokaal staan, na 3 avonden snapte ik er nog de
    OOOO-len van. Van classes en OOP heb ik uberhaupt nog nooit iets begrepen
    (of de noodzaak gezien mij er in te verdiepen :-( helaas is mijn vakgebied
    een compleet andere. s' Avonds zit ik hier maar wat te hobbyen, dat geeft
    echter niet altijd genoeg tijd om je er _echt_ in te verdiepen zoals je
    graag zou willen.

    >>> Zoek op mijn naam, post tussen 2002-12-01 en 2003-01-01 in het google
    >>> nieuws archief<KNIP>

    >> Ongeveer 106 posts gevonden, ik zal eens kijken.

    > Huh! Volgens mij zijn het er maar 4 (het is de yyy-mm-dd notatie).


    Google liegt niet, toch? Na selectie bleef er slechts één van de 106 over,
    de resultaten daarvan staan vooralsnog in mijn post
    <hy41pame9wls.j3wuyoaq41hn$.dlg@40tude.net>

    Gegroet,

    Sander Ros

  12. #12
    Sander Ros
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Op Maandag 22 Dec 2003 19:49:11 +0000 (UTC), schreef Daniel Tryba:

    > Het is wellicht handig om wat je stuurt hier even te vermelden. Een
    > packetsniffer is in deze gevallen zeer waardevol.


    OK, dan gaan we maar even voor de volledigheid:
    Apache 2.x met PHP4.x op Win2000, slechts om te testen, straks moet het op
    een 'echte' machine gaan draaien.

    Met 'http://127.0.0.1/test/fsock-test.php4?aaa=bbb&ccc=ddd' roep ik nu het
    volgende script aan:

    <?php
    $url="script.php4";
    $host="127.0.0.1";
    $post='';
    foreach($_GET as $key => $value)
    {
    if($post)
    {
    $post.='&';
    }
    $post.=$key.'='.htmlentities($value);
    }

    if($fp=fsockopen($host,80))
    {
    fwrite($fp,"POST $url HTTP/1.1\r\n");
    fwrite($fp,"Host: $host\r\n");
    fwrite($fp,"Content-Type: application/x-www-form-urlencoded\r\n");
    fwrite($fp,"Content-Length: ".strlen($post)."\r\n");
    fwrite($fp,"Connection: close\r\n");
    fwrite($fp,"\r\n");

    while (!feof($fp)) {
    // headers uitfilteren!
    echo fgets ($fp,128);
    }
    fclose ($fp);
    }
    ?>

    Het script wat vanuit mijn bovenstaande PHP-script wordt aangeroepen wordt
    uiteindelijk een mail-a-script.cgi -achtig geval dat een mail verstuurd en
    een volgende pagina aan de gebruiker laat zien (zal wel met Header:Location
    gebeuren). Voorlopig in deze test-situatie ziet het aangeroepen
    'script.php4' er zo uit:

    <html>
    <body>
    <?php
    echo "GET: <br>" ;
    var_dump($_GET) ;
    echo "<br><br>" ;

    echo "POST: <br>" ;
    var_dump($_POST) ;
    echo "<br><br>" ;

    ?>
    </body>
    </html>

    Zodra ik hier dus onder "POST" de juiste variabelen krijg te zien, ben ik
    tevreden, het uitfilteren van de juiste headers is dan slechts een kwestie
    van regexen en proberen.

    Toch heb ik het gevoel dat hier nog iets fundamenteels fout zit, maar dat
    zit dan w.s. na het "fwrite($fp,"$post\r\n");"

    Voorlopig al een stuk wijzer,

    Sander Ros

  13. #13
    Daniel Tryba
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Sander Ros <sanderros@cistron.nl> wrote:
    >> Het is wellicht handig om wat je stuurt hier even te vermelden. Een
    >> packetsniffer is in deze gevallen zeer waardevol.

    >
    > OK, dan gaan we maar even voor de volledigheid:
    > Apache 2.x met PHP4.x op Win2000, slechts om te testen, straks moet het op
    > een 'echte' machine gaan draaien.


    En waarom zou dat geen echte machine zijn?

    > Met 'http://127.0.0.1/test/fsock-test.php4?aaa=bbb&ccc=ddd' roep ik nu het
    > volgende script aan:
    >
    > <?php
    > $url="script.php4";


    url's dienen absoluut te zijn. Het is echt handig om die rfc te lezen

    [knip]
    > Het script wat vanuit mijn bovenstaande PHP-script wordt aangeroepen wordt
    > uiteindelijk een mail-a-script.cgi -achtig geval dat een mail verstuurd en
    > een volgende pagina aan de gebruiker laat zien (zal wel met Header:Location
    > gebeuren).


    Als dat script onder je eigen beheer valt is dit dus een totaal
    onzinnige oplossing.

    --

    Daniel Tryba


  14. #14
    Daniel Tryba
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Rene Pijlman <reply.in.the.newsgroup@my.address.is.invalid> wrote:
    >>> Waar kan ik die volgen?

    >>
    >>Geen idee, nog niet gevonden. Ik verwacht een verlossend antwoord van
    >>Rene (en snel en beetje

    >
    > http://www.leren.nl/rubriek/computer...en_op_het_web/


    Ik mis de 'toon_wat_ik_zoek' knop

    --

    Daniel Tryba


  15. #15
    Herbert Groot Jebbink
    POST vanuit PHP
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: POST vanuit PHP

    Sander Ros wrote:

    > Hoe kan ik dezelfde pagina opvragen volgens de POST-methode, en hoe
    > specificeer ik dan de variabelen?


    Hieronde wat code uit een monitor module, welke o.a. een post doet in
    PHP, er zitten wat funkties in uit een eigen library, doch de
    funktionaliteit van die funkties lijkt me wel duidelijk.

    /*

    Als eerste wordt $get_url via het GET protocol van $host
    opgehaalt.

    Daarna wordt $post_url via het POST protocol van $host opgehaalt
    met als post_variabelen $post_vars waarbij de ontvangen cookies
    van $get_url worden meegenomen bij de post van $post_url

    Vervolgens moet $check minimaal 1 keer voorkomen op de ontvangen
    2e pagina.

    */

    $host = 'xxx.xxx.xxx.xxx';
    $get_url = '/xxx/Login?rccmd=start
    $post_url = '/xxx/Login?rccmd=login&rkey_behavior=default';
    $post_vars = array('userName' => 'ikke', 'password' => 'geheim' );
    $check = 'rccmd=select&selprocess';

    $fp = openHost($host);
    if (!$fp)
    return 'No connection 1';

    fputs($fp, "GET $get_url HTTP/1.0\r\n\r\n");

    $respons = getRespons($fp);
    if (!$respons)
    return 'No data 1';

    $cookies = array();
    while (parts($respons, 'Set-Cookie: ', ';', $result)) {
    $cookie = explode('=', $result[2], 2);
    $cookies[$cookie[0]] = trim($cookie[1]);
    $respons = $result[3];
    }

    $fp = openHost($host);
    if (!$fp)
    return 'No connection 2';

    fputs($fp, "POST $post_url HTTP/1.0\r\n");

    foreach($cookies as $cookie => $value)
    fputs($fp, "Cookie: $cookie=$value\r\n");

    fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");

    $post_data = '';
    foreach($post_vars as $var => $value)
    $post_data .= urlencode($var) . "=" . urlencode($value) . "&";

    $post_data = substr($post_data, 0, -1 );
    $post_len = strlen($post_data);

    fputs($fp, "Content-length: $post_len\r\n\r\n");
    fputs($fp, $post_data);

    $respons = getRespons($fp);
    if (!$respons)
    return 'No data 2';

    if (strstr($respons, $check))
    return 'Ok';
    else
    return 'No content';

Pagina 1 van de 2 1 2 LaatsteLaatste

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics