Nu are sens ... lucrezi cu variabila $newUrl si apelezi header() cu $url. $url nu exista.
Am doua recomandari pentru practica asta.
1. In loc de strpos(), foloseste strstr()
astfel incat ...
Cod PHP:
if(isset($_GET["redirect"]))
{
$newUrl = trim($_GET["redirect"]);
$prefix = 'http://';
if(strstr($newUrl, $prefix) === FALSE)
$newUrl = $prefix . $newUrl;
Header("Location: " . $newUrl );
exit();
}
strpos() poate returna si 0, daca 'needle' este gasit pe pozitia 0 din 'haystack' iar valoare negativa nu va returna vreodata.
2. e mai important sa cauta si sa atasam, daca e cazul, "http://" in $_GET['redirect'] decat "http://www." pentru ca in cazul in care $_GET['redirect'] este de forma 'www.site.com' i se va atasa "http://www.www.site.com", ceea ce nu e bine.
p.s ai mai uitat o ")" la if.