Как создать форму для обновления файла с помощью PHP? - PullRequest
0 голосов
/ 05 сентября 2011

Я написал PHP-скрипт, который позволяет мне изменять и обновлять файл на веб-странице, и это работает, но сейчас скрипт представляет все содержимое файла в текстовой области. Я хотел бы извлечь только строку из файла и предварительно заполнить ее в текстовом поле формы (вместо текстовой области).

Ниже приведены два файла, которые мне нужно обновить. Я хотел бы просто обновить IP-адреса. Таким образом, форма в идеале должна показать, что mail.helloworld.com в настоящий момент отображается на «208.164.222.2» и заполнить этот IP-адрес в текстовом поле формы. Та же идея для файла /etc/postfix/main.cf, как показано ниже.

/ и т.д. / хосты

IP-адрес Имя хоста Псевдоним 127.0.0.1 localhost deep.openna.com 208.164.222.2 mail.helloworld.com mail 208.164.222.3 web.helloworld.com web

/ и т.д. / постфикса / main.cf

relayhost = 192.168.1.10

===

Текущий рабочий скрипт с использованием textarea:

<form action="<?php echo $PHP_SELF;?>" method="post">
<textarea rows="13" cols="110" name="content">
<?
$fn = "/etc/postfix/main.cf";
print htmlspecialchars(implode("",file($fn)));

?> 
</textarea></br>
<input id= "relayhost_button" type="submit" value="Update"> 
</form> 



<?
$fn = "/etc/postfix/main.cf";
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
echo "<meta http-equiv=\"refresh\" content=\"0; url=done.php\" />\n";
?>

Вот текущая форма на основе текстовой области:

enter image description here

Новая форма на основе текстового поля Я хочу:

enter image description here Как всегда, спасибо людям!

1 Ответ

2 голосов
/ 05 сентября 2011

Разобрать файл, а затем предоставить пользователю нужную строку. Как только он отредактировал его, проанализируйте файл и замените информацию. (Вместо разбора вы можете просто отследить, какой это был номер строки.)

Кроме этого, вопрос становится немного глубже. У вас есть какие-то конкретные проблемы?

Также несколько несвязанных предложений:

  • Заменить имплозу (файл ()) на file_get_contents.
  • Использовать полные открывающие теги («<? Php» без пробела) </li>
  • Использовать fwrite вместо fputs (для этого нет никакого обоснования, я просто избегаю использовать псевдонимы)
  • Большая часть личных предпочтений, но я считаю, что лучше перенаправлять с заголовками, чем с метатегами.

Например:

header("Location: http://blah/done.php");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...