Intereting Posts
Рекомендации PHP для аутентификации пользователей и безопасности паролей Красивый способ удаления GET-переменных с помощью PHP? Ничто не переводится с использованием gettext Как включить JQuery в нижний колонтитул WordPress? PHP – изменить цвет фона на прозрачный Ajax, javascript отправлять переменную на другую страницу, при нажатии AngularJS неправильно маршрутизируется PHP + MySql + Хранимые процедуры, как мне получить доступ к «вне»? Взорвать строку для символов верхнего регистра? Как отправить данные формы и динамически отобразить их с помощью ajax на одной странице PHP: вложенное меню с рекурсивной функцией, расширяющее только некоторые узлы (не все дерево) У меня есть 2 даты в PHP, как я могу запустить цикл foreach, чтобы пройти через все эти дни? Как добавить поле загрузки в сообщение пользователя в wordpress массив сохранения cakephp XML-реформация с помощью DOM

Newbie Проблема с кодировкой PHP: функция заголовка (возможно, мне нужен кто-то, чтобы проверить мой код)

рассмотрим следующий PHP-код:

<?php $searchsport = $_REQUEST['sport']; $sportarray = array( "Football" => "Fb01", "Cricket" => "ck32", "Tennis" => "Tn43", ); header("Location: ".$sportarray[$searchsport].".html"); //directs user to the corresponding page they searched if ($searchsport == NULL) { header("Location: youtypednothing.html"); //directs user to a page I've set up to warn them if they've entered nothing } else { header("Location: sportdoesnotexist.html"); //if sport isn't in my root, a warning will appear } ?> 

Я думаю, что комментарии к коду не требуют пояснений, в основном, когда я набираю Tennis на своем form.html, он отправит данные в этот файл php и обработает и направит меня на Tn43.html, который является моей теннисной страницей. К сожалению, это не работает, и я действительно хочу знать, почему … (Я знаю, что совершил какую-то огромную глупую ошибку).

PS: Является ли заголовком правильная функция для использования при выполнении какой-либо переадресации?

Вы должны немного изменить свой код и изменить тоже:

 <?php $searchsport = $_REQUEST['sport']; $sportarray = array( "Football" => "Fb01", "Cricket" => "ck32", "Tennis" => "Tn43", ); if (!$searchsport) { header("Location: youtypednothing.html"); //directs user to a page I've set up to warn them if they've entered nothing exit; } elseif (!in_array($searchsport, $sportarray)) { header("Location: sportdoesnotexist.html"); //if sport isn't in my root, a warning will appear exit; } header("Location: ".$sportarray[$searchsport].".html"); //directs user to the corresponding page they searched exit; ?> 

Я думаю, вам нужен абсолютный адрес в заголовке. Местоположение: … например http://yoursite.com/youtypednothing.html

вам нужно проверить, существует ли этот ключ, тогда вам нужно выйти из операторов if.

 <?php $searchsport = $_REQUEST['sport']; $sportarray = array( "Football" => "Fb01", "Cricket" => "ck32", "Tennis" => "Tn43", ); if(isset($sportarray[$searchsport])){ header("Location: ".$sportarray[$searchsport].".html"); //directs user to the corresponding page they searched die; } else { if ($searchsport == NULL) { header("Location: youtypednothing.html"); //directs user to a page I've set up to warn them if they've entered nothing die; } else { header("Location: sportdoesnotexist.html"); //if sport isn't in my root, a warning will appear die; } } ?> 

Имейте в виду, что заголовок () не запускается до конца сценария или вызывается exit (). Поэтому я уверен, что прямо сейчас ваш код только говорит:

(Псевдокод)

If null, send to the null page, else send to the default page.

Первая проверка будет перезаписана всеохватывающей секундой, если / else.

Попробуйте поставить чек в блок if / elseif / else с выходом в конце.