Ergebnis 1 bis 5 von 5
  1. #1
    Anfänger
    Registriert seit
    21.10.2011
    Beiträge
    8

    Standard PHP - POST mit anderem Redirect-Header?

    Hallo Leute,

    ich habe einen Snippet gefunden im Internet, allerdings endet der in einer Endlosschleife. Weiß bzw. findet jemand zufällig den Fehler, denn der Autor hat leider nichts mehr geschrieben dazu.

    PHP-Code:
    <?php
      
    function process_cookies ($httpobj$cookiejar = array()) {
        
    // Function get the cookies that should be sent in the next request
        
    if (!count($cookies $httpobj->getResponseCookies())) return $cookiejar;
        foreach (
    $cookies as $key => $data) {
          if (
    $data+++91;'value'+++93; !== '' && (!isset($data+++91;'expirestime'+++93;) || $data+++91;'expirestime'+++93; > time())) {
            
    $cookiejar+++91;$key+++93; = $data+++91;'value'+++93;;
          } else if (isset(
    $cookiejar+++91;$key+++93;)) {
            unset(
    $cookiejar+++91;$key+++93;);
          }
        }
        return 
    $cookiejar;
      }

      
    $url1 'http://www.facebook.com/';
      
    $url2 'https://login.facebook.com/login.php';

      
    // Fetch the class
      
    require('class.httprequest.php');

      
    // Create an object and get the main page of facebook.com
      
    $request1 = new httprequest;
      if (!
    $request1->setRequestURL($url1)) exit("Error setting request 1 URL: ".$request1->getLastErrorStr()."<br>\r\n");
      if (!
    $request1->sendRequest()) exit("Error sending request 1: ".$request1->getLastErrorStr()."<br>\r\n");

      
    // Create an object for the POST request
      
    $request2 = new httprequest;

      
    // Set request method and URL      
      
    $request2->setRequestMethod('POST');
      if (!
    $request2->setRequestURL($lastLocation $url2)) exit("Error setting request URL: ".$request2->getLastErrorStr()."<br>\r\n");

      
    // All the other headers will be built by the class but we need
      // set this one explicitly
      
    $request2->setRequestHeader('Referer',$url1);

      
    // Get the cookies sent by the last request and forward them on
      
    $cookiejar process_cookies($request1);
      if (
    count($cookiejar)) $request2->setRequestCookies($cookiejar);

      
    // Set the request body
      
    $data = array(
        
    'email'=>'testemail',
        
    'pass'=>'testpass'
      
    );
      
    $request2->setRequestControls($data);

      
    // We need to handle redirects ourselves to make sure the cookies are sent correctly
      
    $request2->setHandleRedirects(FALSE);

      
    // Keep looping until we get a 2xx response
      
    while (TRUE) {
        if (!
    $request2->sendRequest()) exit("Error sending request: ".$request2->getLastErrorStr()."<br>\r\n");
        if (
    $request2->getResponseCode() >= 200 && $request2->getResponseCode() < 300) break;
        if (
    $request2->getResponseCode() >= 300 && $request2->getResponseCode() < 400) {
          
    $nextLocation $request2->getResponseHeader('location');
          if (!
    $nextLocation) exit("Error: Server responded with redirect response code ".$request2->getResponseCode().", but did not send a valid location header<br>\r\n");
          
    $cookiejar process_cookies($request2,$cookiejar);
          
    $request2->resetRequestCookies();
          
    $request2->setRequestCookies($cookiejar);
          
    $request2->setRequestHeader('Referer',$lastLocation);
          if (!
    $request2->setRequestURL($lastLocation $nextLocation)) exit("Error setting request URL: ".$request2->getLastErrorStr()."<br>\r\n");
          continue;
        }
        exit(
    "Server responded with unhandled HTTP response code: ".$request2->getResponseCode()."<br>\r\n");
      }

      
    // validate and display the response
      
    if (!$response $request2->getResponseBodyData(TRUE)) exit('Error: No body data returned<br>'."\r\n");
      exit(
    $response);

    ?>
    Die dazugehörige Klasse findet man hier:
    Code:
    http://download.networkm.net/code/php/class.httprequest.1.3.php.tar.gz
    Und hier die Quelle:
    Code:
    http://stackoverflow.com/questions/7699764/php-https-post-request/7700213#7700213
    Also ich hab als Beispiel nun mal Facebook genommen, aber es sollte auch bei anderen Seiten funktionieren. Ich will damit nichts böses anstellen natürlich, ich möchte einen Auto-Login realisieren auf Seiten, die die Redirect-URL checken

    Ich selbst habe nicht viel Ahnung von PHP, aber ich brauche dieses Script, um in meinem Gesamtprojekt weiterzukommen

    Wenn jemand helfen könnte, wäre ich wirklich dankbar.

    Gruß & Danke,
    Jannik

  2. #2
    The Chosen One oder so Avatar von Apex
    Registriert seit
    16.09.2007
    Beiträge
    1.469

    Standard

    Mal abgesehen davon, dass das Ding schlecht geschrieben ist und der Stil komplett für den Arsch ist, solltest du vielleicht den Author direkt kontaktieren. Kann jetzt aus dem eigentlichen Skript nicht's rauslesen, die Klasse kann ich mir leider nicht anschauen da ich in der Arbeit bin.
    "Die Menschheit wird eines Tages zu Grunde gehen. Vermutlich aus dem gleichen Grund wie die Dinosaurier - zu viel Panzer und zu wenig Hirn."


  3. #3
    Anfänger
    Registriert seit
    21.10.2011
    Beiträge
    8

    Standard

    Der Author direkt hat leider keine Antwort mehr gegeben am Ende, wie gesagt, er ist ja bei StackOVerflow und bisher keine Antwort, hatte wohl kein Bock mehr... Naja, kann man nichts machen

    Wäre lieb, wenn du dir das trotzdem die Tage mal anschauen kannst.

    Gruß,
    Jannik
    Visual Basic .NET: Fortgeschritten
    Reverse Engineering: Anfänger/Fortgeschritten

  4. #4
    Trojaner Avatar von 24ds
    Registriert seit
    13.11.2011
    Beiträge
    56

    Standard

    mir ist der Stil offengestanden auch nicht ganz lieb, in dem das geschrieben wurde.... vielleicht hast du ein besseres Verständnis wenn du (du hast reverse engineering in der sig stehen) das Script zerlegst, dir die Funktionalität ansiehst und es selbst neu schreibst?

  5. #5
    Anfänger
    Registriert seit
    21.10.2011
    Beiträge
    8

    Standard

    Ich kann es nicht, ich habe es bereits versucht und habe auch nicht die Erfahrung dazu
    Geht das irgendwie anders? MIttels Javascript oder so?

    Hat irgendjemand was für mich?
    Visual Basic .NET: Fortgeschritten
    Reverse Engineering: Anfänger/Fortgeschritten

Ähnliche Themen

  1. Cain & Abel | Traffic Redirect bzw. DNS-Spoofing
    Von Rabbits im Forum Biete Tutorials
    Antworten: 6
    Letzter Beitrag: 09.11.2010, 20:28
  2. iptables port redirect
    Von Draik im Forum Netzwerke
    Antworten: 1
    Letzter Beitrag: 01.04.2010, 05:34
  3. C# HTTP Header POST
    Von juRiii im Forum .NET Sprachen - Techniken
    Antworten: 0
    Letzter Beitrag: 08.08.2009, 19:54

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •