Чтение RSS каналов

Форум

Открыть Ответить

Сохранение в файл

0

0
1
06.06.2009 14:12:3206.06.2009 15:31:24
Привет всем.
Такой вопрос.
У меня есть форма, в ней текстовое поле с данными. Как мне записать это в определенный файл под определеннным именем после нажатия "Сохранить"?

Прилагаю код:


<?php
if (!defined(&quot;ADMIN_FILE&quot;) || !is_admin_god($aid)) die(&quot;Illegal File Access&quot;);


function pricelist_edit() {
global $admin_file;

    include(&quot;header.php&quot;);
    GraphicAdmin();
$maincontent = file_get_contents(&quot;blocks/block-Pricelist.php&quot;);

OpenTable();
echo &quot;<h1>Редактирование Pricelist</h1>&quot;;
CloseTable();


OpenTable();
echo &quot;<form action=\&quot;&quot;.$admin_file.&quot;.php?op=pricelist_edit\&quot; method=\&quot;POST\&quot;>&quot;
.&quot;<center><textarea rows=\&quot;14\&quot; name=\&quot;maincontent\&quot; cols=\&quot;120\&quot;>&quot;.$maincontent.&quot;</textarea></center>&quot;
.&quot;<input type=\&quot;hidden\&quot; name=\&quot;op\&quot; value=\&quot;pricelist_edit_save\&quot;><p align=center><input type=\&quot;submit\&quot; value=\&quot;Сохранить\&quot;>&quot;
.&quot;</form>&quot;;

CloseTable();
    include(&quot;footer.php&quot;);
}


function pricelist_edit_save() {

сюда нужен код для сохранения...

}




switch($op) {

    case &quot;pricelist_edit&quot;:
    pricelist_edit();
    break;

    case &quot;pricelist_edit_save&quot;:
    pricelist_edit_save();
    break;
}
?>



Версия системы: SLAED CMS 2.6 Lite
Версия PHP: PHP 4
Сервер: Сервер в интернете
3.93

3.93
2
06.06.2009 16:06:4706.06.2009 16:08:21
<?php 
if (!defined(&quot;ADMIN_FILE&quot;) || !is_admin_god($aid)) die(&quot;Illegal File Access&quot;); 


function pricelist_edit() { 
global $admin_file; 

include(&quot;header.php&quot;); 
GraphicAdmin(); 
$maincontent = file_get_contents(&quot;blocks/block-Pricelist.php&quot;); 

OpenTable(); 
echo &quot;<h1>Редактирование Pricelist</h1>&quot;; 
CloseTable(); 


OpenTable(); 
echo &quot;<form action=\&quot;&quot;.$admin_file.&quot;.php?op=pricelist_edit\&quot; method=\&quot;POST\&quot;>&quot; 
.&quot;<center><textarea rows=\&quot;14\&quot; name=\&quot;maincontent\&quot; cols=\&quot;120\&quot;>&quot;.$maincontent.&quot;</textarea></center>&quot; 
.&quot;<input type=\&quot;hidden\&quot; name=\&quot;op\&quot; value=\&quot;pricelist_edit_save\&quot;><p align=center><input type=\&quot;submit\&quot; value=\&quot;Сохранить\&quot;>&quot; 
.&quot;</form>&quot;; 

CloseTable(); 
include(&quot;footer.php&quot;); 
} 


function pricelist_edit_save() { 
IF ($op == &quot;pricelist_edit_save&quot;) { // проверяем сработала ли форма
touch(&quot;путь до папки с файлами/file.txt&quot;); // создаем в назначенной папке файл
$file=fopen(&quot;file.txt&quot;, &quot;w&quot;) // открываем этот файл
fwrite ($file, &quot;$_POST['maincontent']&quot;); // записываем в него
fclose($file); } // закрываем файл

} 




switch($op) { 

case &quot;pricelist_edit&quot;: 
pricelist_edit(); 
break; 

case &quot;pricelist_edit_save&quot;: 
pricelist_edit_save(); 
break; 
}

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

3.96
3
06.06.2009 21:40:2506.06.2009 23:19:00
большое спасибо за ответ!

Еще вопрос: У меня в данном примере экранируются кавычки (т.е. в файл записывается \' вместо ' и \&quot; вместо &quot;).

Как сделать, чтобы кавычки не экранировались вообще?
3.93

3.93
4
06.06.2009 23:33:46
хм, а если отрубить Magic quotes gpc, какие проблемы я могу ожидать?
3.93

3.93
5
07.06.2009 13:59:11
Goshan, не нужно, это небезопасно. Это в любом примере так будет, просто нужно делать автозамену.
if (!defined(&quot;ADMIN_FILE&quot;) || !is_admin_god($aid)) die(&quot;Illegal File Access&quot;); 

