Adds new _GET variable to automatically go to the end URL; cleans up search.php to be tidier; allows both GET and POST urls

This commit is contained in:
Andrew Gioia 2025-10-31 15:03:49 -04:00
parent 0c551aadd5
commit 516a1f59bc
Signed by: andrew
GPG Key ID: FC09694A000800C8
2 changed files with 32 additions and 15 deletions

View File

@ -159,14 +159,14 @@ class Follow
// start the next path // start the next path
$this->step++; $this->step++;
$this->addPath( $this->addPath(
$this->step, $this->step,
[ [
'step' => $this->step, 'step' => $this->step,
'url' => $this->next, 'url' => $this->next,
'code' => null, 'code' => null,
'header' => '', 'header' => '',
'next' => null 'next' => null
]); ]);
return true; return true;
} }

View File

@ -1,19 +1,26 @@
<?php <?php
// handle form submissions // handle form submissions
if (isset($_POST['url'])) if (isset($_POST['url']) || isset($_GET['url']))
{ {
// get the correct url
$url = $_POST['url'] ?? $_GET['url'];
// check that we got a valid URL // check that we got a valid URL
$url = (filter_var(trim($_POST['url']), FILTER_VALIDATE_URL)) $url = (filter_var(trim($url, FILTER_VALIDATE_URL)))
? trim($_POST['url']) ? trim($url)
: false; : false;
// if so, start up the redirect checks // if so, start up the redirect checks
if ($url) if ($url)
{ {
// make a request for this url and add to the path // make a request for this url and add to the path, and make sure we don't go too long
$request = new Follow($url); $request = new Follow($url);
$code = ''; $code = '';
$hops = 0;
$max = 10;
// keep making more requests until we get a 3XX
do { do {
// set the URL // set the URL
$request->url = $url; $request->url = $url;
@ -29,12 +36,22 @@ if (isset($_POST['url']))
} }
// if we have a redirect to follow, update our working $url // if we have a redirect to follow, update our working $url
$url = ($request->next) ? $request->next : false; $url = $request->next ?? false;
// update our code // update our code
$code = ($request->code) ? $request->code : false; $code = $request->code ?? false;
} while (substr($code, 0, 1) == 3); // continue while we have a 3XX code // increment our number of requests
$hops++;
} while ($hops < $max && $code && substr((string) $code, 0, 1) === '3'); // continue while we have a 3XX code
// if we got a GET to automatically redirect to the url, do that now
if (isset($_GET['go']) && $url)
{
header("Location: ".$url);
exit;
}
} }
else else
{ {