[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Редактирование файла
White_Lad
Добрый день! Помогите пожалуйста начинающему (нубу) с написанием скрипта

требуется скрипт который будет редактировать данные конфиг файла, так называемый админ файл нужен!

данные в файле который нужно редактировать в таком виде храняться

$datapath = "/var/www/u0/.../.../.../";




Спустя 4 минуты, 15 секунд (19.10.2010 - 13:54) arvitaly написал(а):
Чем помочь то?

Спустя 1 минута, 48 секунд (19.10.2010 - 13:56) mihai написал(а):
Видимо материально.

Спустя 30 секунд (19.10.2010 - 13:56) White_Lad написал(а):
arvitaly
как это сделать ? :-[

Спустя 1 минута, 4 секунды (19.10.2010 - 13:57) White_Lad написал(а):
mihai
не smile.gif материально не надо! мне надо только понять как это скрипт написать чтоб он редактировал конфиг файл

Спустя 9 минут, 31 секунда (19.10.2010 - 14:07) arvitaly написал(а):
file_put_contents('config.php',$data);


я хз чем еще помочь

Спустя 11 секунд (19.10.2010 - 14:07) Michael написал(а):
Посмотри функцию parse_ini_file - чтение конфигурации она обеспечит.
А записывать под этот формат проще простого - циклом по массиву.

Спустя 4 минуты, 12 секунд (19.10.2010 - 14:11) White_Lad написал(а):
Michael
а можете подробнее описать ?
лучше примером smile.gif

Спустя 2 минуты, 21 секунда (19.10.2010 - 14:13) Michael написал(а):
Цитата (White_Lad @ 19.10.2010 - 13:11)
Michael
а можете подробнее описать ?
лучше примером smile.gif

Спустя 6 минут, 19 секунд (19.10.2010 - 14:20) White_Lad написал(а):
Michael
эта функция только показывает... а мне надо редактировать
или я чето не понял ?

Спустя 9 минут, 46 секунд (19.10.2010 - 14:29) Michael написал(а):
Ну смотри, у тебя данные будут храниться например так:
[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = /usr/local/bin
URL = "http://www.example.com/~username"

ты их подгрузил parse_ini_file в массив и пробегом по массиву вывел на редактирование.
После редактирования эти данные оказались в массиве(обновленные) и тебе чтобы их записать в файл надо просто пробежаться по массиву и построчно записать в файл значения.

Это мне кажется легче чем ты собрался парсить файл.

Спустя 20 секунд (19.10.2010 - 14:30) White_Lad написал(а):
я может не правильно выразился ... мне нужно сделать подобное , смысл тот же...

пример

т.е. открывается страница... там поля ... пишешь что то в поле и сохраняешь!

Спустя 1 минута, 36 секунд (19.10.2010 - 14:31) White_Lad написал(а):
Michael
а как вывести на редактирование ?

Спустя 2 минуты, 48 секунд (19.10.2010 - 14:34) Michael написал(а):
Ты что просто в textarea хочешь загрузить конфиг на редактирование и потом изменения сохранить?

Спустя 4 минуты, 39 секунд (19.10.2010 - 14:39) White_Lad написал(а):
ну если я правильно понял... то да smile.gif

это будет как на том скрине что я в предыдущем посте показал ?

Спустя 10 минут, 56 секунд (19.10.2010 - 14:50) Michael написал(а):
тот скрин не грузится

Спустя 2 минуты, 32 секунды (19.10.2010 - 14:52) White_Lad написал(а):

Спустя 15 минут, 39 секунд (19.10.2010 - 15:08) Michael написал(а):
Значит все таки не textarea, а по отдельности. И это верно.
1) Загружай данные как я первый раз говорил - в массив
2) У тебя должен быть шаблон формы
3) Выводи в этот шаблон переменные из массива
4) пиши обработчик сабмита формы - измененные данные в массив помещай
5) записывай в файл данные из массива.

Спустя 4 минуты, 57 секунд (19.10.2010 - 15:13) White_Lad написал(а):
user posted image ни хрена непонял
я повторюсь... я 0 (ноль) в php sad.gif

Михаил можешь мне все по полочкам разложить как первокласснику ?

Спустя 7 минут, 4 секунды (19.10.2010 - 15:20) Michael написал(а):
Цитата (White_Lad @ 19.10.2010 - 14:13)
user posted image  ни хрена непонял
я повторюсь... я 0 (ноль) в php sad.gif

ну так учись. Смысл мне тебе объяснять если ты не понимаешь даже элементарные вещи. Просто время свое убью, и тебе пользы не будет.
Начни отсюда

Спустя 16 минут, 2 секунды (19.10.2010 - 15:36) White_Lad написал(а):
Цитата (Michael @ 19.10.2010 - 12:08)
Значит все таки не textarea, а по отдельности. И это верно.
1) Загружай данные как я первый раз говорил - в массив
2) У тебя должен быть шаблон формы
3) Выводи в этот шаблон переменные из массива
4) пиши обработчик сабмита формы - измененные данные в массив помещай
5) записывай в файл данные из массива.

т.е.

1) подгружаем файл conf.ini (c помощью parse_ini_file ) в массив.. получаем

Array ( 
[domen] => site.ru
[path] => /var/www/
[nazvanie] => blabla )
Array (
[first_section] => Array (
[domen] => site.ru
[path] => /var/www/
[nazvanie] => blabla ) )


2) есть форма

 <title>форма</title>
</head>
<body>
<form
action="">
<fieldset>
<legend>

заполняем
</legend>

<input
type="text" size="20" /> <small>путь</small><br />
<input
type="text" size="20" /> <small>домен</small><br />
<input
type="text" size="20" /> <small>название</small><br />
<input
type="submit" value="Отправить" />
</fieldset>
</form>


3) как это сделать ?
4) как это сделать ?
5) как это сделать ?

Спустя 19 часов, 34 минуты, 29 секунд (20.10.2010 - 11:10) White_Lad написал(а):
может ктонить другой поможет ? Михаил перестал отвечать sad.gif видимо он устал

Спустя 16 минут, 22 секунды (20.10.2010 - 11:27) Basili4 написал(а):
White_Lad
Судя по всему единственный способ тебе помочь это сделать за тебя. А это в раздел проекты. с указанием цены. Michael указал направление. Далее или сам или в с указанием цены.

Спустя 5 минут, 49 секунд (20.10.2010 - 11:33) White_Lad написал(а):
Basili4
нет... сделать за меня это не единственный выход!

мне хотя бы какие то ссылочки в помощь может дадите на 3 4 5 пункты ?
а то я искал искал и ни чего не нашел !

Спустя 10 минут, 26 секунд (20.10.2010 - 11:43) Basili4 написал(а):
White_Lad
Как это сделать человек у которого нет базы объяснить нельзя (или очень трудно) это проще сделать самому.

Хочешь научится нарабатывай базу. Можешь начать с ссылки которую тебе дали выше.

Спустя 3 минуты, 33 секунды (20.10.2010 - 11:47) White_Lad написал(а):
т.е. человеку без базы нельзя дать ссылки ?!

Спустя 1 час, 25 минут, 10 секунд (20.10.2010 - 13:12) Basili4 написал(а):
White_Lad
Куда. ??? в свою голову.

Спустя 1 час, 7 минут, 27 секунд (20.10.2010 - 14:19) Xpund написал(а):
Ещё не забыть chmod 777 установить!

Спустя 15 минут, 35 секунд (20.10.2010 - 14:35) mihai написал(а):
Он хочет посмотреть как это выглядит на пример.
А потом просто списать.
wink.gif
Для это хотя бы в Яндексе можно набрать
"РНР уроки в примерах"

Спустя 1 день, 21 час, 18 минут, 15 секунд (22.10.2010 - 11:53) White_Lad написал(а):
ну конечно как же над неопытным не постебаться smile.gif

у меня вот что получилось:

index.php

<html>
<head>
<title>
config</title>
</head>

<body>


<?
include 'config.php'; ?>

<center><B>
Конфигурирование</b></font>
<form
action=obr.php method=post name=REPLIER>
<table><tr>
<th>
Параметр</th>
<th>
Значение</th></tr>
<tr><td
class=row1>Название</td><td class=row1><input type=text value="$fname" name="fname" class=post maxlength=50 size=50></tr></td>
<tr><td
class=row1>Путь</td><td class=row1><input type=text value="$path" name="path" class=post maxlength=50 size=50></tr></td>



</select></tr></td><tr><td
class=row1 colspan=2><BR><center><input type=submit class=mainoption value="Сохранить конфигурацию"></form></td></tr></table>


<br>
<center></body>
</html>


obr.php

<?



include "config.php";



$configdata="<? \r\n
"."$"."fname=\"".$_POST['fname']."\";
"
."$"."path=\"".$_POST['path']."\"; \r\n?>";

$file=file("config.php");
$fp=fopen("config.php","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$configdata);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: index.php"); exit;



?>


и сам конфиг (config.php)

<? 

$fname="";
$path="";

?>




но когда заходишь на index.php в полях стоят переменные а не их значения как это исправить ?

Спустя 8 минут, 53 секунды (22.10.2010 - 12:02) T1grOK написал(а):
А система угадывать должна где у тебя html, а где php?
Php-код нужно отделять дескрипторами. То есть:

value=<?=$fname?>

ну и так далее.

Спустя 1 минута, 39 секунд (22.10.2010 - 12:04) White_Lad написал(а):
че так ругаться то smile.gif)) понял спасибо smile.gif

