<?php
$url 
'';
if (@isset(
$_GET['url']))
{
    
$parts parse_url($_GET['url']);

    
// If no scheme, host and path is given, drop the request and do nothing.
    // Remove the path-part if you want to check web roots.
    // Beware we do not require a port to be present! If you need it, add it.
    // Isn't free software great?
    
if ($parts['scheme'] <> '' && $parts['host'] <> '' && $parts['path'] <> '')
    {
        
// Decode the URL
        
$url urldecode($_GET['url']);
    }
}
?>
<html>
<head>
<title>iHHC - iTST HTTP Header Checker</title>
<style>
body, input, textarea { font-size: 1.2em; }
input { padding: 4pt; }
input[type=submit] { margin-right: 20pt; }
</style>
</head>
<body>
<form name="check" method="get" action="ihhc.php">
URL: <input type="text" name="url" size="80" maxlength="255" <?php if ($url <> '') echo 'value="' $url '"'?> />
<input type="submit" value="GET it" />
</form>
<?php
if ($url <> '')
{
    
// CURLing
    // No error checking here! We assume we won't encounter any errors since we want
    // to test existing and functioning URLs only.
    // This thing checks content, not the connection ;)
    
$ch curl_init();
    
$options = array(
        
CURLOPT_URL => $url,
        
CURLOPT_HEADER => 1,
        
CURLOPT_RETURNTRANSFER => 1,
        
CURLOPT_FORBID_REUSE => 1,
        
CURLOPT_FRESH_CONNECT => 1,
        
CURLOPT_VERBOSE => 1,
        
CURLOPT_STDERR => $verbose fopen('php://temp''rw+')
    );
    
curl_setopt_array($ch$options);
    
$result curl_exec($ch);
    
curl_close($ch);

    !
rewind($verbose);

    echo 
'<hr size="1" noshade="noshade" />';
    echo 
'<textarea rows="30" cols="100">' stream_get_contents($verbose) . "\n\n" $result '</textarea>';
}
?>
<hr size="1" noshade="noshade" />
iHHC (c) 2004 <a href="http://itst.net/">Sascha A. Carlin</a> &lt;sc@itst.net&gt;, <a href="http://www.gnu.org/licenses/gpl.html">Licensed under GPL</a>. <a href="ihhc.phps">Sourcecode</a>.
</body>
</html>