-
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. :)
-
Corect cu strpos... my bad.
Insa nu am incercat sa dau un "model" de script... ci sa spun ca ceea ce trebuie facut acolo este extrem de simplu... Nu am fost atent la detalii de genul ala.
Forma in care se identifica prefixarea.. se poate face in "n" feluri... de la operartii gen strstr...substr... pana la aplicare de regex.... ideea mea era ca nu e cazul de copyright pe un asemenea "script". :)