Forum Webscript.Ru

Программирование => PHP => Тема начата: JV от 20 Января 2004, 21:57:44

Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: JV от 20 Января 2004, 21:57:44
как можно данные, полученные из формы, сохранить в некотором php\'шном файле?
то есть, файл выглядит следующим образом:
$q1=10;
$q2="string";
$q3=1;

значения 10, string и 1 я получаю из формы, и мне надо присвоить их переменным $q1, $q2 и $q3.
причем, стоит учесть, что этот файл (назовем его file.php) уже существует, и эти переменные в нем могли равняться чему-то другому, а надо положить эти значения.
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: cosss от 20 Января 2004, 22:39:50
Все данные переданные из формы хранятся в массиве $_POST

Не совсем понятно... Тебе нужно чтоб содержание файла file.php изменилось, например с:

$q1=14;
$q2="stringgg";
$q3=5;

на:

$q1=10;
$q2="string";
$q3=1;

после обработки формы?
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: JV от 20 Января 2004, 23:38:57
да, совершенно верно.
это должен делать скрипт, обрабатывающий форму.
т.е. он должен считать данные из file.php, изменить их и сохранить.
Вот проблема и заключается в том как считать и как сохранить (потому что это параметры, и они потом используются в других файлах посредством include "file.php";)
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: Меняздесьдавнонет от 21 Января 2004, 00:16:35
JV
этого делать не надо.
Надеюсь, у тебя хватит ума не спорить, а объяснить - что ты хочешь решить таким извращенным способом, а тебе расскажут, как сделать правильно.

Код и данные должны быть разделены.
скрипты должен писать человек, а не скрипт.

Ты видел когда-нибудь скрипт гостевой книги? сообщения в гостевой - это данные. Кто-нибудь их пихает в сам скрипт?

Пиши свои переменные в файл, а file.php пусть их считывает.
Так будет правильно.
если твои переменные записать в data.txt, в виде
15
string
14
то в своем филе напиши такой код:
list($q1,$q2,q3)=array_map(\'trim\',file(\'data.txt\'));
и получишь свои переменные.
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: JV от 21 Января 2004, 07:35:05
ок.
попытаюсь объяснить чего надо.

в общем, есть некоторый файл file.php, в нем хранятся некоторые переменные
$q1=10;
$q2="string";
$q3=1;
?>
этот файл подключается в index.php и эти переменные там используются.

Теперь у пользователя я спрашиваю новые значения данных параметров. Он записывает мне их в форму, и мне надо скорректировать file.php
я изменяю переменные
$q1=100;
$q2="location";
$q3=0;
и мне надо сохранить их обратно в file.php

в общем, подумав вчера, я вот что сделала:

$str="";
$fp=fopen("file.php","w+");
fwrite($fp,$str);
fclose($fp);

в принципе это работает, но может можно проще как-то сделать?
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: dub от 21 Января 2004, 08:52:56
JV
Ты зря не слушаешь, что тебе говорят. RomikChef тебе уже рассказал, как правильно, и почему. Не стоит действовть принципиально неправильно только потому, что в данном случае объем данных кажется незначительным. Ключевые слова:
Цитировать
Код и данные должны быть разделены.
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: Mаster от 21 Января 2004, 11:12:58
а ты не задумывалась о последствиях того, что будет если тебе в форму введут:

1;eval($_GET[\'opa\']);

???

Пиши данные в обычный файл (лучше в базу)
считывай их скриптом и будет тебе счастье.
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: JV от 21 Января 2004, 11:44:28
Master

спасибо, ценное замечание.
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: Меняздесьдавнонет от 21 Января 2004, 12:46:15
странно.
такое ощущение, что я говорил с пустыней...
Название: как в PHP считывать и записывать в файл некоторые переменные??
Отправлено: JV от 21 Января 2004, 12:57:56
RomikChef

))

я сначала попыталась все-таки добить свой способ,
но, с учетом замечания Master\'а, признала поражение ))

спасибо за  вариант, предложенный тобой, это помогло
;)