Почему моя переменная сеанса не установлена ​​здесь? - PullRequest
0 голосов
/ 03 июля 2010

Я устанавливаю переменную сеанса внутри функции studNameDetails1(), в то время как я пытаюсь получить ее в функции ViewMark().Это две мои функции, но результата нет:

function studNameDetails1()
{
     $_SESSION['ATTsub']=$sub_id = $ID[5];
}
function ViewMark()
{
      echo $_SESSION['ATTsub'];
}

Когда я отображаю значение в viewMark(), значение отсутствует.

Ответы [ 2 ]

3 голосов
/ 03 июля 2010

Переменная $ID не была объявлена ​​внутри функции studNameDetails1, поэтому при попытке доступа к ней неопределенное значение. Это установит переменные $_SESSION['ATTsub'] и $sub_id в неопределенные, поэтому они будут отображаться как пустые при попытке их печати. ​​

Если эти переменные были объявлены вне области действия функции, используйте ключевое слово global:

function studNameDetails1()
{
    global $sub_id, $ID;

    $_SESSION['ATTsub']=$sub_id = $ID[5];
}

http://php.net/manual/en/language.variables.scope.php

2 голосов
/ 03 июля 2010

Это способ обработки сессий.

    <?php // this starts the session 
session_start(); 

    // echo variable from the session, we set this on our other page 
echo "Our color value is ".$_SESSION['color'];  
echo "Our size value is ".$_SESSION['size'];  
echo "Our shape value is ".$_SESSION['shape']; ?>  

Все значения хранятся в массиве $ _SESSION, к которому мы обращаемся здесь. Другой способ показать это - просто запустить этот код:

<?php session_start(); Print_r ($_SESSION); ?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...