URL überprüfen

Solo

Grünschnabel
Hallo!

Ich möchte gerne eine url die ich mit einem Formular übergeben überprüfen. Ich habe dazu diese Seite gefunden: http://froemter.de/php/phpLinkCheck.phps

Nur bin ich nicht der Programmier-Crack. :-)
Ich hab keine Ahnung wie ich diese Funktion hier in meine Seite einbinde bzw. dann auch anspreche. Klar mit include("url_ueberpruefen.php"); binde ich diese Seite ein, aber wie spreche ich diese Funktion an? Mit body onload?

Wär prima wenn mir da jemand helfen könnte

Gruß Solo
 
PHP:
  /*  Purpose: Check HTTP Links 
   *  Usage:   $var = phpLinkCheck(absoluteURI) 
   *           $var["Status-Code"] will return the HTTP status code 
   *           (e.g. 200 or 404). In case of a 3xx code (redirection) 
   *           $var["Location-Status-Code"] will contain the status 
   *           code of the new loaction. 
   *           See print_r($var) for the complete result 
   * 
   *  Author:  Johannes Froemter <j-f@gmx.net> 
   *  Date:    2001-04-14 
   *  Version: 0.1 (currently requires PHP4) 
   */

Mal gelesen? Also das File mit der Funktion includen un ddann eben die phpLinkCheck() Funktion aufrufen.

PHP:
include("url_checker.php");
$status = phpLinkCheck($_POST["uri"]); //$_POST["uri"] musst du auf deine Variable anpassen, in welcher die URI gespiechert ist.

Dannach hast du in der Variable $status den Status wert der Seite. Also 404 bedeutet Seite nicht gefunden... die anderen Statuswerte kenn ich nicht auswendig. Lassen sich aber sicher bei Google finden...

X
 
Hallo X!

Danke für deine schnelle Antwort.
Jetzt bekomme ich diese Meldung:

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/webrobo_.........../url_ueberpruefen.php on line 26

Warning: fsockopen(): unable to connect to sdfasdf:80 in /home/webrobo_........./url_ueberpruefen.php on line 26

Wenn ich die Domain richtig eingebe dann kommt nur diese Meldung:
Warning: fsockopen(): unable to connect to http://www.sdfasdf.de:80 in /home/webrobo..../url_ueberpruefen.php on line 26

Gruß Solo
 
Wie rufst du die Funktion auf?

X

Edit:
Habe die Funktion mal getestet. Wenn es die Seite nicht gibt, also man z.B. http://wwwtutorials.de übergibt, kommt diese Fehlermeldung... Wenn man aber http://www.tutorials.de übergibt, funktioniert es. Auch bei http://www.tutorials.de/haha funktioniert es. Gibt einfach einen 404 zurück.

Im File url_ueberpruefen.php würde ich auf der Zeile 26, vor dem fsockopen noch ein @ hin tun. Dann gibts keine Fehlermeldung aus, und wenn das Verbinden nicht klappt wird weiter unten einfach false zurückgegeben....
PHP:
$fp = @fsockopen($url["host"], $url["port"], &$errno, &$errstr, 30);

Folgender Code:
PHP:
<?php 
include("url_ueberpruefen.php");

$fp = phpLinkCheck("http://wwwtutorials.de/");
if ($fp == false) {
	echo "unkown host";
} else {
	print_r($fp);
}

?>

Gibt dann "unkown host" aus.
 
Zuletzt bearbeitet:
Ich denke ich weiß jetzt warum das bei mir nicht funktioniert.

Kann es sein dass mein provider fopen bei meinem Webspace nicht zulässt?
 
hab schon alles mögliche ausprobiert. Beide Varianten funktionieren nicht. Ich hab grad bei meinem Provider angerufen. Er hat mir gesagt, dass aus Gründen der Sicherheit fopen usw. nicht funktioniert. Gibt es denn noch eine andere Möglichkeit eine Url zu überprüfen?

Gruß Solo
 
Ich glaube, du hast mich falsch verstanden. Du verwendest in dem Script doch gar kein fopen(). Von daher kann es dir egal sein, dass allow_url_fopen auf off steht. fsockopen() kümmert sich nicht um diese Option. Es wird einfach daran liegen, dass PHp den Server der falschen Domain nicht findet, da es diesen ja nicht gibt. Also gibt es eine Fehlermeldung.
 
ich habe hier

Code:
include("url_ueberpruefen.php"); 

$fp = phpLinkCheck("http://www.tutorials.de/"); 
if ($fp == false) { 
    echo "unkown host"; 
} else { 
    print_r($fp); 
}

und

Code:
include("url_ueberpruefen.php"); 

$fp = phpLinkCheck("http://wwwtutorials.de/"); 
if ($fp == false) { 
    echo "unkown host"; 
} else { 
    print_r($fp); 
}

ausprobiert. Also einmal mit Punkt und einmal ohne. Aber jedesmal bekomme ich unkown host. Bist du dir sicher dass sich der Server nicht um fsockopen(); kümmert? Gibt es denn grundsätzlich einen anderen Ansatz dafür?
 
Zurück