Глобальный массив или как осуществить следуещее

noni

Новичок
Глобальный массив или как осуществить следуещее

Делаю Прогу тест на PHP и mysql

3 файла.
один генерирует массив от 1 до 4 случайной последовательностью.
mass.php
<?
$x=array();$tmp=array();for ($i=0; $i<4; $i++) {
do {
$a=rand(1,4);
} while(isset($tmp[$a]));
$tmp[$a]=1;$x[]=$a;
}
unset($tmp);
?>
второй asks.php через include берет массив $x[];
по этой последовательности выводит ответы теста.

Третий result.php проверяет ответ и записевает в базу.
и возврашает asks.php через header(Location:"asks.php?bb=bb&bb и.т.д")
при повтоhном запуске файле asks.php инклудится mass.php и опят генерирует $x[]

Я хотел сделать так чтоб массив $x[] обрабатовался только один раз.
и сохранял свои первичные данные до конца теста.

Извиняюсь если не понятно
и заранее спасибо за ответ.
 

DruidM

Новичок
Re: Глобальный массив или как осуществить следуещее

не понятно.
Но хранить информацию, чтобы она была доступна разным скриптам можно в сессии или в базе.
 

noni

Новичок
в mass.php сделал так
все ровно при повторном запросе последовательность
заново генерируется

mass.php
<?php
if (!isset($_SESSION['w1'])){
session_start();
$x=array();$tmp=array();for ($i=0; $i<4; $i++) {
do {
$a=rand(1,4);
} while(isset($tmp[$a]));
$tmp[$a]=1;$x[]=$a;
}
$_SESSION['w1']=$x[0];
$_SESSION['w2']=$x[1];
$_SESSION['w3']=$x[2];
$_SESSION['w4']=$x[3];
unset($tmp);
}
 

ZN

Новичок
noni
ну так и что ты изменил? ты добавил хранение своего массива в сессии, но ты только пишешь его в сессию, а где ты из неё читаешь?
 

noni

Новичок
Автор оригинала: ZN
noni
ну так и что ты изменил? ты добавил хранение своего массива в сессии, но ты только пишешь его в сессию, а где ты из неё читаешь?
Читаю из asks.php так
<?
include("mass.php");
$w1=$_SESSION['w1'];
$w2=$_SESSION['w2'];
$w3=$_SESSION['w3'];
$w4=$_SESSION['w4'];
?>

но проблема не в извлечении из массива
щяс проблема в том что
Я щяс делаю так
в mass.php

<?php
if (!isset($_SESSION['w1'])){ # проверяю существуетли переменная $_SESSION['w1'];
# если не существует то идет Генерация последовательности $x[]

session_start();
$x=array();$tmp=array();for ($i=0; $i<4; $i++) {
do {
$a=rand(1,4);
} while(isset($tmp[$a]));
$tmp[$a]=1;$x[]=$a;
}
$_SESSION['w1']=$x[0];
$_SESSION['w2']=$x[1];
$_SESSION['w3']=$x[2];
$_SESSION['w4']=$x[3];
unset($tmp);
} Если нет значения $_SESSION['w1'] то не надо делать обратно генерацию
и пусть остаются те значения первойгенерации последовательности.

но у меня получается так что даже если существует $_SESSION['w1'] не передается обратно на
mass.php
и все ровно идет Генерация.
 

ZN

Новичок
if (!isset($_SESSION['w1'])) - и зачем эта проверка? вы же сессию не стартовали, а хотите что-то из неё получить
короче, вот
 

noni

Новичок
вышла отпечатка
} Если есть значения $_SESSION['w1'] то не надо делать обратно генерацию
 

DruidM

Новичок
массив $_SESSION, как я полагаю заполняется данными из сессии, только после session_start()
т.е. сначало должно идти session_start(), а потом работа с сессионными переменными
 

noni

Новичок
Воо спасибооооо
Дурная моя голова!!!!!

спасибо Всем
Особенно DruidM
 
Сверху