2016-07-22 3 views
-2

Я использую php, и у меня есть вход, который пользователь вводит в ссылку на свой сайт. Ссылка должна появиться для других, чтобы просмотреть ее или открыть. Я тестирую вход, и проблема в том, что ссылка не работает, если я не нахожу либо http: //, либо https: // до упомянутого URL-адреса, и я думаю, что кто-то может просто написать www.foo.com без написания hhtp: //. Ссылка автоматически подставляет http: // или https://with корень моего сайта (или, по крайней мере, это то, что я думаю), потому что я работаю с XAMP, а URL-адрес отображается как localhost/MyFooProjectFile/www.foo.com.Ссылка не работает без http: // протоколов

Как сделать работу с ссылками без протоколов или заменить ни один из указанных протоколов с правой стороны до ссылки моего пользователя?

Примечание: Я знаю, что вопрос может показаться глупым (потому что кто-то идиот, который считает, что ссылка может работать без протокола), но что заставляет меня задаться вопросом, я пишу в адресной строке моего браузера www.foo.co и это займет меня там, без меня, утверждая протоколы.

PLease обратите внимание, что у меня нет кода во время написания вопроса.

+0

Просто проверьте, содержит ли указанную ссылку протокол или нет. Если это не так, добавьте его. – rjdown

+0

Ваш браузер на самом деле добавляет «http: //» перед любым URL-адресом, который вы вводите в адресной строке, поскольку http: // является наиболее распространенным протоколом в браузере (большинство браузеров не показывает протокол, но если вы копируете вставьте URL-адрес в адресную строку, вы также получите протокол). Когда дело доходит до ссылок на сайтах, браузер понятия не имеет, если вы имеете в виду относительный или абсолютный URL-адрес, если вы явно не указали это. Вот почему вам нужен протокол в ссылках. –

+0

Вы можете решить это, выполнив то, что предложил @rjdown. –

ответ

0

ДублированныйWith HTML5 url input validation assume url starts with http://

Доверие пользователя URLS занесены в опасности. Вы должны фильтровать URL-адреса, анализировать их, конструировать, тестировать, а затем внедрять их на свою страницу.

Not all the URL must have "//"

+1

Ну, так как ОП сказал «пользовательские типы в ссылке на свой ** веб-сайт **», вы можете предположить (или, скорее, потребовать), чтобы в качестве префикса был «протокол: //». А если нет, просто добавьте «http: //». Если они требуют какого-либо другого протокола, просто дайте им явно написать его. Однако вы правы в проверке. Это задано для всех пользовательских входов, которые должны быть либо сохранены, либо отображены. –

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