function pricelist_edit() { 
global $admin_file; 

include(&quot;header.php&quot;); 
GraphicAdmin(); 
$maincontent = file_get_contents(&quot;blocks/block-Pricelist.php&quot;); 

OpenTable(); 
echo &quot;<h1>Редактирование Pricelist</h1>&quot;; 
CloseTable(); 

OpenTable(); 
echo &quot;<form action=\&quot;&quot;.$admin_file.&quot;.php?op=pricelist_edit\&quot; method=\&quot;POST\&quot;>&quot; 
.&quot;<center><textarea rows=\&quot;14\&quot; name=\&quot;maincontent\&quot; cols=\&quot;120\&quot;>&quot;.$maincontent.&quot;</textarea></center>&quot; 
.&quot;<input type=\&quot;hidden\&quot; name=\&quot;op\&quot; value=\&quot;pricelist_edit_save\&quot;><p align=center><input type=\&quot;submit\&quot; value=\&quot;Сохранить\&quot;>&quot; 
.&quot;</form>&quot;; 

CloseTable(); 
include(&quot;footer.php&quot;); 
} 

function pricelist_edit_save() { 
IF ($op == &quot;pricelist_edit_save&quot;) { // проверяем сработала ли форма
$maincontent = $_POST['maincontent'];
$maincontent = str_replace(&quot;\'&quot;,&quot;'&quot;,$maincontent); // делаем автозамену
$maincontent = str_replace('\&quot;','&quot;',$maincontent); // делаем автозамену
touch(&quot;путь до папки с файлами/file.txt&quot;); // создаем в назначенной папке файл 
$file=fopen(&quot;file.txt&quot;, &quot;w&quot;) // открываем этот файл 
fwrite ($file, &quot;$maincontent&quot;); // записываем в него 
fclose($file); } // закрываем файл 

} 

switch($op) { 

case &quot;pricelist_edit&quot;: 
pricelist_edit(); 
break; 

case &quot;pricelist_edit_save&quot;: 
pricelist_edit_save(); 
break; 
}
3.96

3.96
6
07.06.2009 15:34:19
GRAFLEKX, Экранирование не работает((((
Вчера еще полдня с ним сидел, и сейчас еще раз ваш пример попробовал. не работает. всё равно экранирует.
3.93

3.93
7
07.06.2009 17:56:3907.06.2009 17:58:52
Goshan, все прекрасно работает, я проверял у себя, может вы что-то не правильно делаете? Вот полностью рабочий код подогнанный под Ваши нужды:

<?php
if (!defined(&quot;ADMIN_FILE&quot;) || !is_admin_god($aid)) die(&quot;Illegal File Access&quot;);

function pricelist_edit() {
global $admin_file;
include(&quot;header.php&quot;);
GraphicAdmin();
$maincontent = file_get_contents(&quot;blocks/block-Pricelist.php&quot;);
OpenTable();
echo &quot;<h1>Редактирование Pricelist</h1>&quot;;
CloseTable();
OpenTable();
echo &quot;<form action=\&quot;&quot;.$admin_file.&quot;.php?op=pricelist_edit_save\&quot; method=\&quot;POST\&quot;>&quot;
.&quot;<center><textarea rows=\&quot;14\&quot; name=\&quot;maincontent\&quot; cols=\&quot;120\&quot;>&quot;.$maincontent.&quot;</textarea></center>&quot;
.&quot;<input type=\&quot;hidden\&quot; name=\&quot;price\&quot; value=\&quot;pricelist_save\&quot;>&quot;
.&quot;<p align=center><input type=\&quot;submit\&quot; value=\&quot;Сохранить\&quot;></form>&quot;;
CloseTable();
include(&quot;footer.php&quot;);
}

function pricelist_edit_save() {
global $admin_file, $price;
IF ($price == &quot;pricelist_save&quot;) {
$maincontent = $_POST['maincontent'];
$maincontent = str_replace(&quot;\'&quot;,&quot;'&quot;,$maincontent);
$maincontent = str_replace('\&quot;','&quot;',$maincontent);
touch(&quot;blocks/block-Pricelist.php&quot;);
$file=fopen(&quot;blocks/block-Pricelist.php&quot;, &quot;w&quot;);
fwrite ($file, &quot;$maincontent&quot;);
fclose($file);
Header(&quot;Location: &quot;.$admin_file.&quot;.php?op=pricelist_edit&quot;); }
}

switch($op) {
case &quot;pricelist_edit&quot;:
pricelist_edit();
break;
case &quot;pricelist_edit_save&quot;:
pricelist_edit_save();
break;
}
?>

Специально попробовал при Magic quotes gpc: On и Magic quotes gpc: Off
3.96

3.96
8
08.06.2009 20:25:06
Большое спасибо GRAFLEKX :)
3.93

3.93
Открыть Ответить
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь