Intereting Posts
PHP читает десятичные целые числа из атрибутов xml Изменение изображения src с помощью jQuery. (Не работает в Firefox) Удаление содержимого каталога и содержимого подкаталога Как сделать этот PHP-фрагмент без предупреждения? Функция JQuery конфликтует с формой php Добавление ведущего 0 в php Сохранять данные в автономном режиме до публикации Что mysqli_error () ожидает, что параметр 1 является mysqli, значение null задано? Есть ли инструмент для преобразования Java, JavaScript или Python в PHP? MySQL Search w / Упорядоченные подстановочные знаки и извлечение их значений Как настроить расширения доктрины в Zend Framework 2? Инъекция зависимостей Laravel: когда вам нужно? Когда вы можете издеваться над фасадами? Преимущества любого метода? Как хранить qrcode, сгенерированный с помощью phpqrcode, в db вместо пути к файлу? Как изменить ссылку «проект сонаты» в SonataAdmin? Регулярное выражение PHP с круглыми скобками

PHP-код запускается автоматически в Javascript, когда не требуется

Внутри PHP / HTML- страницы я пытаюсь запустить сеанс в php, а затем установить значение переменной сеанса, и я пытаюсь сделать это внутри функции Javascript, и в этой функции есть оператор if, но php код внутри оператора if выполняется автоматически, когда я сразу же перехожу на страницу, когда я хочу, чтобы код запускался только тогда, когда пользователь принял условия …

Вот мой код:

HTML:

<label> <input type="checkbox" name="terms" id="terms-checkbox"> <font color="#090909" size="+1">I agree to the Terms and Conditions.</font> </label> 

Javascript:

 if(document.getElementById("terms-checkbox").checked){ <?php session_start(); $_SESSION["ITA"] = "Yes"; ?> window.open('DL.php?App=STOPit'); } 

Поэтому, когда я открываю страницу php, содержащую этот предыдущий код Javascript, переменная $ _SESSION ["ITA"] будет равна «Да», даже если условие еще не выполнено.

Надеюсь, кто-то может мне помочь.

Для вашего лучшего понимания php работает на стороне сервера, а javascript работает на стороне клиента.

То, что вы пытаетесь сделать, возможно, если вы отправляете данные с помощью form или вам нужно сделать вызов ajax с помощью javascript .

Ниже приведен один из способов сделать что-то подобное.

 <?php session_start(); if(isset($_POST['terms'])) { $_SESSION["ITA"] = "Yes"; header('Location: DL.php?App=STOPit'); } ?> <form action="<?php $_SERVER["PHP_SELF"] ?>" method="post"> <label> <input type="checkbox" name="terms" id="terms-checkbox"> <font color="#090909" size="+1">I agree to the Terms and Conditions.</font> <input type="submit" value="Submit"> </label> </form> 

Это не то, как работают PHP и Javascript.

PHP работает на сервере раньше всего. JS работает на стороне клиента.

Без дополнительной информации:

Я полагаю, что ваш JS-код не является файлом, а встроенным скриптом на той же странице HTML / PHP. Когда ваш пользователь запрашивает HTML-страницу, PHP анализирует ее, включая теги внутри вашего JS-кода.

Если вы хотите, чтобы PHP делал что-то, основанное на действиях пользователя в браузере ( document.getElementById ), вы должны использовать другие маршруты. Возможно, используя Ajax, например, так что ваш PHP-код может что-то сделать.

Всегда начинайте свой PHP session_start() в верхней части файла скрипта PHP.

 <?php session_start(); ?> Here you can continue with your HTML/CSS/JavaScript codes but the above is mandatory in order to start a session within your PHP project. 

В противном случае вы будете отправлять информацию заголовка после завершения буферизации вывода, и в итоге вы получите ошибку:

 Warning: Cannot modify header information - headers already sent by (output started at /some/file.php:12) in /some/file.php on line 23 

Когда вы правильно инициализировали обработчик сеанса, как я описал, вы можете использовать или делать:

 $_SESSION['item-name'] = 'value'; // to set a value of a specific session item echo $_SESSION['item-name']; // retrieve it's value and output it unset($_SESSION['item-name']); // to delete it from the $_SESSION container