Закрытие страницы браузера вручную (нажатием крестика) и созданной кнопки, и запись в Базу Данных
Добрый всем день. Может некорректно написал заголовок, словей не хватает , но проблема такая:
На странице есть кнопка выхода, которая возвращает на главную страницу и закрывает сессию, переключая юзера с режима «on» в режим «off». И есть условие нажатия кнопки, при котором, если созданная кнопка нажата, осуществляется переход на главную страницу и в таблицу записывается значение юзера «off», иначе, если принудительное закрытие окна, то также должно быть обновление строки юзера на «off». Вопрос в том, что при присутствии в коде программы строки принудительного закрытия, выполняются оба условия (сначала иначе а потом если) и выдается кучу ошибок, основанных на том, что нет подключения к БД, а при отсутствии этой строки, при принудительном закрытии в БД записи нет.
Прилагаю коды программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
if(isset($_REQUEST['vihod1'])) { $log = $_SESSION['login']; $connect = "host=localhost port=* dbname=* user=* password=*"; pg_connect($connect); $igra = pg_query("SELECT * FROM useri_igra WHERE login='$log'"); $pers=pg_fetch_array($igra); $tabsq200 = array('login'=>$log,'vigre'=>'off'); $useri_igra ='useri_igra'; $ud = array('login'=>$log); pg_delete(pg_connect($connect),$useri_igra,$ud,PGSQL_DML_EXEC); pg_insert(pg_connect($connect),$useri_igra,$tabsq200); $_SESSION = array(); session_destroy(); header("Location: http://localhost/uchastok1.php"); exit(); } else{clozet();}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
function Nafig() { ignore_user_abort(true); set_time_limit (10); $log = $_SESSION['login']; $connect = "host=localhost port=5432 dbname=tripolie user=postgres password=z1a1q1w2s2x2"; pg_connect($connect); $igra = pg_query("SELECT * FROM useri_igra WHERE login='$log'"); $pers=pg_fetch_array($igra); $tabsq200 = array('login'=>$log,'vigre'=>'off'); $useri_igra ='useri_igra'; $ud = array('login'=>$log); pg_delete(pg_connect($connect),$useri_igra,$ud,PGSQL_DML_EXEC); pg_insert(pg_connect($connect),$useri_igra,$tabsq200); $_SESSION = array(); session_destroy(); ignore_user_abort(false); exit(); } function clozet(){register_shutdown_function (Nafig());}
Добавлено через 4 часа 48 минут
Хотел добавить, что при выложенном коде запрос в БД обновляется в обоих случаях, а при отсутствии else , обновление только при если
PHP ЗАКРЫТЬ СТРАНИЦУ
Как закрыть страницу в PHP? Существует несколько способов реализации этой функции.Первый способ – использование функции header() для перенаправления пользователя на другую страницу. Для этого нужно указать заголовок «Location» с адресом страницы, на которую нужно перейти. Например: header(«Location: http://example.com»);
Второй способ – использование функции exit() или die() для принудительного завершения скрипта. Код, написанный после вызова этой функции, не будет выполнен. Например: exit();
Третий способ – использование функции ob_end_clean() для удаления содержимого буфера вывода и отключения вывода на экран. Например: ob_end_clean();
Четвертый способ – использование функции session_write_close() для закрытия сессии и записи данных сессии в файл. Например: session_write_close();
Пятый способ – использование функции ignore_user_abort() для выполнения скрипта после того, как пользователь закрыл страницу. Например: ignore_user_abort(true);
В зависимости от того, какой способ использовать, можно закрыть страницу с помощью PHP.
Уроки PHP 7 — Подключение файлов. Шаблон страницы. ruphp.come
Создать админку, вход, выход, чрез php, закрыть доступ к информации через сессию
Урок 2. Создание сайта на php. Авторизация. Создание и вход в админку.
Выводим анонсы статей на главную PHP + MySQL — Урок 4
Авторизация и регистрация с сессией на чистом PHP
Редирект PHP. Перенаправление пользователя на другую страницу посредством PHP
MySQL\u0026PHP Вывод данных из базы данных на страницу
Удаление записей из базы данных с помощью GET запроса в PHP
Как закрыть вкладку браузера после отправки формы?
Я хотел бы закрыть страницу после отправки формы. После запуска вышеуказанного кода страница закрывается после нажатия кнопки отправки, но SQL не выполняется.
Может кто-нибудь мне помочь? Заранее спасибо!
и Удалите window.close() из формы onsubmit event
Удалите onsubmit из тега form . Измените это:
if(isset($_POST['btnSub'])) echo "";
Если вам нужно использовать ту же страницу, что и действие, вы не можете использовать onSubmit=»window.close();» так как он закроет окно до получения ответа. Вы должны динамически выводить фрагмент JS, который закрывает окно после обработки данных SQL. Однако было бы гораздо более элегантно использовать другую страницу в качестве действия формы.
try onsubmit=»submit(); window.close()»
Это связано с тем, что событие onsubmit запускается до onsubmit формы.
Удалите свой onSubmit и выведите этот JavaScript в свой PHP-скрипт после обработки запроса. Вы закрываете окно прямо сейчас и отменяете запрос на свой сервер.
Window.close () не работает так, как раньше. Здесь можно увидеть:
window.close и self.close не закрывают окно в Chrome.
В моем случае я понял, что мне не нужно закрывать страницу. Таким образом, вы можете перенаправить пользователя на другую страницу с помощью:
window.location.replace("https://stackoverflow.com/");
Для меня это блестяще работало:
$query = "INSERT INTO `table` (. or put your preferred sql stuff)" $result = mysqli_query($connect, $query); if($result)< // If everything runs fine with your sql query you will see a message and then the window //closes echo ''; echo ""; > else < echo ''; >
Как закрыть определенную веб-страницу с помощью PHP?
Я новичок в php и пытаюсь выяснить, как я могу закрыть открытую веб-страницу при открытии других веб-страниц. например, я хотел бы открыть веб-страницу yahoo.com, как показано ниже в коде. Затем я хотел бы закрыть эту страницу yahoo.com и открыть страницу google.com.
window.open("http://www.yahoo.com/"); '; //How can I close the yahoo.com page and let the program keep running echo ""; sleep(10); //To open google.com page echo ' '; echo "Done"; ?>
2 ответа
Это действительно вопрос JavaScript. Тот факт, что вы повторяете теги скриптов из PHP, не влияет на ответ.
Возвращаемое значение window.open — это дескриптор окна, которое вы создали. Если вы сохраните его, вы можете закрыть его позже:
var w = window.open("http://www.yahoo.com/"); // Opens window with yahoo.com w.close(); // Closes window with yahoo.com
Обратите внимание, что (а) многие браузеры блокируют всплывающее окно, (б) он закроет окно сразу после его открытия. Если вы хотите поспать между ними, используйте метод JavaScript setTimeout :
var w = window.open("http://www.yahoo.com/"); // Opens window with yahoo.com setTimeout(function() < w.close() >, 1000); // Closes window with yahoo.com after waiting 1000 milliseconds
Закрыть и открыть страницу PHP
Здравствуйте друзья, помогите пожалуйста закрыть страницу.
Имеется 2 файла
1.php
2.php
Мне нужно что бы когда я переходил с 1.php на 2.php он мне закрывал автоматически 1.php. Код перехода на 2.php я знаю, но только что нужно добавить в код что бы он закрывал автоматически 1.php. СПС заранее)
input type=button name="button1" value="Nachalo"onclick="window.open('2.php')">
Как по Submit открыть окно, закрыть и перейти на страницу дальше
как в <FORM . > </FORM> обработать по нажатию кнопки вызов окна и передать туда все значения.
Передать через аякс параметры в php и открыть эту страницу
Всем добрый день, не ругайтесь сильно матом, гуру ajax’а и JS. Я не силен в JS, он у меня буквально.
Создать php страницу через другую php страницу
Всем привет. Я пытаюсь написать страницу, которая по заданному шаблону должна создавать другие.
Как закрыть или скрыть основное окно и открыть дочернее, и как потом закрыть дочернее окно и открыть основное
Здравствуйте, передо мной возникла проблема, с которой я не могу справиться. Суть проблемы в том.
Сообщение было отмечено доминик как решение
Решение
Сообщение от доминик
Здравствуйте друзья, помогите пожалуйста закрыть страницу.
Имеется 2 файла
1.php
2.php
Мне нужно что бы когда я переходил с 1.php на 2.php он мне закрывал автоматически 1.php. Код перехода на 2.php я знаю, но только что нужно добавить в код что бы он закрывал автоматически 1.php. СПС заранее)
input type=button name="button1" value="Nachalo"onclick="window.open('2.php')">