URL aus Datenbank auf Erreichbarkeit prüfen (on-/off-Bild)

Hallo,

bei mir funktioniert deine Lösung ZodiacXP, nur total langsam... dauert echt ne halbe minute wenn er das überprüft... aber mit dem richtigen Ergebniss

Ups. Die Formatierung ist in diesem Fall dafür verantwortlich, dass es solang dauert ;)

Und zwar hier:
PHP:
    fputs($fp,
        "HEAD / HTTP/1.1
        Host: ".$page."
        Connection: Close
        
        "
    );

Wenn man es so macht gehts schneller:
PHP:
    fputs($fp,
        "HEAD / HTTP/1.1\r\nHost: ".$page."\r\nConnection: Close\r\n\r\n"
    );

Als Funktion für die Allgemeinheit:
PHP:
function UrlOnline($url)
{
	$fp = @fsockopen($url, 80);

	if ($fp)
	{
		fputs($fp,
			"HEAD / HTTP/1.1\r\nHost: " . $url . "\r\nConnection: Close\r\n\r\n"
		);
	    $get = fgets($fp, 16);
		return ($get[9] < 4);
	}
	return false;
}
 
Zuletzt bearbeitet:
Das ja super...
Funktioniert Rats Fatz!

Herzlichen Dank ;)

Nachtrag:

Ok, es wird wohl an der Servereinstellung liegen. Auf nem Lokalen Test Webserver funktioniert es genau so wie es soll. Auf meinem Root funktioniert es nicht... zeigt IMMER Online an.

hmm... ok, Einstellung, fragt sich nur welche^^
 
Zuletzt bearbeitet:
Also mein Hoster, möchte gerne wissen woran es liegen könnte das nicht geht. Welche Server seitigen Einstellungen gemacht werden müssten ect.

Er sagte das es normalerweise gehen müsste. Dann erst kann er schauen wie er das problem lösen könnte. Aber er sagte auch, das er nicht glaubt das an den Server seitigen Einstellungen liegen sollte.

Ich habe das Script auf dem Rechner per Xammp das Script getestet und siehe da es geht. KÖNNTE es auch an der Firewall liegen die mein Hoster hat? Aber die blockt ja nicht den Port 80, somit kann das ja auch nicht sein.

mfg...Hangrefer
 
Es kann gut Möglichsein, dass ausgehende Verbindungen zurückgeleitet werden auf deine eigene Seite. Das ist gut Möglich, wenn man sich nochmal die Antworten ansieht http://www.tutorials.de/forum/php/3...eichbarkeit-pruefen-off-bild.html#post1757629

Teste das auf dem Server:
PHP:
$fp = fsockopen("www.some-where-over-the-rainbow-and-beyond.org", 80);

fputs($fp,
        "GET / HTTP/1.1\r\nHost: www.some-where-over-the-rainbow-and-beyond.org\r\nConnection: Close\r\n\r\n"
);
while (!feof($fp))
        $get = fgets($fp);

echo $get;

Wenn du dabei deine eigene Seite siehst oder ähnliches, dann weist du dass du zurück geschickt wirst auf den eigenen Server und Verbindungen nach außen durch den Apache / PHP von deinem Hoster nicht erlaubt sind. Da würde mich dann wundern, dass gesagt wird es müsse eigentlich gehen.

Was es mit so einer Rückleitung auf sich hat, erfährt der Serveradministrator deines Vertrauens mit Sicherheit dort, wo er Apache und PHP her hat. Eine übliche Version scheint es nicht zu sein. Da wurde sicherlich was modifiziert ;)

Alternativen wären dann cURL oder HTTP-Erweiterung. Da weis dein Admin wie er die aktivieren kann.
 
Zuletzt bearbeitet:
also antwort vom Hoster war, er haut gleich cURL drauf. Meine frage. kann dann der code so bleiben wie er ist ?... also der letzte LANGE Code von dir

Mfg...Hangrefer

Ps: der Code über mir zeigt bzw gibt nichts aus^^...oder ich bin zu doof wiedermal..
 
Ach du heiliger... damit habe ich noch nie gearbeitet^^ auf der Seite verstehe ich nur Bahnhof. cURL hat er nun installiert.


PHP:
$creq = curl_init();
curl_setopt($creq, CURLOPT_URL, $row['kunden_website']);
curl_exec($creq);

if (curl_errno($creq)) {
    print curl_error($creq);
} else {
    curl_close($creq);
}

Das habe ich jetzt!.. er zeigt mir bei erreichbaren sind .. die Bilder!.. und bei nicht erreichbaren seiten steht CONFIXX und da drunter "nicht erreichbar.. " Ich möchte das es in eine $var gespeichert wird damit ich das im Template darstellen kann via ONLINE OFFLINE also TXT^^

Mfg..Hangrefer
 
Zuletzt bearbeitet:
Zurück