Чтение 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.92

3.92
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.97

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

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

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

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

3.92
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.97

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

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

<?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_save\" method=\"POST\">"
."<center><textarea rows=\"14\" name=\"maincontent\" cols=\"120\">".$maincontent."</textarea></center>"
."<input type=\"hidden\" name=\"price\" value=\"pricelist_save\">"
."<p align=center><input type=\"submit\" value=\"Сохранить\"></form>";
CloseTable();
include("footer.php");
}

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

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

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

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

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

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

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

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