Я пытаюсь выяснить, как добавить s после HTTP, как только пользователь проверит окно в форме html.
У меня на моем PHP,
$url = 'http://google.com'; if(!isset($_POST['https'])) { //something here }
Таким образом, в основном, когда пользователь проверяет поле с именем = «https», я хочу добавить s в http-адрес http-url, сделав его https://google.com .
У меня мало знаний о PHP, и если кто-то может объяснить мне, как это сделать, это было бы очень полезно! Благодарю.
$url = preg_replace("/^http:/i", "https:", $url);
$url = str_replace( 'http://', 'https://', $url );
В одну сторону:
$url = '%s//google.com'; $protocol = 'http:'; if(!isset($_POST['https'])) { $protocol = 'https:'; } $url = sprintf($url, $protocol);
Я не знаю, сколько страниц вы хотите, чтобы это произошло, пользователь проверяет флажок, но один ответ – это JavaScript и базовый тег.
С base
тегом вы можете форсировать другое происхождение, с чем будут устранены ваши относительные URL-адреса.
Я использую его ina form, и пользователь указывает флажок, который они подавляют, все остальные страницы будут просматриваться с сайта https , поэтому вы можете использовать относительные URL-адреса повсюду, просто вставьте другой base
тег, когда пользователь захочет изменить форму сайта или на http (s).
Решение, которое не заменяет URL-адреса, содержащие другие URL-адреса, например http://foo.com/redirect-to/http://newfoo.com
$desiredScheme = "http"; // convert to this scheme; $parsedRedirectUri = parse_url($myCurrentUrl); if($parsedRedirectUri['scheme'] !== $desiredScheme) { $myCurrentUrl= substr_replace($myCurrentUrl, $desiredScheme, 0, strlen( $parsedRedirectUri['scheme'] )); }
$count = 1; $url = str_replace("http://", "https://", $url, $count);
Примечание. Передача 1 напрямую приведет к фатальной ошибке (фатальная ошибка: только переменные могут передаваться по ссылке), поэтому вам нужно передать последний параметр по ссылке.