Seite 1 von 1

Dereferer Script - was dran auszusetzen?

Verfasst: 04.12.2005, 20:26
von 13pixelchen
Hallo,

Ich habe mir ein kleines Dereferer Script geschrieben, welches gleich noch kaputte Links mitzählt. Habt ihr Verbesserungsvorschläge? Dürft ihr gern frei weiterverwenden.

Code: Alles auswählen

<?php

$URL = $_REQUEST&#91;'link'&#93;;
$id = &#40;int&#41;mysql_escape_string&#40;$_REQUEST&#91;'id'&#93;&#41;;

$URLInfo = parse_url&#40;$URL&#41;; 
$DocumentPath = &#40;$URLInfo&#91;"path"&#93;&#41;?$URLInfo&#91;"path"&#93;&#58;"/"; 
if &#40;$URLInfo&#91;"query"&#93;&#41; $DocumentPath = $DocumentPath."?".$URLInfo&#91;"query"&#93;; 

$ok = false;

$conn = @fsockopen&#40;$URLInfo&#91;"host"&#93;, 80, &$errno, $errstr, 15&#41;; 
if &#40;$conn&#41; &#123; 
	$host = $URLInfo&#91;"host"&#93;;
	fwrite &#40;$conn, "HEAD ".$DocumentPath." HTTP/1.0\r\nHost&#58; $host\r\n\r\n"&#41;; 
	$rueckgabe = fgets&#40;$conn, 22&#41;;
	if &#40;stristr&#40;$rueckgabe, '30'&#41;&#41; &#123; $ok = true; &#125;
	if &#40;stristr&#40;$rueckgabe, '20'&#41;&#41; &#123; $ok = true; &#125;
	fclose&#40;$conn&#41;;
&#125;

if&#40;$ok&#41; 
&#123; header&#40;"Location&#58; $URL"&#41;; 
  header&#40;"Connection&#58; close"&#41;; 
&#125; 
else 
&#123; 
	openDB&#40;&#41;;
	$sql = "UPDATE links SET fehler = fehler + 1 WHERE id=".$id.";";
	mysql_query&#40;$sql&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
	closeDB&#40;&#41;;
	header&#40;"HTTP/1.1 301 Moved Permanently"&#41;; 
	header&#40;"Location&#58; ".$_SERVER&#91;'HTTP_REFERER'&#93;&#41;; 
	header&#40;"Connection&#58; close"&#41;; 
&#125;

?>