2013-03-20 5 views
0

Этот вопрос напрямую связан с этим другим вопросом. on StackOverflow.URL-адрес PHP/JS внутри запроса GET

У меня такая же проблема, но я не уверен, что я могу отделить префикс протокола как другую переменную, как это предлагается в вышеуказанном вопросе. Я использую действие GET, отправленное на другую страницу, где используются данные (например, form на index.php отправляет GET в search.php).

На странице индекса пользователь может вводить данные, включая URL-адрес, который должен быть отправлен (например, текстовое поле и кнопка отправки). Из-за характера URL-адресов я ожидаю, что некоторые люди будут копировать и вставлять - и, следовательно, люди, вероятно, будут включать http: // иногда, хочу ли я их или нет.

Если http: включен в запрос GET (например, search.php? Q = http://google.com), я получаю 403 запретную ошибку на search.php - в которой я столкнулся с проблемами.

За пределами JS существует ли способ удалить или отделить префикс протокола от пользовательского ввода, если он существует, до того, как запрос будет отправлен на search.php? НАПРИМЕР. После того, как пользователь нажимает кнопку отправки, но перед отправкой данных на другую страницу?

Заранее благодарим за любые ответы или советы, которые вы можете дать!

EDIT: Я знаю, что могу использовать urlencode для кодирования URL-адресов - но может ли быть выполнено до того, как запрос данных/GET будет отправлен?

+0

не видит ссылку на предыдущий вопрос –

+0

Исправлено, извините! – Lent

+0

Что значит «вне JS»? просто добавьте 'onsubmit =" somefunction() "' и сделайте все, что вы хотите сделать 'document.forms [" form "] [" url_input "]. Value' – kuncajs

ответ

0

Вне javascript? №
Однако, когда данные отправляются на search.php, вы можете протестировать http: // и удалить его, если вы не хотите, чтобы он был включен.

+0

Я знаю, что могу проверить его, если search.php загружается - но я получаю ошибку 403 Forbidden, если запрос GET содержит «http:» – Lent

+0

Какой сервер? Используете ли вы apache с mod_security? –

+0

Капитан: Да. Я прочитал вопрос, связанный с тем, что это может быть некоторые настройки на Apache, мешающие ему, но я не уверен, что изменить, чтобы исправить эту проблему. – Lent

Смежные вопросы