Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 04.01.2017, 20:52   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 250
Репутация: 15
Счастье Как удалить или обновить сессию ?

Подскажите пожалуйста, как обновить, или удалить сессию каптчи, при отправки данный формы?
Я делаю так:

Страница с формой:

PHP код:
include("captcha/session_start.php");
.....
<img id="captcha" src="./reg/captcha/?<?php echo session_name()?>=<?php echo session_id()?>">
<p id="reloadcaptcha">Показать другой код</p>

<label id="label-captcha">Код с картинки</label>
<span class="star-captcha">*</span>
<input type="text" name="reg_captcha" id="reg_captcha" value="" />
Обработчик формы:
PHP код:
    include("captcha/session_start.php");
......
    if(isset(
$_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] != $_POST['reg_captcha']){$error[] = "Неверный код с картинки!";}
           unset(
$_SESSION['captcha_keystring']);
           
// Unset все переменные сессии.
           
$_SESSION = array();
           
// Наконец, разрушить сессию.
            
session_destroy(); 
Запуск сессии, session_start.php:

PHP код:
session_start(); 

Последний раз редактировалось Женя32; 04.01.2017 в 20:56.
Женя32 вне форума   Ответить с цитированием
Старый 04.01.2017, 21:11   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,848
Репутация: 2903

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Так и в чем проблема?

А SQL причем?
Alex11223 на форуме   Ответить с цитированием
Старый 04.01.2017, 21:31   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 250
Репутация: 15
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так и в чем проблема?

А SQL причем?
Извиняюсь за свою невнимательность..... Я не в том раздели создал тему... Если можно, пусть модераторы переместят тему в нужный раздел.....

Проблема в том, что после отправки данных, сессия не уничтожается....
Женя32 вне форума   Ответить с цитированием
Старый 04.01.2017, 21:39   #4
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,177
Репутация: 986
По умолчанию

http://phpfaq.ru/sessions
Andkorol на форуме   Ответить с цитированием
Старый 05.01.2017, 20:30   #5
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 250
Репутация: 15
Счастье

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Я прочитал эту, и другие статьи...
Я Все делаю так, как там написано...
Там написано, что session_start достаточно указать на одной страницы... Я все так и сделал... После проверки кода с картинки, я указал ниже указанные функции, но сессия все ровно не уничтожается.. Почему так?

PHP код:
    if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] != $_POST['reg_captcha']){$error[] = "Неверный код с картинки!";}
           unset(
$_SESSION['captcha_keystring']);
              
session_unset();
            
session_destroy();
            
$_SESSION = array(); 
Женя32 вне форума   Ответить с цитированием
Старый 05.01.2017, 23:48   #6
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,177
Репутация: 986
По умолчанию

Для начала – с чего вдруг такой вывод, что сессия не изменяется, или данные в ней не уничтожаются?
Я не вижу никакого проверочного кода – только голословную истерику по этому поводу.
Andkorol на форуме   Ответить с цитированием
Старый 06.01.2017, 13:06   #7
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 250
Репутация: 15
Счастье

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Для начала – с чего вдруг такой вывод, что сессия не изменяется, или данные в ней не уничтожаются?
Я не вижу никакого проверочного кода – только голословную истерику по этому поводу.
Вывод сделан из следующего...

В обработчики стоит вот такая проверка, на правильность введенного кода каптчи, если код неправильный, обработчик возвращает ошибку. Когда я намеренно ввожу не правильный код, то так и происходит:

PHP код:
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] != $_POST['reg_captcha']){$error[] = "Неверный код с картинки!";} 
Сразу после этой проверки в обработчики, идут функции разрушения и уничтожения переменных сессии, и самой сессии:

PHP код:
unset($_SESSION['captcha_keystring']);
                 
session_destroy(); 
        
session_unset(); 
        
session_unregister();
                
$_SESSION = array(); 
И по логике должно быть так: Когда пользователь, после отправки данных, нажимает кнопку "Назад", код каптчи должен быть не действительным..., но этого не происходит, иначе бы выводилось сообщения об ошибки: "Неверный код с картинки!".
Женя32 вне форума   Ответить с цитированием
Старый 06.01.2017, 14:10   #8
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,177
Репутация: 986
По умолчанию

Это всё пустые домыслы.
Проверка осуществляется простейшим способом – выводом переменой из сессии на экран.
После отправки формы не должно быть никаких «Назад»:
– если данные прошли валидацию – должен выполняться редирект на страницу «успеха» (чтобы избежать повторной отправки формы при возможном обновлении страницы)
– если данные не прошли валидацию – должен выполняться редирект на страницу с формой, с заполненными ранее полями (введённые данные можно передать через сессию) + сообщения о выявленных при валидации ошибках + обновлённая каптча
Andkorol на форуме   Ответить с цитированием
Старый 06.01.2017, 17:19   #9
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 250
Репутация: 15
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Это всё пустые домыслы.
Проверка осуществляется простейшим способом – выводом переменой из сессии на экран.
После отправки формы не должно быть никаких «Назад»:
– если данные прошли валидацию – должен выполняться редирект на страницу «успеха» (чтобы избежать повторной отправки формы при возможном обновлении страницы)
– если данные не прошли валидацию – должен выполняться редирект на страницу с формой, с заполненными ранее полями (введённые данные можно передать через сессию) + сообщения о выявленных при валидации ошибках + обновлённая каптча
Понял! Спасибо большое!
Женя32 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 15:23
Как обновить капчу (или canvas) без ajax Yan9 JavaScript, Ajax 4 12.10.2015 18:38
как удалить созданную тему или хотя бы вложение свое? dasmeer Помощь студентам 1 14.03.2010 01:19
обновление в блоге - Решение задач: как программе удалить саму себя или как изменить название исполняемог Pblog Обсуждение статей 0 27.06.2009 23:20
Как обновить\перерисовать рисунок на форме или компоненте? Selebro Общие вопросы C/C++ 1 21.12.2008 22:16




00:49.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru