Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Автосохранение переменных
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
У меня есть переменная $var в которой находиться информация. Можно как либо сделать чтобы после каждого изменения этой переменной она автоматически сохранялась в файл (где-то слышал что действие к событию можно прицепить) или же это нереально?
Заранее большое спасибо!
morosit
Отправлено: 18 Октября, 2011 - 06:38:43
Посетитель
Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010 Откуда: Казахстан
Помог: 4 раз(а)
morph-x пишет:
действие к событию можно прицепить
вам PHP или JS
логика (на ПХП) примерно такая:
0. записываем переменную в файл, или базу.
1. в нужном месте проверяем равно ли значение переменной значению из файла.
2. если равно продолжаем работу, else записываем последнее значение и продолжаем работу.
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
morosit пишет:
вам PHP или JS
Мне PHP. Как сравнивать значения, читать из файла и т.д. я уже знаю. Мне как раз нужно что бы не вызывать функцию перезаписи переменной после каждого ее изменения. Мне нужно чтобы к событию изменения переменной ($var = 'new_value';) прицепить действие которое уже будет записывать ее в файл. Но я тут подумал, можно же сохранять читать ее из файл в начале скрипта и сохранять в файл в конце. При следующем запуске скрипта, вначале, она будет иметь то значение, которое имела в конце предыдущего запуска скрипта. Но вопрос все одно остается открытым
Данил_123
Отправлено: 18 Октября, 2011 - 13:52:17
Участник
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011 Откуда: rostov
Помог: 9 раз(а)
morph-x пишет:
morosit пишет:
вам PHP или JS
Мне PHP. Как сравнивать значения, читать из файла и т.д. я уже знаю. Мне как раз нужно что бы не вызывать функцию перезаписи переменной после каждого ее изменения.[color=red][/color] Мне нужно чтобы к событию изменения переменной ($var = 'new_value';) прицепить действие которое уже будет записывать ее в файл. Но я тут подумал, можно же сохранять читать ее из файл в начале скрипта и сохранять в файл в конце. При следующем запуске скрипта, вначале, она будет иметь то значение, которое имела в конце предыдущего запуска скрипта. Но вопрос все одно остается открытым
Сообщением выше сказано, а если нужно с выводом, то вот:
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Данил_123 пишет:
Сообщением выше сказано, а если нужно с выводом, то вот...
Я так понимаю этот код сначала записывает значение $var в БД, а затем выводит его (сначала обычно потом из БД). Но к чему все это? Вы наверное не так меня поняли. Скорее всего то что я задумал невозможно сделать, но мне вполне хватит читать переменную из файла (или БД) в начале скрипта, а в конце скрипта записывать ее обратно в файл (или БД).
illy
Отправлено: 18 Октября, 2011 - 14:23:45
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
если что - можно и через аякс сделать
----- Всё гениальное - просто
И ещё проще, если ты - индиго
Данил_123
Отправлено: 18 Октября, 2011 - 14:43:07
Участник
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011 Откуда: rostov
Помог: 9 раз(а)
morph-x, возможно и не понял, но как понял так и сделал.. Что при каждом изменение(+выполнения скрипта) переменная будет проверяться если такую водили, то скрипт промолчит и просто выведет переменную $var если переменная $var изменила значение, то это значение записывается в базу и выводится на экран.. Я так понял
morph-x пишет:
но мне вполне хватит читать переменную из файла (или БД) в начале скрипта
Рад, то что писал не впустую) Только вывод из базы 15-17 строки (т.е конец)
----- http://mysitecost.ru
morosit
Отправлено: 18 Октября, 2011 - 15:00:01
Посетитель
Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010 Откуда: Казахстан
Помог: 4 раз(а)
если вопрос остается открытым, может расскажете что сделать хотите (вдруг кто предложит вариант получше)
EuGen
Отправлено: 18 Октября, 2011 - 15:09:20
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Насколько я понял, нужно отслеживание изменения переменной прямо в скрипте.
В этом случае обычное присваивание слуедует заменить некоторой пользовательской функцией, например:
Покинул форум
Сообщений всего: 111
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
morosit пишет:
если вопрос остается открытым, может расскажете что сделать хотите (вдруг кто предложит вариант получше)
Нужно создать что-то типа маленькой CMS. Хранить данные я решил в переменной $_DB. Просто у меня система работает (точнее работала, теперь я ее немного изменил) так, что скрипт может прерваться во многих местах, и не дойдет до конца. А писать функцию сохранения данных в файл после каждого действия как-то не правильно.
EuGen пишет:
Насколько я понял, нужно отслеживание изменения переменной прямо в скрипте. В этом случае обычное присваивание слуедует заменить некоторой пользовательской функцией, например...
Я как-то не подумал (торможу немного). Большое спасибо!
Данил_123 пишет:
Объясните подробней, что и при чем должно выполняться? Если мой вариант не подошел напишите это.
Мне нужно то, что постом выше написал EuGen.
Stierus
Отправлено: 20 Октября, 2011 - 09:43:32
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Я не уверен, что правильно вас понял, но попробую высказаться
Как бы делал я:
Написал бы класс, который и будет реализовывать доступ к переменным и при их изменении записывать в файл:
код писался на коленк, тут надо добавить проверку всяких исключительных ситуаций (объекты так сохранять далеко не все можно + что если запись в файл запрещена, но ход моих мыслей был бы таким)
EuGen
Отправлено: 20 Октября, 2011 - 10:09:15
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Stierus, оно-то конечно да.. А еще обработку исключений, а еще отдельный обработчик того, как работать с логом (а вдруг мы захотим в БД писать вместо файла.. или почту слать?)
и еще много-много всяких полезных вещей. Только автору, думаю, понять это сложно будет.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Stierus
Отправлено: 20 Октября, 2011 - 10:15:31
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Именно поэтому я не стал грузить рассказами о том, что ему надо делать, а выложил готовое решение . Я очень надеюсь, что автору топика будет интересно понять, как он работает ... что автор топика пойдет на php.net и посмотрит про все эти замечательные функции перегрузки свойств (Property overloading .. эт я тип намекаю, что гуглить). Ну а если нет - пусть тупо скопипастит код и забудет как страшный сон. (Добавление)
особенно, учитывая
Цитата:
Нужно создать что-то типа маленькой CMS
(Добавление)
ps
Кстати, синглтоном его делать не стал по той же причине - был бы перебор (а так, по хорошему, нужно сделать синглтоном этот класс)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.