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

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

0.00

0.00

1
06.06.2009 14:12:32 06.06.2009 15:31:24

Привет всем.
Такой вопрос.
У меня есть форма, в ней текстовое поле с данными. Как мне записать это в определенный файл под определеннным именем после нажатия "Сохранить"?

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



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


function pricelist_edit() {
global $admin_file;

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

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


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

CloseTable();
    include("footer.php");
}


function pricelist_edit_save() {

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

}




switch($op) {

    case "pricelist_edit":
    pricelist_edit();
    break;

    case "pricelist_edit_save":
    pricelist_edit_save();
    break;
}
?>

SLAED CMS 2.6 Lite
PHP 4
Сервер в интернете
Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

06.06.2009 16:06:47 06.06.2009 16:08:21

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


function pricelist_edit() { 
global $admin_file; 

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

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


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

CloseTable(); 
include("footer.php"); 
} 


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

} 




switch($op) { 

case "pricelist_edit": 
pricelist_edit(); 
break; 

case "pricelist_edit_save": 
pricelist_edit_save(); 
break; 
}

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

Группа
Супермодераторы
Пункты
1595
Регистрация
18.09.2008
Пол
Мужчина
Из
Россия
Предупреждения
Нет
GRAFLEKX
GRAFLEKX
3.92

3.92

06.06.2009 21:40:25 06.06.2009 23:19:00

большое спасибо за ответ!

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

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

Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

06.06.2009 23:33:46

хм, а если отрубить Magic quotes gpc, какие проблемы я могу ожидать?

Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

07.06.2009 13:59:11

Goshan, не нужно, это небезопасно. Это в любом примере так будет, просто нужно делать автозамену.

if (!defined("ADMIN_FILE") || !is_admin_god($aid)) die("Illegal File Access"); 

function pricelist_edit() { 
global $admin_file; 

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

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

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

CloseTable(); 
include("footer.php"); 
} 

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

} 

switch($op) { 

case "pricelist_edit": 
pricelist_edit(); 
break; 

case "pricelist_edit_save": 
pricelist_edit_save(); 
break; 
}

Группа
Супермодераторы
Пункты
1595
Регистрация
18.09.2008
Пол
Мужчина
Из
Россия
Предупреждения
Нет
GRAFLEKX
GRAFLEKX
3.92

3.92

07.06.2009 15:34:19

GRAFLEKX, Экранирование не работает((((
Вчера еще полдня с ним сидел, и сейчас еще раз ваш пример попробовал. не работает. всё равно экранирует.

Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

07.06.2009 17:56:39 07.06.2009 17:58:52

Goshan, все прекрасно работает, я проверял у себя, может вы что-то не правильно делаете? Вот полностью рабочий код подогнанный под Ваши нужды:

<&#063;php<br /> if (!defined("ADMIN_FILE") || !is_admin_god($aid)) die("Illegal File Access"); <br /> <br /> function pricelist_edit() { <br /> global $admin_file; <br /> include("header.php"); <br /> GraphicAdmin(); <br /> $maincontent = file_get_contents("blocks/block-Pricelist.php"); <br /> OpenTable(); <br /> echo "<h1>Редактирование Pricelist</h1>"; <br /> CloseTable(); <br /> OpenTable(); <br /> echo "<form action=\"".$admin_file.".php&#063;op=pricelist_edit_save\" method=\"POST\">" <br /> ."<center><textarea rows=\"14\" name=\"maincontent\" cols=\"120\">".$maincontent."</textarea></center>" <br /> ."<input type=\"hidden\" name=\"price\" value=\"pricelist_save\">"<br /> ."<p align=center><input type=\"submit\" value=\"Сохранить\"></form>"; <br /> CloseTable(); <br /> include("footer.php"); <br /> } <br /> <br /> function pricelist_edit_save() {<br /> global $admin_file, $price;<br /> IF ($price == "pricelist_save") {<br /> $maincontent = $_POST['maincontent'];<br /> $maincontent = str_replace("\'","'",$maincontent);<br /> $maincontent = str_replace('\"','"',$maincontent);<br /> touch("blocks/block-Pricelist.php");<br /> $file=fopen("blocks/block-Pricelist.php", "w");<br /> fwrite ($file, "$maincontent");<br /> fclose($file); <br /> Header("Location: ".$admin_file.".php&#063;op=pricelist_edit"); }<br /> } <br /> <br /> switch($op) {<br /> case "pricelist_edit":<br /> pricelist_edit(); <br /> break; <br /> case "pricelist_edit_save": <br /> pricelist_edit_save(); <br /> break; <br /> }<br /> &#063;>

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

Группа
Супермодераторы
Пункты
1595
Регистрация
18.09.2008
Пол
Мужчина
Из
Россия
Предупреждения
Нет
GRAFLEKX
GRAFLEKX
3.92

3.92

08.06.2009 20:25:06

Большое спасибо GRAFLEKX :)

Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код