Спустя 14 минут, 56 секунд (22.10.2010 - 12:19) White_Lad написал(а):
а еще вопрос .. данные выводятся до первого пробела т.е. если пишем "форум php" то в поле будет отображаться только "форум"

но в конфиг сохраняется полностью

Спустя 2 часа, 20 минут, 39 секунд (22.10.2010 - 14:39) Michael написал(а):
Вот накидал:

<?php
define("FI", './xxx.ini'); // путь к файлу настроек
$ini = NULL;

if (isset($_POST['change'])) { // Если поступил запрос на изменение данных, то
// изменяем

$ini = array();
$ini['one'] = $_POST['one'];
$ini['five'] = $_POST['five'];
$ini['animal'] = $_POST['animal'];
// сохраняем изменения в файл
$s = '';
foreach ($ini as $k=>$v) {
$s .= $k . ' = ' . $v . PHP_EOL;
}
file_put_contents(FI, $s);
}
if (!$ini) {
// подгружаем настройки из файла
$ini = parse_ini_file(FI);
}
//echo '<pre>' . print_r($ini, true) . '</pre>';
?>

<form
method="post" name="form1">
<input
type="text" name="one" value="<?php echo htmlspecialchars($ini['one']); ?>">
<input
type="text" name="five" value="<?php echo htmlspecialchars($ini['five']); ?>">
<input
type="text" name="animal" value="<?php echo htmlspecialchars($ini['animal']); ?>">
<input
type="submit" name="change" value="Изменить" >

</form>


Спустя 34 минуты, 38 секунд (22.10.2010 - 15:14) Michael написал(а):
Понял какой формат xxx.ini?
Просто три строки:
one = 1
five = 2
animal = bird

Спустя 1 минута, 7 секунд (22.10.2010 - 15:15) White_Lad написал(а):
дада ! спасибо!

Спустя 1 день, 1 час, 9 минут, 34 секунды (23.10.2010 - 16:24) White_Lad написал(а):
еще вопрос .. данные выводятся до первого пробела т.е. если пишем "форум php" то в поле будет отображаться только "форум"

но в конфиг сохраняется полностью

Спустя 20 часов, 59 минут, 17 секунд (24.10.2010 - 13:24) White_Lad написал(а):
ни кто не знает чтоли ? smile.gif

Спустя 1 минута, 31 секунда (24.10.2010 - 13:25) AlmazDelDiablo написал(а):
$peremennaja = "форум php";

или
$peremennaja = "форум" . "php";

Спустя 9 минут, 56 секунд (24.10.2010 - 13:35) White_Lad написал(а):
у меня так и написанно

$peremennaja = "форум php";


но выводит в форме

<input type="text" size="100px" name="peremennaja" value=<?=$peremennaja?> >


только слово "форум"

Спустя 31 минута, 20 секунд (24.10.2010 - 14:07) Romms написал(а):
когда пишешь в конфиг(или что таи у тебя) то заключай значения параметра в скобки ""

Спустя 16 минут, 8 секунд (24.10.2010 - 14:23) White_Lad написал(а):
оно в скобках

Спустя 3 минуты, 35 секунд (24.10.2010 - 14:26) Romms написал(а):
Код в студию!
(файл что пишет, и сам конфиг)

Спустя 6 минут (24.10.2010 - 14:32) White_Lad написал(а):
форма

  <tr>     <td>Заголовок</td>  </tr>
<tr> <td
height="24"><input type="text" size="100px" name="title" value="<?=$title ?>"></td> </tr>


обработчик

<? include "config.php";

$configdata="<? \r\n
"."$"."title=\"".$_POST['title']."\";
"
."$"."key=\"".$_POST['key']."\" \r\n?>";

$file=file("config.php");
$fp=fopen("config.php","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$configdata);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: admin.php");
exit;
?>


конфиг

$title="форум php"; 

Спустя 45 минут, 30 секунд (24.10.2010 - 15:18) Romms написал(а):
1. ты пишешь файл

$configdata="<? \r\n
"."$"."title=\"".$_POST['title']."\";
"
."$"."key=\"".$_POST['key']."\" \r\n?>";

а там почему то только
Цитата
$title="форум php";

Вопрос очевиден.

2. Покажи как ты читаешь с файла(код скрипта напиши)

Спустя 5 минут, 14 секунд (24.10.2010 - 15:23) White_Lad написал(а):
1) убрал некоторые строчки из кода

2)
<? include 'config.php'; ?>


вот весь код файла с формами


<html>
<head>
<title>
config</title>
</head>

<body>
<?
include 'config.php'; ?><center>

<p>
 </p>
<table
width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div
align="center"><a href="./admin.php">Конфигурирование</a>     <a href="./access.php">Смена
пароля</a>     <a href="./logout.php">Выход</a></div></td>
</tr>
</table>
<p>
  </p>
