Как использовать условные операторы для установки cookie на основе ввода из формы HTML? - PullRequest
0 голосов
/ 26 декабря 2018

Я настраиваю веб-сайт, который будет отображать сообщения, основанные на пользовательском вводе, вместо использования геолокации, которую владелец веб-сайта хочет, чтобы посетители выбирали свое местоположение вручную.

Для этого я сделал условное заявление, чтобы проверитьесли файл cookie уже существует, а если нет, появится всплывающее окно с формой, содержащей кнопки, которые пользователь может щелкнуть, чтобы выбрать свое «местоположение».Затем форма отправляется на страницу шаблона на основе оператора «else if» и устанавливается правильное значение cookie.

Проблема с этим подходом

1. При использовании этого метода форма заканчивается на шаблоне, который содержит "$_GET "для ввода формы.Вместо этого я хочу перенаправить его на главную страницу (главная страница).

2. Установленный файл cookie исчезает, как только посетитель переходит на другую страницусайт.

3. Я считаю этот метод ($ _GET) очень "открытым" и пригодным для многих атак.

Что мне нужно добавить, чтобы перенаправить на домашнюю страницу после того, как PHP обработал форму, и чтобы куки не исчезали при просмотре сайта?

Некоторые простые меры безопасности также будут высоко оценены.

В исходном коде много условных выражений "elseif", но в принципе все они одинаковы, единственное отличие состоит в том, что, значения они отправляют, получают и устанавливают.Код такой же.Вот почему я не включаю каждое условное утверждение здесь.

Код для установки файла cookie и проверки его существования.Этот код находится в файле functions.php.

<?php
//Set Cookie akr
function set_mycookie_cookie() { 

$_a = 'akr';

if(!isset($_COOKIE['tln_c_no'])) {

// set a cookie for 1 year
setcookie('tln_c_no', $_a, time()+31556926, '/'); 
///Cookie path has also been set to "/" instead of '/', but it makes no difference.

}

}

//Check for cookies function////////
function check_for_cookies() { 

// Check if cookie is already set
if(isset($_COOKIE['tln_c_no'])) {
// Do this if cookie is set 
?>
<script>
alert("Hi, and welcome back!");
</script>
<?php
} else { 

// Do this if the cookie doesn't exist 
echo do_shortcode("[sg_popup id=1]");

}
} 
add_action('wp_head', 'check_for_cookies');
?>

HTML-форма (расположена в том же выделенном файле custom-template.php, что и $ _GET)

<form action="/custom-template.php" method="get" target="_self">
<input type="submit" name="fylket_a" value="AKR" />
</form>

Код PHP $ _GET (находится в том же шаблоне, что и форма HTML)

if($_GET){


if(isset($_GET['fylke_a'])){


set_akr_cookie();


}elseif(isset($_GET['fylke_b'])){


set_akb_cookie();

}else{

echo "Ooops!";
      }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...