PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   [Funktion] cURL Aufruf (https://www.php-resource.de/forum/php-developer-forum/95817-funktion-curl-aufruf.html)

cHi-ses- 12-03-2009 10:08

[Funktion] cURL Aufruf
 
Hallo,
ich bin neu hier und habe ein problem:

meine Programmierkenntnisse sind fortgeschritten jedoch hänge ich nun an einer Sache mit cURL.

Mein Ziel: Via cURL aufruf durch einen Proxy meine Website aufrufen. Z.B. versuche ich damit, die Besucher meiner Website zu manipulieren.

Das Problem: woran erkenne, ob ein Proxy die Verbindung erfolgreich durchgelassen hat, und die angegebene Website aufgerufen wurde?!

hier teil von meinem Code:

PHP-Code:

        curl_setopt($curlCURLOPT_URL$website); //$website wird am anfang des scripts mit der aufzurufenden Seite belegt
        
curl_setopt($curlCURLOPT_PORT80); //
        
curl_setopt($curlCURLOPT_CONNECTTIMEOUT10); //10 sek um zu dem proxy zu connecten, sonst Timeout
        
curl_setopt($curlCURLOPT_RETURNTRANSFERTRUE); //website wird zurückgegeben
        
curl_setopt($curlCURLOPT_REFERER"www.test.de"); //referer..
        
curl_setopt($curlCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); //erklärt sich selbst
        
curl_setopt($curlCURLOPT_PROXY$ip); //$ip wird aus einer Datenbank ausgelesen (funktioniert)
        
curl_setopt($curlCURLOPT_PROXYPORT$port); //wird wie die ip aus einer datenbank ausgelesen
        
curl_setopt($curlCURLOPT_FRESH_CONNECT1); //keine connection aus dem cache verwenden
        
curl_setopt($curlCURLOPT_HTTPPROXYTUNNEL0); //verbindung nicht tunnel, da sonst meine ip getunnelt wird, und nicht die ip vom proxy geloogt wird (richtig so?!)
       
        
$comment;
        
$info               curl_getinfo($curl);
        
$connect_time $info['connect_time']; //zeit die fuer die Verbindung benötigt wird
        
$string            curl_exec($curl); //$string enthält den inhalt der website
        
$fehler            curl_error($curl); //ggf. enthält $fehler eine fehlermeldung, sonst NULL
        
        //wenn etwas in $fehler steht war die verbindung nicht erfolgreich
        
if(!empty($fehler)) {
            
$comment $fehler;
            
$conn $row['conn_timeout']+1;
            
$id   $row['id'];
            
$update "UPDATE proxy_liste SET conn_timeout = $conn  WHERE id = $id";
            
mysql_query($update);
            
$i--;
        }
        
//die verbindung war erfolgreich
        
else{
            
$comment "worked";
            
$conn $row['conn_erfolgreich']+1;
            
$id   $row['id'];
            
$update "UPDATE proxy_liste SET conn_erfolgreich = $conn  WHERE id = $id";
            
mysql_query($update);
        } 

das problem ist: viele proxys leiten mich erst nach 10 sek weiter, diese geben mir keine fehlermeldung ($fehler ist leer) aber sie haben trotzdem nicht die gewünschte aufgabe getätigt.. also mein Besuch wird nicht gewertet... wie kann ich das abfangen?! hat jem ne idee?

Für Rückfragen stehe ich gerne offen, einfach posten :)

case 12-03-2009 10:24

Hallo,

also wenn du curl benutzt, versuch mal das curl_getinfo NACH dem curl_exec aufzurufen. Dann bekommst du ein Array mit einigen Infos zurück, mithilfe deren du darauf schließen kannst, dass der Request erfolgreich durchgegangen ist.



Ich würde dir (vorallem für die Zukunft) jedoch den Zend_Http_Client empfehlen. Mit dem kannst du dir dann auch direkt den HTTP-Status etc. anschauen.

cHi-ses- 12-03-2009 10:46

Vielen Dank, werd ich mir mal anschauen :)

cHi-ses- 12-03-2009 15:40

kann jemand sagen, wie ich das installiere?

habe root rechte auf dem server:
Loaded Configuration File /etc/php5/apache2/php.ini

dort das hier eingetragen:
include_path = ".:/usr/share/php5:/usr/share/php5/PEAR:/usr/share/php5/library"

aber wenn ich einen einfachen aufruf starten will, funktioniert es nicht.. habe das library verzeichniss von der zip datei unter /usr/share/php5/library entpackt..

wieso geht das nicht? ..


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:40 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG