Как использовать хранение и использование переменных сеанса на разных страницах?
При обращении к одной странице я хотел бы начать сеанс и сохранить переменную сеанса:
<?php
session_start();
$_SESSION['myvar']='myvalue';
?>
Затем с другой страницы я хотел бы проверить, сохранена ли эта переменная сеанса:
<?php
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
?>
Этот код не работает для меня.
Ответы
Ответ 1
Исходя из комментариев к этому вопросу, кажется, что недостаток скорректированного session.save_path вызывает это неправильное поведение обработчика сеанса PHP. Просто укажите каталог (вне корневого каталога вашего документа), который существует, и он читается и записывается PHP, чтобы исправить это.
Ответ 2
Все, что вы хотите сделать, это write --- session_start(); ----- на обеих страницах.
<!-- first page -->
<?php
session_start();
$_SESSION['myvar'] = 'hello';
?>
<!-- second page -->
<?php
session_start();
echo $_SESSION['myvar']; // it will print hello
?>
Ответ 3
Сеансы Шаг за шагом
-
Определение сеанса перед всем, до выхода не должно быть, НЕТ ВЫХОДА
<?php
session_start();
?>
-
Установите сеанс внутри страницы, а затем у вас есть доступ на этой странице. Например, это страница 1.php
<?php
//This is page 1 and then we will use session that defined from this page:
session_start();
$_SESSION['email']='[email protected]';
?>
-
Использование и получение сеанса в 2.php
<?php
//In this page I am going to use session:
session_start();
if($_SESSION['email']){
echo 'Your Email Is Here! :) ';
}
?>
ПРИМЕЧАНИЕ: комментарии не выводятся.
Ответ 4
В том случае, если вторая страница не имеет общего доступа к файлу cookie сеанса, вам нужно установить путь к cookie сеанса, используя session_set_cookie_params:
<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
$_SESSION['myvar']='myvalue';
и
<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
Ответ 5
Каждый раз, когда вы начинаете сеанс (применяется к PHP версии 5.2.54), session_start()
создает новый идентификатор сеанса.
Вот исправление, которое сработало для меня.
File1.php
session_id('mySessionID'); //SET id first before calling session start
session_start();
$name = "Nitin Hurkadli";
$_SESSION['username'] = $name;
File2.php
session_id('mySessionID');
session_start();
$name = $_SESSION['username'];
echo "Hello " . $name;
Ответ 6
Запуск сеанса:
Поместите ниже код в начало файла.
<?php session_start();?>
Сохранение переменной сеанса:
<?php $_SESSION['id']=10; ?>
Чтобы проверить, сохранены ли данные в переменной сеанса:
<?php if(isset($_SESSION['id']) && !empty(isset($_SESSION['id'])))
echo "Session id ".$_SESSION['id']." exist";
else
echo "Session not set ";?>
? > подробнее здесь http://skillrow.com/sessions-in-php-4/
Ответ 7
Попробуйте это
Первая страница
<?php
session_start();
$_SESSION['myvar']='myvalue';
?>
Вторая страница
<?php
session_start();
echo $_SESSION['myvar'];
?>
Ответ 8
Попробуйте следующее:
<!-- first page -->
<?php
session_start();
session_register('myvar');
$_SESSION['myvar'] == 'myvalue';
?>
<!-- second page -->
<?php
session_start();
echo("1");
if(session_is_registered('myvar'))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
?>