|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
|
Почему значение $_SESSION['email'] не сохраняется после перезагрузки страницы?02.03.2018, 20:01. Показов 5274. Ответов 20
Метки нет (Все метки)
Пользователь вводит данные в форму, они передаются в PHP обработчик. Здесь после проверки на полноту и уникальность открывается сессия, значение $_POST['email'] сохраняется $_SESSION['email'] . После этого введенные пользователем данные и случайно сгенерированный код сохраняется в базе данных MySQL. Код отправляется пользователю и его перебрасывает на страницу ввода этого кода . Далее предполагалось извлечь из базы данных сохраненный там код для пользователя с адресом $_SESSION['email'] и сравнить этот код с тем, что прислал пользователь. Но $_SESSION['email'] оказывается пустым.
В чем дело? И можно ли вообще таким образом организовать подтверждение регистрации? Задача состоит в том, чтобы организовать подтверждение регистрации с помощью кода (переход по ссылке здесь не подходит). Можно ли для решения этой задачи обойтись только PHP и MySQL? Решение задачи с last_insert_id не подходит, потому что с его помощью нельзя сделать восстановление забытого пароля.
0
|
|
| 02.03.2018, 20:01 | |
|
Ответы с готовыми решениями:
20
Как сделать, чтобы при отметке чекбокса, его значение checked сохранялось после перезагрузки страницы? Значение $_SESSION['auth'] исчезает при перезагрузке страницы Не сохраняется $_SESSION |
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|
| 02.03.2018, 20:11 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
|
| 02.03.2018, 20:20 [ТС] | |
|
session_start(); пишу прямо перед $_SESSION['email'] = $_POST['email'];
0
|
|
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|
| 02.03.2018, 20:22 | |
|
А на странице куда потом пользователя перебрасывает? Там тоже должен стоять session_start();
0
|
|
|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
|
| 02.03.2018, 20:30 [ТС] | |
|
При этом выдает предупреждение
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\OSPanel\domains\shablon.local3\includ es\access.inc.php:202) in C:\OSPanel\domains\shablon.local3\includ es\access.inc.php on line 54 В строке 54 уже есть session_start(); но он находится в форме входа и должен запускаться только если нажата кнопка "ВОЙТИ": if (isset($_POST['action']) and $_POST['action'] == 'Войти') Если session_start(); в строке 54 закомментировать, ничего не меняется, $_SESSION['email'] после перезагрузки пустой Добавлено через 3 минуты Пользователя перебрасывает в форму login.html.php (<!DOCTYPE html>). Если поставить в нее <?php session_start(); ?> выдает Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\OSPanel\domains\shablon.local3\admin\ login.html.php:10) in C:\OSPanel\domains\shablon.local3\admin\ login.html.php on line 10
0
|
|
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|||||||
| 02.03.2018, 20:35 | |||||||
|
Добавлено через 1 минуту <?php session_start(); ?> нужно ставить в начало файла, первая строка Добавлено через 3 минуты В общем, файл login.html.php должен начинаться с
0
|
|||||||
|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
|
| 02.03.2018, 20:39 [ТС] | |
|
<?php session_start(); ?> в самом начале файла тоже ничего не меняет
0
|
|
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|
| 02.03.2018, 20:41 | |
|
А можно код страницы, на которой пользователь должен ввести код (там где идёт выборка из БД по $_SESSION['email']) ?
0
|
|
|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
||||||
| 02.03.2018, 20:47 [ТС] | ||||||
|
пользователь вводит код на другой странице, именно туда ставлю <?php session_start(); ?>
(и в форму ввода тоже) Добавлено через 4 минуты Страница, на которой пользователь должен ввести код:
0
|
||||||
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|||||||||||
| 02.03.2018, 20:51 | |||||||||||
|
По описанию алгоритма, всё должно работать
0
|
|||||||||||
|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
||||||
| 02.03.2018, 20:52 [ТС] | ||||||
|
Страница, на которой происходит обработка полученного кода:
0
|
||||||
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|
| 02.03.2018, 20:55 | |
Сообщение было отмечено Ветер1 как решение
Решение
А на той странице где происходит выборка из БД по $_SESSION['email']? Там есть session_start();?
Добавлено через 45 секунд session_start(); должен стоять до header('Content-Type: text/html; charset=utf-8'); Добавлено через 1 минуту session_start(); всегда должен быть в начале документа, до вывода заголовков.
1
|
|
|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
|||||||
| 02.03.2018, 21:04 [ТС] | |||||||
|
То есть
Добавлено через 3 минуты Есть
0
|
|||||||
|
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
|
||
| 02.03.2018, 21:06 | ||
|
0
|
||
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
||||||
| 02.03.2018, 21:07 | ||||||
|
Я вообще не пойму зачем там столько session_start(); понатыкано...
поставьте:
0
|
||||||
|
0 / 0 / 1
Регистрация: 08.06.2016
Сообщений: 30
|
|
| 02.03.2018, 21:08 [ТС] | |
|
Ура, заработало!
session_start(); в начале обработчика и все заработало наконец! СПАСИБО!
0
|
|
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|
| 02.03.2018, 21:16 | |
|
Вы главное остальные session_start(); уберите, а то ошибки постоянно будут выскакивать...
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||
| 02.03.2018, 21:46 | |||
|
0
|
|||
|
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
|
|
| 02.03.2018, 21:50 | |
|
))) от перемены мест слагаемых, их сума не меняется....
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 02.03.2018, 21:54 | |
|
0
|
|
| 02.03.2018, 21:54 | |
|
Помогаю со студенческими работами здесь
20
PHP и Arduino. COM порт. Не сохраняется $_SESSION Скрывать блок после перезагрузки страницы Не подгружается контент после перезагрузки страницы После перезагрузки страницы текущая сессия удаляется Обновление данных формы после перезагрузки страницы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|