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

Форум

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

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

0

0
1
06.06.2009 14:12:3206.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: PHP 4
Сервер: Сервер в интернете
3.91

3.91
2
06.06.2009 16:06:4706.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; 
}

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

3.92

3.92
3
06.06.2009 21:40:2506.06.2009 23:19:00

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

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

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

3.91

3.91
4
06.06.2009 23:33:46

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

3.91

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

3.92

3.92
6
07.06.2009 15:34:19

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

3.91

3.91
7
07.06.2009 17:56:3907.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

3.92

3.92
8
08.06.2009 20:25:06

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

3.91

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

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

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

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