Когда доступна одна страница, я хотел бы начать сеанс и сохранить переменную сеанса:
<?php session_start(); $_SESSION['myvar']='myvalue'; ?>
Затем с другой страницы я хотел бы проверить, сохранена ли эта переменная сеанса:
<?php session_start(); echo("1"); if(isset($_SESSION['myvar'])) { echo("2"); if($_SESSION['myvar'] == 'myvalue') { echo("3"); exit; } } ?>
Этот код не работает для меня.
Исходя из комментариев к этому вопросу, кажется, что отсутствует скорректированный сеанс. Save_path вызывает это неправильное поведение обработчика сеанса PHP. Просто укажите каталог (за пределами корневого каталога вашего документа), который существует и является читаемым и записываемым PHP, чтобы исправить это.
Все, что вы хотите сделать, это write — session_start (); —– на обеих страницах.
<!-- first page --> <?php session_start(); $_SESSION['myvar'] = 'hello'; ?> <!-- second page --> <?php session_start(); echo $_SESSION['myvar']; // it will print hello ?>
Определение сеанса перед всем, до выхода не должно быть, NO OUTPUT
<?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@example.com'; ?>
Использование и получение сеанса в 2.php
<?php //In this page I am going to use session: session_start(); if($_SESSION['email']){ echo 'Your Email Is Here! :) '; } ?>
ПРИМЕЧАНИЕ . Комментарии не выводятся.
В том случае, если вторая страница не имеет общего доступа к файлу 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; } }
Каждый раз, когда вы начинаете сеанс (применяется к 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;
Начало сеанса:
Поместите ниже код в верхней части файла.
<?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/
Попробуй это
Первая страница
<?php session_start(); $_SESSION['myvar']='myvalue'; ?>
Вторая страница
<?php session_start(); echo $_SESSION['myvar']; ?>
Попробуй это:
<!-- 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; } } ?>