+ Antworten
Ergebnis 1 bis 9 von 9

Thema: cgi aufrufen

  1. #1
    TP-Veteran jonemo macht sich hier sehr viel Mühe Avatar von jonemo
    Registriert seit
    Dec 2002
    Ort
    london
    Beiträge
    1.020

    cgi aufrufen

    wie mach ich das in php am schlauesten:

    ich will ein cgi aufrufen, und ihm post-parameter übergeben. was es mir dann zurückgibt würde ich notfalls auch nehemn, aber eigentlich brauch ich das nicht unbedingt.

    mach ich das mit fget und fput? davon hab ich noch nie gebraúch gemacht (*keine ahnung hab*)

    am liebsten wäre mir ein kleines codebeispiel zum aufruf folgenden cgis: www.jonemo.de/cgi-bin/beispiel.cgi mit den post parametern

    id=jonemo
    passwd=rolf

    (das script gibt es tatsächlich NICHT!)

    danke für eure hilfe schon mal im voraus, jonemo.

  2. #2
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    versuchs mal mit
    mit einer dieser funktionen

    hab selbst keine erfahrung damit gesammelt. forscherdrang deinerseits ist wohl gefragt
    Gehelft? Hier kannst du dich bedanken.

    mike

  3. #3
    TP-Member Colin Schlüter ist auf einem guten Weg
    Registriert seit
    Aug 2002
    Ort
    Berlin/Deutschland
    Beiträge
    93
    Hallo!

    Folgendes Beispiel sollte funktionieren:
    PHP-Code:
    $data "id=jonemo&passwd=rolf";

    $fp fsockopen("www.jonemo.de"80);

    fputs($fp"POST /cgi-bin/beispiel.cgi HTTP/1.1\n");
    fputs($fp"Host: www.jonemo.de\n");
    fputs($fp"Content-type: application/x-www-form-urlencoded\n");
    fputs($fp"Content-length: " strlen($data) . "\n");
    fputs($fp"Connection: close\n\n");
    fputs($fp$data);

    while (!
    feof($fp))
        
    $output .= fgets($fp128);
    fclose($fp); 
    Colin

  4. #4
    TP-Veteran jonemo macht sich hier sehr viel Mühe Avatar von jonemo
    Registriert seit
    Dec 2002
    Ort
    london
    Beiträge
    1.020
    also bei mir sieht das jetzt folgendermaßen aus:

    PHP-Code:
    <?php

    $data 
    'pass=XXXXXXXXXXX&action=pop3&pop=&domain=globaldrive.de&submit=anwenden';

    $fp fsockopen("user:user@mx2.evanzo-server.de"80);

    fputs($fp"POST /cgi-bin/beispiel.cgi HTTP/1.1\n");
    fputs($fp"Host: [url]http://user:user@mx2.evanzo-server.de\n[/url]");
    fputs($fp"Content-type: application/x-www-form-urlencoded\n");
    fputs($fp"Content-length: " strlen($data) . "\n");
    fputs($fp"Connection: close\n\n");
    fputs($fp$data);

    while (!
    feof($fp))
        
    $output .= fgets($fp128);
    fclose($fp);

    echo 
    $output;

    ?>
    und das ergebnis so:
    http://www.globaldrive.de/test/mail.php

    also bei mir kommen da jedenfalls haufenweise fehler. und was hab ich falsch gemacht?

  5. #5
    TP-Member Colin Schlüter ist auf einem guten Weg
    Registriert seit
    Aug 2002
    Ort
    Berlin/Deutschland
    Beiträge
    93
    Hi!

    Die Fehler scheinen an dem "user:user" zu liegen, dass nicht als Hostname akzeptiert wird.
    Ich nehme an, damit soll eine Basic Authorization realisiert werden (.htaccess)?

    Dann sollte der Code folgendermaßen lauten (nicht getestet):
    PHP-Code:
    $username "user";
    $password "user";
    $data "pass=XXXXXXXXXXX&action=pop3&pop=&domain=globaldrive.de&submit=anwenden";

    $fp fsockopen("mx2.evanzo-server.de"80);

    fputs($fp"POST /cgi-bin/beispiel.cgi HTTP/1.1\n");
    fputs($fp"Authorization: Basic " base64_encode("$username:$password") . "\n");
    fputs($fp"Host: mx2.evanzo-server.de\n");
    fputs($fp"Content-type: application/x-www-form-urlencoded\n");
    fputs($fp"Content-length: " strlen($data) . "\n");
    fputs($fp"Connection: close\n\n");
    fputs($fp$data);

    while (!
    feof($fp))
        
    $output .= fgets($fp128);
    fclose($fp); 
    Ansonsten (ohne user ...) funktioniert mein obiger Quellcode bei mir wunderbar.

    Colin

  6. #6
    TP-Senior SKYRUNNER macht alles soweit korrekt Avatar von SKYRUNNER
    Registriert seit
    Nov 2002
    Ort
    Germany
    Beiträge
    253
    hallo,
    ich arbeite mit jonemo zusammen und das script hier ahben wir momentan.
    Frage: muss das cgi script aufm selben server liegen oder kann das auch ein anderer sein? schauts euch mal an:

    PHP-Code:
    <?php

    $username 
    "user";
    $password "user";
    $data "pass=xxxxxx&action=pop3&pop=&domain=globaldrive.de&submit=anwenden";

    $fp fsockopen("mx2.evanzo-server.de"80);

    fputs($fp"POST [url]http://user:user@mx2.evanzo-server.de/evanzo-USER/mailserver.cgi[/url] HTTP/1.1\n");
    fputs($fp"Authorization: Basic " base64_encode("$username:$password") . "\n");
    fputs($fp"Host: mx2.evanzo-server.de\n");
    fputs($fp"Content-type: application/x-www-form-urlencoded\n");
    fputs($fp"Content-length: " strlen($data) . "\n");
    fputs($fp"Connection: close\n\n");
    fputs($fp$data);

    while (!
    feof($fp))
        
    $output .= fgets($fp128);
    fclose($fp);

    echo 
    $output;


    ?>
    Geändert von SKYRUNNER (14.01.2003 um 08:55 Uhr)

  7. #7
    TP-Senior SKYRUNNER macht alles soweit korrekt Avatar von SKYRUNNER
    Registriert seit
    Nov 2002
    Ort
    Germany
    Beiträge
    253
    PS: durch das user:user nciht stören lassen. dort erfolgt keine weitere passwortabfrage! ka, warum das da drinne steht. das passwort wird nur via cgi geprüft (nix mit htaccess oder sowas)

    MfG

  8. #8
    TP-Member Colin Schlüter ist auf einem guten Weg
    Registriert seit
    Aug 2002
    Ort
    Berlin/Deutschland
    Beiträge
    93
    Hallo!

    Soweit ich weiß, kann das Script auch auf jedem anderen Server sein.

    In eurer Version habt ihr nach dem POST die komplette URL drin, das ist IMHO nicht korrekt, da müsste eigentlich nur der Pfad hin, also nur "POST /evanzo-USER/mailserver.cgi HTTP/1.1\n".

    Colin

    PS. Könntest du vielleicht in deinem Post "URLs umwandeln" und "Grafische Smilies" deaktivieren, dann wird es sehr viel lesbarer.

  9. #9
    TP-Senior SKYRUNNER macht alles soweit korrekt Avatar von SKYRUNNER
    Registriert seit
    Nov 2002
    Ort
    Germany
    Beiträge
    253
    Problem habe ich zusammen mit Jonemo lösen können -> ERGO: Thread kann als Beanwortet markiert werden...

    MfG

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51