Маленькая проблема

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Bloody ST@R
Сообщения: 37
Зарегистрирован: 19 фев 2004, 06:50

Плиз хэлп.
У меня есть массив, который формируется и обрабатывается с помощью функций (которые находятся на одной странице). Я хочу чтобы этот массив мог быть доступным при работе с другими страницами. Я пытался реализовать это при помощи сессий или cookies (передавать массив по ссылке не охото), оба способа не сохраняют массив. Толи меня уже клинит, толи …. Код выглядит так:

global $myArray;
$myArray=Array();

function f1(){
global $myArray
// обработка массива
}
function f2(){

global $myArray
// обработка массива

}
function f3(){
global $myArray
// обработка массива
session_register(“myArray”);

}


на другой странице:

count($myArray); //1 а должно быть например,9
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Bloody ST@R,
сессии как-то несколько по-разному реализованы в разных версиях PHP. Вот код, который в своё время работал на всех доступных для тестирования версиях:

Код: Выделить всё

/**
 * Помещает переменную в сессию
 * @param $name  имя переменной для размещения в сессии
 * @param $value значение переменной для размещения в сессии
 * @returns null
 */ 
 function setValueIntoSession($name,$value){
    $$name = $value;
    session_cache_limiter('none');
    session_start();
    global $HTTP_SESSION_VARS;
    session_register($name);
    $HTTP_SESSION_VARS[$name] =$value;
 }   
  
/**
 * Извлекает переменную из сессии
 * @param $name  имя переменной для извлечения из сессии
 * @return значение переменной извлечённой из сессии
 */ 
 function getValueFromSession($name){
    session_cache_limiter('none');
    session_start();
    global  $HTTP_SESSION_VARS;
    if (!isset($HTTP_SESSION_VARS[$name])) {
        return null;
    }else{
        return $HTTP_SESSION_VARS[$name];
    }
 }
Даже самый дурацкий замысел можно воплотить мастерски
Ответить