<table
width="700" border="0" align="center" >
<form
action=obr.php method=post name=REPLIER>
<tr> <td>
Домен</td> </tr>
<tr> <td
height="24"><input type="text" size="100px" name="domen" value="<?=$domen?>"></td> </tr>
<tr> <td>
Заголовок</td> </tr>
<tr> <td
height="24"><input type="text" size="100px" name="title" value="<?=$title ?>"></td> </tr>
<tr> <td>
Путь до папки data</td> </tr>
<tr> <td><input
type="text" size="100px" name="datapath" value="<?=$datapath?>"></td> </tr>
<tr> <td>
Путь (web)</td> </tr>
<tr> <td><input
type="text" size="100px" name="webpath" value=<?=$webpath?> ></td> </tr>
<tr> <td>
Ключи</td> </tr>
<tr> <td><input
type="text" size="100px" name="key" value=<?=$key?> ><br><br></td> </tr>




<tr> <td><input
type="submit" name="change" value="Изменить" ><br>

</form>
</td>
</tr>
</table>



<br>
<center></body>
</html>


Спустя 6 минут, 42 секунды (24.10.2010 - 15:30) Romms написал(а):
дай полные код конфига
и чистый ХТМЛ код "файла с формами"

Спустя 8 минут, 31 секунда (24.10.2010 - 15:38) White_Lad написал(а):
файл с формами выше

вот конфиг

<? 

$domen="site.ru";
$webpath="http://site.ru";
$datapath="/var/www/http://";
$title="Оборудование для";
$key="12345 в $fp[$sub], "
?>

Спустя 4 минуты, 59 секунд (24.10.2010 - 15:43) Romms написал(а):
HTML!!!

Спустя 2 минуты, 13 секунд (24.10.2010 - 15:45) White_Lad написал(а):
какой html?? какие есть файлы все дал

Спустя 1 минута, 9 секунд (24.10.2010 - 15:47) Michael написал(а):
Сделай:
size=20
а то, size="100px" - неверно.

Спустя 57 секунд (24.10.2010 - 15:48) White_Lad написал(а):
обработчик вот еще

<? include "config.php";

$configdata="<? \r\n
"."$"."domen=\"".$_POST['domen']."\";
"
."$"."webpath=\"".$_POST['webpath']."\";
"
."$"."datapath=\"".$_POST['datapath']."\";
"
."$"."title=\"".$_POST['title']."\";
"
."$"."key=\"".$_POST['key']."\" \r\n?>";

$file=file("config.php");
$fp=fopen("config.php","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$configdata);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: admin.php");
exit;
?>

Спустя 2 минуты, 58 секунд (24.10.2010 - 15:50) White_Lad написал(а):
Michael
так это же просто размер .. он ни как не влияет на отображение

Спустя 2 минуты, 50 секунд (24.10.2010 - 15:53) Michael написал(а):
Цитата (White_Lad @ 24.10.2010 - 14:50)
Michael
так это же просто размер .. он ни как не влияет на отображение

все равно не порядок.
ну тут:
<p>  </p>

впиши:
<p><?php echo '|' . $title . '|'; ?>  </p>

- что между | | будет?

Спустя 2 минуты, 28 секунд (24.10.2010 - 15:56) Romms написал(а):
White_Lad, еще как влияет))

White_Lad, если верить всему тому что ты написал то всё должно работать... может перезагрузи сервера?)

Спустя 22 минуты, 11 секунд (24.10.2010 - 16:18) Michael написал(а):
Чето долго ты одну строчку вставляешь... Мне сейчас уходить.

Спустя 5 минут, 26 секунд (24.10.2010 - 16:23) White_Lad написал(а):
Цитата (Michael @ 24.10.2010 - 12:53)
<p><?php echo '|' . $title . '|'; ?>  </p>

- что между | | будет?

там

|Оборудование для пенопласта в кирове и области | 


т.е. вся строка из конфига

стал нормально отображаться Заголовок. все слова всмысле

а вот ключи все так же

Спустя 1 минута, 44 секунды (24.10.2010 - 16:25) White_Lad написал(а):
Цитата (Michael @ 24.10.2010 - 13:18)
Чето долго ты одну строчку вставляешь... Мне сейчас уходить.

пришлось уехать не на долго!

Спустя 59 секунд (24.10.2010 - 16:26) Michael написал(а):
Формат ключам смени. Вместо:
$key="12345 в $fp[$sub], " 

пиши:
$key="12345 в {$fp[$sub]}, " 


Спустя 26 минут, 59 секунд (24.10.2010 - 16:53) White_Lad написал(а):
разобрался )

было

value=<?=$key ?> 


а надо было

value="<?=$key ?> " 
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.