Хорошо, я создал сеанс … но теперь как мне заставить его работать на других моих страницах?
Я пробовал делать
@session_start(); if(isset($_SESSION['$userName'])) { echo "Your session is running " . $_SESSION['$userName']; }
Если ваша настройка PHP понятна (хорошо написано письмо), а cookie обычно отправляется в браузер (и сохраняется), вы должны иметь возможность сделать что-то вроде этого
На первой странице:
session_start(); $_SESSION['userName'] = 'Root';
На второй странице:
session_start(); if(isset($_SESSION['userName'])) { echo "Your session is running " . $_SESSION['userName']; }
Будьте осторожны, session_start () должен быть вызван до отправки любого вывода, поэтому, если вам пришлось использовать @ для session_start, он может скрывать предупреждения.
Поскольку это предупреждения, если данный пример не работает, попробуйте добавить это до вызова session_start:
error_reporting(E_ALL);
На первой странице (test1.php),
<?php session_start(); $_SESSION['userName'] = 'This is Ravi'; ?>
На второй странице (test2.php),
<?php session_start(); if(isset($_SESSION['userName'])) { echo "Your session is running " . $_SESSION['userName']; } ?>
Убедитесь, что session_start () находится в верхней части каждой страницы, на которой вы хотите использовать сеансы. Затем вы можете ссылаться на переменные сеанса так же, как в вашем примере.
Убедитесь, что cookie сеанса отправляется в браузер при первом попадании и возвращается браузером в последующих запросах. Есть много причин, почему это может быть неудачным – обычно PHP покраснет заголовки перед вызовом session_start () (что может быть связано с символами спецификации UTF-8 или просто беспорядочным программированием).
Убедитесь, что вы включили отчет об ошибках.
C.
Убедитесь, что обе страницы находятся в одном домене. Даже сайт http://www.site.com отличается от site.com
Использование echo session_id (); также помогает идентифицировать ваш session_id на каждой странице, убедитесь, что есть одинаковые
Помните о чувствительности к $_session
переменных $_session
.
Поэтому $_SESSION['userName']
отличается от $_SESSION['username']
.
ПРИМЕЧАНИЕ. Пользователь не должен иметь доступ к домашней странице, не проходя страницу входа.
первая страница (hello1.php) – сохранение сеанса
$userName = "Nick"; session_start(); $_SESSION['username'] = $userName;
вторая страница (hello2.php) – выходная сессия
session_start(); $userName = $_SESSION['username']; echo "$userName";
Выход: Ник