Ankündigung

Einklappen
Keine Ankündigung bisher.

cURL - CURLOPT_HTTPGET und 302 Found

Einklappen

Neue Werbung 2019

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

  • cURL - CURLOPT_HTTPGET und 302 Found

    Hallo!
    Dies sind meine ersten Versuche mit cURL und ich habe einige Fragen über deren Beantwortung ich mich sehr freuen würde.

    Ich habe Daten, die per cURL in ein Newsletter-Tool übertragen werden:

    Code:
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "http://XX.XX.XXX.XXX?email=meine@email.de&firstname=Vorname&lastname=Nachname");
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_exec($curl);
    curl_close($curl);
    Frage 1)
    Die Standard-Request-Methode ist ja GET. Daher habe ich die Variablen einfach an die Url drangehangen. Ist das so ok (funkioniert grundsätzlich) oder macht man das - ähnlich wie bei CURLOPT_POSTFIELDS - in einem Array?

    Frage 2)
    Die aufgerufene Seite sendet mir eine "302 Found"-Seite zurück. Diesen "Quelltext" möchte ich in meiner Seite natürlich nicht ausgeben. Ich habe jetzt ein bisschen rumprobiert und mit
    Code:
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    wird die "302 Found"-Seite nicht ausgegeben, der Eintrag aber durchgeführt. Kann man das so machen oder kann ich das Ergebnis (es ist keine Fehlerbehandlung vorgesehen) anders "unterdrücken"?

    Danke,
    Lars

  • #2
    PHP-Code:
    $curl curl_init();
    curl_setopt($curlCURLOPT_URL"http://XX.XX.XXX.XXX?email=meine@email.de&firstname=Vorname&lastname=Nachname");
    curl_setopt($curlCURLOPT_HEADER0);
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    $output curl_exec($curl);
    curl_close($curl);
    echo 
    $output
    Und da kommt keine Fehlerseite !?

    edit.: achso verstehe nun was du meinst...
    Naja eigentlich ist es kein gutes Zeichen wenn eine Fehlermeldung kommt und man sollte diese nicht unterdrücken, sondern den Fehler beheben.

    Versuchs mal so:
    PHP-Code:
    $curl curl_init();
    curl_setopt($curlCURLOPT_URL"http://XX.XX.XXX.XXX?email=meine@email.de&firstname=Vorname&lastname=Nachname");
    curl_setopt($curlCURLOPT_HEADER0);
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    curl_setopt($curlCURLOPT_FOLLOWLOCATIONtrue);
    $output curl_exec($curl);
    curl_close($curl);
    echo 
    $output
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      Nein, da habe ich mich wohl falsch ausgedrückt.

      Es kommt eine "302 Found"-Seite zurück mit dem Inhalt:
      Code:
      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
      <html><head>
      <title>302 Found</title>
      </head><body>
      <h1>Found</h1>
      <p>The document has moved <a href="http://www.xxxxxx.xx/">here</a>.</p>
      <hr>
      <address>Apache/2.0.52 (CentOS) mod_fastcgi/2.4.2 mod_ssl/2.0.52 OpenSSL/0.9.7a Server at xxxxxx Port xx</address>
      </body></html>
      Da ich den cURL-Aufruf in eine eigene Seite integriere (und kein Redirect möchte) hätte ich dann ja doppelte Doctypes-, html- , head-Tags usw. Ich möchte also lediglich den Return-Quelltext unterbinden. Und da war meine Frage, ob CURLOPT_RETURNTRANSFER dafür gedacht ist bzw. ich es dafür nutzen kann.

      Kommentar


      • #4
        Achso... Klar kannste es dafür verwenden
        Wird wohl die einfachste Methode sein um dann auch ggf. später die Ausgabe auszuwerten.
        "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

        Kommentar

        Lädt...
        X