Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Варианты передачи переменных между скриптами?
 
 автор: ДацкыйКот   (05.03.2008 в 16:25)   письмо автору
 
 

Посоветуйте как поступаете вы...

У меня от одного скрипта к другому передается несколько переменных.
Когда их было мало, закидывал их в URL-строку по типу file.php?var=value&...

Когда их стало много (около 15 сейчас), возник вопрос какой вариант лучше. Пока их передаю через POST (приходится формировать искусственные формы), которые активируются при нажатии на гиперссылку. Т.е. java-гиперссылки.

Последнее время перестал устраивать такой вариант. Рассматриваю варианты:
1. Записи в файл.
+ экономится оперативка
- скорость доступа скорее всего упадет.
2. Запись в БД
+ упрощается обновление переменных - записываются только измененные
- сложное обращение и запись
3. Передача переменных через сессию
? опасаюсь, что переменные, заданные в сессиях, будут храниться в оперативке сервера.

Поскольку портал будет обслуживать несколько сотен и возможно даже тысяч посетителей одновременно, остро стоит вопрос производительности и экономии ресурсов... Так что придется потестить видимо разные варианты.

Что посоветуете по этому?

   
 
 автор: olejek   (05.03.2008 в 16:39)   письмо автору
 
   для: ДацкыйКот   (05.03.2008 в 16:25)
 

Первый и второй вариант, по-моему, изврат!

   
 
 автор: ДацкыйКот   (05.03.2008 в 16:43)   письмо автору
 
   для: olejek   (05.03.2008 в 16:39)
 

"И PHP запишет в файл, связанный с этой сессией, переменную test." http://phpfaq.ru/sessions

так все-таки сессионные переменные хранятся в оперативке или файлах? не хотелось бы грузить десятки тысяч переменных в озу

   
 
 автор: Valick   (05.03.2008 в 16:47)   письмо автору
 
   для: ДацкыйКот   (05.03.2008 в 16:43)
 

десятки тысяч переменных в озу

В первом посте речь шла о 15)) такими темпами.....

   
 
 автор: Valick   (05.03.2008 в 16:45)   письмо автору
 
   для: ДацкыйКот   (05.03.2008 в 16:25)
 

Я так понял, одним скиптом их надо записать, другим их прочитать... почему вы думаете, что скорость при использовании файлов упадёт? Незабывайте что база данных в конечном итоге тоже всю информацию хранит в файлах. Как промежуточный вариант есть плоские файлы.
А вот на счёт сессии даже незнаю... чего вы опасаетесь-то? Использовать сессии по их прямому назначению?

   
 
 автор: olejek   (05.03.2008 в 16:49)   письмо автору
 
   для: Valick   (05.03.2008 в 16:45)
 

>"И PHP запишет в файл, связанный с этой сессией, переменную test." http://phpfaq.ru/sessions
Вы же сами ответили на свой вопрос. Зачем изобретать велосипед?!

   
 
 автор: ДацкыйКот   (05.03.2008 в 16:59)   письмо автору
 
   для: olejek   (05.03.2008 в 16:49)
 

удалено//

   
 
 автор: ДацкыйКот   (05.03.2008 в 17:02)   письмо автору
 
   для: olejek   (05.03.2008 в 16:49)
 

хм.. а вы сами всем статьям по PHP доверяете?

нашел, что способ хранения сессий задается в php.ini файле: по умолчанию директива
session.save_handler = "files"

то есть нужно обязательно смотреть что там в настройках у хостера..

по всей видимости есть и другие варианты хранения переменных, но инфа по этой директиве скудная и пока не нашел...

а что касается количества переменных - это пользовательские динамические настройки, так что при 1000 юзеров 15 настроек превращаются в 15 000 переменных... не большое удовольствие загонять все это в ОЗУ...

   
 
 автор: Valick   (05.03.2008 в 17:14)   письмо автору
 
   для: ДацкыйКот   (05.03.2008 в 17:02)
 

Ну пользовательские динамические (хотелось бы знать насколько динамические?) настройки можно как вариант и в куках хранить.

стало интересно сколько весят 15 000 переменных?

   
 
 автор: ДацкыйКот   (05.03.2008 в 17:22)   письмо автору
 
   для: Valick   (05.03.2008 в 17:14)
 

от 0,1 до 5 кбайт на каждого юзера... так что если в оперативку загоню, хостер наверняка предложит на другой тариф перейти... вряд ли смирится с тем что я в пиковые часы забираю десятки мегабайт оперативки...

   
 
 автор: Valick   (05.03.2008 в 17:30)   письмо автору
 
   для: ДацкыйКот   (05.03.2008 в 17:22)
 

Всётаки думаю ваши опасения напрасны. По умолчанию-то сессии хранятся в файлах.
Как вариант можете организовать свой обработчик сессий и хранить всё это дело в базе данных.
как вариант действительно хранить пользовательские настройки в файле, и инклюдить к скрипту каждому пользователю свой, а в сесиях передавать ID пользователя, которому соответствует такойже файл... вообщет по идее оно у вас и должно передаваться.

Ещё вариант, генерить временный файл (на время сессии) в качестве имени использовать идентификатор сессии, данные в него брать из куков, и всё так же инклюдить к скрипту.

   
 
 автор: Thrasher   (06.03.2008 в 09:46)   письмо автору
 
   для: ДацкыйКот   (05.03.2008 в 17:02)
 

Если эти переменные - динамические настройки пользователя, то лучше их хранить в куках самого пользователя, имхо.

   
 
 автор: mihdan   (05.03.2008 в 17:37)   письмо автору
 
   для: ДацкыйКот   (05.03.2008 в 16:25)
 

Сессии, куки, GET, POST

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования