Форум

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

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

0

0

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
Сервер в интернете
Goshan
  • Группа: Посетители
  • Пункты: 729
  • Регистрация: 07.10.2006
  • Пол: Мужчина
  • Из: Россия/Москва
Goshan
3.91

3.91

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; 
}

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

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

3.92

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

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

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

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

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

3.91

06.06.2009 23:33:46

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

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

3.91

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; 
}

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

3.92

07.06.2009 15:34:19

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

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

3.91

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

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

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

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

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

3.92

08.06.2009 20:25:06

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

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

3.91

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

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

Идеи и предложения
Обратная связь