<?php
$flexdebug = "urlvalid";
require_once("phpLinkCheck.inc.php");
require_once("linkfactory.inc.php");
require_once("urlcrawl.php");
//require_once("flx.php");
if ($_POST['homebase'] != "") $_SESSION['userurl']=$_POST['homebase'];
$gimme = validateurl($_SESSION['userurl']);
echo $gimme;
$_SESSION['userurl'] = $gimme;
require_once("snoopyfunctions.php");
fetchlinks_depth1_sql($gimme);
function validateurl ($url) {
//init
$_SESSION['warnlinks'] = $_SESSION['maxlinks']; // maximal link
if ($url == "")
$err[] = "Bitte geben Sie zuerst eine Startadresse ein.";
// Httpcheck
$httppflicht = "http://";
$httpspflicht = "https://";
$pos = strpos($url, $httppflicht);
$poss = strpos($url, $httpspflicht);
if (($pos != 0 || $pos === false) && ($poss != 0 || $pos === false)) {
$url = "http://".$url;
}
// Domaincheck
preg_match("/^(http:\/\/)?([^\/]+)/i", $url, $treffer);
$host = $treffer[2];
if ($treffer[0]) { //IF SYNTAX
// syntax der url ok??
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $treffer);
if ($_SESSION['upref_experte']) echo "Der Domain Name wurde erkannt: {$treffer[0]}\n<br>";
// Status-Code der Webseite
$validhtml = @phpLinkCheck($url);
if ($validhtml) { // IF VALIDHTML
// url erreichbar??
if ($_SESSION['upref_experte']) print_r($validhtml); // Ausgabe von Statuscodes
if ($_SESSION['upref_experte']) echo "<br>Hyperlink validiert<br>";
if (!strncmp("3", $validhtml["Status-Code"],1)) { //status 3xx
$validredirect = @phpLinkCheck($url);
if ($_SESSION['upref_redirect']) { // if auto-redirect
while($validredirect["Status-Code"]!="200") { // while
if ($_SESSION['upref_experte']) echo "<br>REDIRECTION TEST ACTIVATED...".$validredirect['Status-Code']."<br>";
if (ereg("^http://", $validredirect["Location"])) {//kommt "http://" am anfang des redirect vor?
$newurl = $validredirect["Location"];
$url = $newurl;
}
else {
$newurl = $url.$validredirect["Location"];
$url = $newurl;
}// $newurl created!
$validredirect = @phpLinkCheck($newurl);
if (!strncmp("4", $validredirect["Status-Code"],1)) {if ($_SESSION['upref_experte']) echo "broke! due to ".$validredirect['Status-Code'].".";echo "Achtung: HTML Fehlercode:".$validredirect['Status-Code']."<br>";break;}
if (!strncmp("5", $validredirect["Status-Code"],1)) {if ($_SESSION['upref_experte']) echo "broke! due to ".$validredirect['Status-Code'].".";echo "Achtung: HTML Fehlercode:".$validredirect['Status-Code']."<br>";break;}
} // while
} // if auto-redirect
else { // kein auto-redirect
if (ereg("^http://", $validhtml["Location"]) || ereg("^https://", $validhtml["Location"])) {//kommt "http://" am anfang des redirect vor?
$newurl = $validhtml["Location"];
if ($_SESSION['upref_experte']) echo "redirect wurde erkannt.";
}
else {
$newurl = $url.$validhtml["Location"];
if ($_SESSION['upref_experte']) echo "redirect wurde erkannt, mit grund url";
}// $newurl created!
$validredirect = @phpLinkCheck($newurl);
if ($validredirect["Status-Code"] = "200") { // redirect is ne seite
echo "Die eingegebene url leitet Sie weiter (redirect), daher kann sie nicht flexplored werden.<br>Möchten Sie dem redirect folgen?<br>";
echo "<form action='index.php' method='post'>";
echo "<input type='hidden' name='homebase' value='".$newurl."'>";
echo "flexplore <input type='submit' value='".$newurl."'>";
echo "</form>";
} // redirect ist ne seite!
echo "Redirect: <a href=\"".$newurl."\">hiermit verlassen Sie FLEXPLORE: ".$newurl."</a>";
} // else(kein redirect)
} // status 3xx
if ($validhtml["Content-Length"]) {
if (((int) $validtml["Content-Length"]) > $_SESSION['upref_maxsize']) // ist die seite groß?
echo "Der Inhalt der Seite ist grösser als die eingestellte maximale Seitenlänge... Evtl. erfahren Sie Performanceprobleme... ";
// seite ist klein
echo "<br>Inhaltmenge ".$validhtml["Content-Length"]." bytes.<br>";
if($linkcount > 0)
echo "<br> ".$linkcount." Links ausgewertet.<br><br>";
} // contenlength gibts
}
else { // ELSE VALIDHTML
$err[]="Es konnte keine gültige Domain ermittelt werden. Bitte ändern Sie Ihre Anfrage.";
} // syntax der url nicht ok
} // IF SYNTAX
else {
$err[]="Die Eingabe entspricht nicht den Konventionen. Eine Url sieht wie folgt aus: \"http://www.domain.endung\"";
}
// wenn fehler auszugeben sind... hau rein!
if (isset($err)) {
echo "Beim Auslesen von <b>".$url."</b> ist ein Fehler aufgetreten.<br><br>Fehlermeldung:<br>";
foreach ($err as $error) {
echo $error." <br>";
}
echo "<a href='javascript:history.go(-1)'>Zurück</a><br>";
return false;// bei error ist das return false (-1 is keine url!)
}
return $url; // bei positivem validierungsverlauf, gib die URL zurück
}
?>