autom. form füllen/senden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • autom. form füllen/senden

    hi zusammen

    ich möchte eine webpage einer externen site öffnen (mit fopen()?), auf welcher ein webform enthalten ist. dieses soll von php automatisch ausgefüllt und submitted werden. das entsprechende resultat soll dann gespeichert werden.

    hat jemand schon mal ein solches skript gesehn? oder wie soll ich das mit php realisieren?

    danke für eure hilfe

    gruss
    pumix

  • #2
    per fsockopen Verbindung herstellen, dann kannst du ein POST Header mit all den Info absetzen

    Kommentar


    • #3
      sehr gut, vielen dank.

      das problem ist jetzt aber noch, dass die aufzurufende page mit einem .htaccess file geschützt ist, d.h. normalerweise kommt dann einfach ein vom browser generiertes eingabefenster für username und passwort.

      wie kann ich mit php die login daten gleich übermitteln, so dass der automatische zugriff möglich ist?

      gruss
      pumix

      Kommentar


      • #4
        PHP Authentification sollte event. Abhilfe schaffen http://de3.php.net/features.http-auth

        Kommentar


        • #5
          so wie ich das verstehe, ist diese http-auth. dafür da, beim client ein solches eingabe-fenster erzeugen zu lassen.

          ich brauche jedoch genau das umgekehrte. mit fsockopen() öffne ich eine seite, welche eine http-auth. erfordert. und weil ja die seite vom php-skript aufgerufen wird, muss jetzt das php-skript im prinzip diesen dialog ausfüllen und sich damit authentifizieren können.

          oder hab ich deinen link jetzt falsch verstanden?

          gruss
          pumix

          Kommentar


          • #6
            Original geschrieben von asp2php
            PHP Authentification sollte event. Abhilfe schaffen http://de3.php.net/features.http-auth
            geht auch direkt im Link
            http://username:Password@www.meine_domain.de/Verzeichnis/und_date.html

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              geht auch direkt im Link
              http://username:Password@www.meine_d.../und_date.html
              die Version habe ich ganz vergessen

              Kommentar


              • #8
                es besteht nun leider immer noch ein problem.

                die anmeldung mit usernameassword@... funktioniert mit mozilla, aber nicht im internet explorer, und ebenfalls nicht mit php skript.

                woran könnte das liegen?

                gruss
                pumix

                Kommentar


                • #9
                  Original geschrieben von pumix
                  und ebenfalls nicht mit php skript.
                  d.h. ...? außerdem hat fsockopen nicht viel mit irgendwelchem Browser zu tun, denn das Ganze findet auf dem Webserver statt!

                  Kommentar


                  • #10
                    ja, das mit den browsers ist klar.

                    hier das skript:


                    PHP-Code:
                     function fetchURL$url ) {
                       
                    $url_parsed parse_url($url);
                       
                    $host $url_parsed["host"];
                       
                    $port $url_parsed["port"];
                       if (
                    $port==0)
                           
                    $port 80;
                       
                    $path $url_parsed["path"];

                       
                    //if url is [url]http://example.com[/url] without final "/"
                       //I was getting a 400 error
                       
                    if (empty($path))
                       
                    $path="/";

                       
                    //redirection if url is in wrong format
                       
                    if (empty($host)):
                       
                    $host="www.somesite.com";
                       
                    $path="/404.shtml";
                       endif;

                       if (
                    $url_parsed["query"] != "")
                           
                    $path .= "?".$url_parsed["query"];
                       
                    $out "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
                       
                    $fp fsockopen($host$port$errno$errstr30);
                       
                    fwrite($fp$out);
                       
                    $body false;
                       while (!
                    feof($fp)) {
                       echo 
                    fgets($fp128);
                       }
                       
                    fclose($fp);
                       return 
                    $in;
                    }

                    $address "http://username:password@domain.com/folder/";
                    fetchURL($address); 

                    wenn ich das skript starte, wird im browser folgende fehlermeldung angezeigt:

                    "HTTP/1.1 401 Access Denied WWW-Authenticate: NTLM Content-Length: 644 Content-Type: text/html
                    HTTP Error 401
                    401.2 Unauthorized: Logon Failed due to server configuration

                    This error indicates that the credentials passed to the server do not match the credentials required to log on to the server. This is usually caused by not sending the proper WWW-Authenticate header field.

                    Please contact the Web server's administrator to verify that you have permission to access to requested resource."

                    was könnte ich noch ausprobieren?

                    Kommentar


                    • #11
                      Probiers doch mal hiermit: http://sourceforge.net/projects/snoopy/
                      Das ist eine Klasse mit der du ganz einfach post und get daten per fsockopen senden kannst. die unterstützt so viel ich weiß auch http-auth

                      Kommentar


                      • #12
                        vielen dank für den snoopy-tip. es stimmt, dass snoopy die www-auth unterstützt, aber leider funktioniert es in meinem fall trotzdem nicht.

                        ich weiss nicht, warum das nicht geht. vielleicht gibt es verschiedene versionen von www-auths. nur kann ich nicht rausfinden, welche version hier benutzt wird, weil ich keinen direkten zugriff auf den server habe.

                        Kommentar


                        • #13
                          habe herausgefunden, dass die site mit www-authenticate NTLM geschützt ist (anstatt Basic) und snoopy unterstützt offenbar nur Basic.

                          was könnte ich noch machen?

                          Kommentar

                          Lädt...
                          X