Location: PHPKode > projects > Flexploring Utility > FLEXPLORINGbuddha/urlvalid.php
<?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&ouml;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&ouml;sser als die eingestellte maximale Seitenl&auml;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&uuml;ltige Domain ermittelt werden. Bitte &auml;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&uuml;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
  }

?>
Return current item: Flexploring Utility