Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Передача переменных в другие страницы


Автор: smilemf 31.12.2007, 01:33
Привет всем.

Есть скрипт который заполняет переменные значениями на первой странице. 
Например $number = 10;

Но как мне эти-же переменные вызвать например на пятой странице, написав echo $number; чтобы мне выдало число с первой странице, в данном случае десять.


Пробовал закидывать в глобальные массивы

Например на первой странице делаю

$_POST[number] = 10;

На пятой странице скрипта пишу 

echo $_POST[number]; и нифига не появляется.

Пробовал тоже самое с $_SESSIONS - результат тот-же

Я знаю что где-то здесь я конкретно ступил, но где??  smile 


 smile 

Автор: skyboy 31.12.2007, 01:50
$_POST - это данные, полученные скриптом на сервере(РНР) от клиента(веб-браузер). и изменения, сделанные тобой в этом массиве, относятся только к текущей сессии(под сессией понимается обращение к серверу, котрое, в свою очередь, приводит к выполнению некоего скрипта - того, которого ты зовешь "первой страницей").
даже если не обращаться внимания на то, что ты изменяешь суперглобальный массив, а это есть плохо(в первую очередь - нарушаешь последовательность и логичность работы, ибо в суперглобальных массивах $_POST и $_GET должны быть данные, полученные от клиента), то возникает проблема: данные между разными обращениями к серверу не сохраняются.
чтоб сохранить данные можно воспользоваться следующими механизмами:
1. файлы и папки; самый очевидный, но самый медленный вариант(потенциально медленный, во всяком случае). Да и если надо будет для полумиллиона пользователей хранить разные настройки-данные, то работа с пятью сотнями тысяч файлов будет затруднительна. С одним файлом на 500 000 строк, кстати, тоже.
2. http://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85. при первом обращении пишем данные, при каждом последующем - читаем/меняем/удаляем. штука гораздо более шустрая, чем файловая система, потому как оптимизирована как раз под вставку/поиск/изменение небольших блоков информации. останется придумать, как идентифицировать пользователей, если тебе под каждого, зашедшего на "первую страницу" надо запоминать разные данные для вывода на "пятой странице".
3. http://ua2.php.net/manual/en/ref.session.php. данные между обращениями к серверу передаются через суперглобальный массив $_SESSION. ты пробовал этот вариант, но так как ты не привел код, я не могу сказать, почему он у тебя не сработал. могу только предположить, что ты не выполнил обязательное условие: перед использованием сессии не создал её при помощи http://php.net/session_start

Автор: smilemf 31.12.2007, 12:45
спасибо преогромное, и на самом деле о том что надо создать сначала переменную через session_start - забыл

ЗЫ. больше не буду задавать вопросы невыспавшимся в три часа ночи, а то туплю по страшному и трачу чужое время  smile 

ещё раз, огромное спасибо!   smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)