Я попытался создать сценарий, где, когда пользователь вводит URL-адрес и нажимает Go, он перейдет на эту веб-страницу. Я сделал это, но заметил, что он работал только сПростое перенаправление проблемы с скриптом
http://
перед ним. Таким образом, я использовал StrPos функции для проверки
http://
находится в строке, и если это не будет добавлять его к URL и перейти на сайт. Это работает, но теперь, когда пользователь вводит URL-адрес с «Http: //» это удвоит его так, что это будет что-то вроде:
'http://http://www.example.com'.
Как я могу это исправить? Это код:
<?
if ($_POST['submit']) {
$urlgo = $_POST['url'];
if (strpos($urlgo,'http://') == false) {
$url = "http://$urlgo";
header("Location: $url "); /* Redirect browser */
} else {
$urlgo = $_POST['url'];
header("Location: $urlgo "); /* Redirect browser */
exit;
}
}
?>
Как получилось, что вторая часть кода действительно работает, если == false действительно означает «истина»? Потому что, когда вы набираете google.com, он не будет работать без http: //. – user3102740
Переадресации «Расположение», по спецификациям http, должны быть полным URL. Для удобства браузеры МОГУТ БЫТЬ мягкими и видеть, что «Местоположение: google.com» имеет перенаправление на google. Но по строгой спецификации перенаправление не должно работать или пытаться ударить файл под названием google.com на том же сайте, что и при вызове заголовка. –