Adds beginning of status code handling, better status code reporting

This commit is contained in:
Andrew Gioia 2023-12-09 14:40:26 -05:00
parent db57919ade
commit 7f6c4a6d77
Signed by: andrew
GPG Key ID: FC09694A000800C8
4 changed files with 120 additions and 82 deletions

View File

@ -84,9 +84,17 @@ class Follow
{
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$this->code = ($code) ? $code : 0;
if ($code == 200) {
// handle certain codes specifically
switch ($code)
{
case 200:
$this->updatePath($this->step, 'code', $this->code);
return true;
case 404:
$this->updatePath($this->step, 'code', $this->code);
$this->setError(['type' => 'code', 'message' => 'URL returned a 404 error response.']);
return true;
}
}
else

View File

@ -24,6 +24,7 @@ if (isset($_POST['url']))
// end on an error
if ($request->error)
{
$error = $request->error;
break;
}
@ -33,7 +34,7 @@ if (isset($_POST['url']))
// update our code
$code = ($request->code) ? $request->code : false;
} while ($code != 200);
} while (substr($code, 0, 1) != 2);
}
else
{

View File

@ -116,6 +116,16 @@ button[type="submit"]:hover {
background-color: #f0eded;
}
address {
display: flex;
align-self: stretch;
align-items: center;
justify-content: center;
font-style: normal;
padding: 0.5rem 0;
background: #ffdee3;
}
main {
align-items: center;
align-self: stretch;
@ -252,13 +262,21 @@ td {
vertical-align: top;
word-wrap: anywhere;
}
td:first-child {
text-align: center;
}
td:nth-child(2) {
line-height: 1.5rem;
padding: 0.8rem 1rem;
width: 100%;
}
td:nth-child(2) a:hover {
text-decoration-color: transparent;
}
td:nth-child(4) {
text-align: center;
padding-right: 1.5rem;
}
td b {
border: 1px solid #aaa;
border-right-width: 2px;
@ -271,10 +289,17 @@ td b {
padding: 0 0.25rem;
transition: border-color 150ms ease-in-out, color 150ms ease-in-out;
}
td b i {
display: inline-block;
transition: transform 150ms ease-in-out;
}
td:nth-child(2) a:hover b {
border-color: #1a1a1a;
color: #1a1a1a;
}
td:nth-child(2) a:hover b i {
transform: rotate(45deg);
}
tbody tr:nth-child(odd) td {
background-color: #fff;
}

View File

@ -19,28 +19,33 @@ include('inc/codes.php');
</nav>
</menu>
<form method="post" action="/" type="application/x-www-form-urlencoded">
<input type="url" value="" placeholder="URL to check..." name="url">
<input type="url" value="<?php echo $url; ?>" placeholder="URL to check..." name="url">
<button type="submit">Check</button>
</form>
</header>
<main>
<?php
// error message display
if (isset($error))
{
echo "
<address>
".$error['message']."
</address>";
}
?>
<main>
<?php
// if we have a valid request object
if (isset($request) && count($request->path) > 0)
{
$steps = count($request->path) - 1;
$count = ($steps == 1) ? '1 redirect' : $steps.' redirects';
$count = ($steps == 1) ? 'once' : $steps.' times';
echo "
<article>
<h2>Final destination</h2>
<p>The URL you traced had ".$count." and ended here:</p>
<p>Your URL returned a <code><strong>".$request->code."</strong></code> status code and redirected ".$count.":</p>
<p class=\"final\">
<a href=\"".$request->getFinalRedirect()."\" target=\"blank\">
".$request->getFinalRedirect()."
@ -61,11 +66,11 @@ if (isset($request) && count($request->path) > 0)
$item = $step['step'];
$url = $step['url'];
$code = $step['code'];
$next = ($step['next']) ? '⥂⇄↩︎' : '✓';
$next = ($step['next']) ? '↩︎' : ((isset($error)) ? 'x' : '✓');
echo "
<tr>
<td>".$item."</td>
<td>".$url." <a href=\"".$url."\" target=\"blank\"><b>↗︎</b></a></td>
<td>".$url." <a href=\"".$url."\" target=\"blank\"><b><i>↗︎</i></b></a></td>
<td><code>".$code."</code></td>
<td>".$next."</td>
</tr>";
@ -100,8 +105,7 @@ else
<p>
Other curl settings
</p>
</article>
";
</article>";
}
?>
<aside>