Привет, просто ищу какое-то направление, у меня есть HTML-форма, которая имеет несколько полей и в основном то, что я хочу сделать, это сохранить данные, введенные из формы в файл конфигурации PHP, а также иметь возможность редактировать сохраненные данные, снова представив форму. Я бы предпочел сделать это без использования базы данных.
Итак, вот пример:
<form method="post" name="config_form"> <div id="field"> <label>Keywords</label> <br /> <input type="text" name="keyword"> </div> <br /> <select name="color"> <option value="green">Green</option> <option value="orange">Orange</option> <option value="blue">Blue</option> <option value="red">Red</option> </select> </form>
Таким образом, пользователь вводит «компьютер» в качестве ключевого слова и выбирает цвет «синий». Я хочу сохранить эти данные в файле config.php как переменные, позволяющие другим страницам веб-сайта получать доступ к этим данным. Должно ли все это быть в массиве?
<?php //config file $keyword = "computer"; $color = "blue"; ?>
Также, когда я снова вернусь к форме, могу ли я сделать так, чтобы поля были заполнены данными из файла config.php?
Любая помощь будет очень благодарна вам!
Вы можете включить свой файл конфигурации в основной файл сценария php:
// main.php <? php include("config.php"); ?>
и построить форму с чем-то вроде этого:
// main.php <?php ?> <form method="post" name="config_form"> <div id="field"> <label>Keywords</label> <br /> <input type="text" name="keyword"> </div> <br /> <select name="color"> <option value="green" <? if ($color == "green") echo "SELECTED"; ?> >Green</option> <option value="orange" <? if ($color == "orange") echo "SELECTED"; ?> >Orange</option> <option value="blue" <? if ($color == "blue") echo "SELECTED"; ?> >Blue</option> <option value="red" <? if ($color == "red") echo "SELECTED"; ?> >Red</option> </select> </form> <? ?>
наконец, вы можете сохранить данные формы в файле config.php
используя функции fopen()
и fwrite()
в форме submit:
$key = $_POST["key"]; $color = $_POST["color"]; if ($key != '' && $color != '') { $f = fopen('config.php', 'w') or die("can't open file"); fwrite($f, '<?php $keyword=' . $key . ';$color=' . $color . ';?>'); fclose($f); } else { // write default values or show an error message }
Вы можете сделать это несколькими способами. Лучший способ – использовать базу данных, такую как MYSQL. Вы просите о настойчивости, и для этого нужны DB. Попробуй это.
$key = $_POST["key"]; $color = $_POST["color"]; mysql_query("INSERT INTO smeTbl VALUES ('1',$key,$color)");
В файле конфигурации или в любом другом файле вы можете получить эти значения.
$query = mysql_query("SELECT * FROM smeTbl WHERE id='1'"); $fetch = mysql_fetch_array($query); $keyword = $fetch["key"]; $color = $fetch["color"];
Это всего лишь пример, и вы можете уточнить его на основе ваших потребностей.
Если вы хотите хранить такие вещи в файле, то, вероятно, самым простым способом является просто сохранить все данные в массиве в виде $keyword => $value
затем использовать функции serialize()
и unserialize()
чтобы преобразовать их в формат, который можно легко сохранить и прочитать из файла.
Имейте в виду, что если есть только один файл, то изменение, сделанное одним пользователем, затронет их всех, поэтому, если это неприемлемо, вам нужно будет найти способ определить пользователя и какой файл использовать.
Гораздо лучший способ сделать это – просто сохранить эти значения в базе данных. Создайте таблицу с options
с двумя полями – option
и value
– в которой будут храниться параметры конфигурации. Если вы хотите, чтобы у разных пользователей были свои собственные параметры, вы можете добавить другое поле – userid
(как внешний ключ к таблице users
) – для отслеживания того, к какому пользователю применяется пара опций.
Кроме того, если есть предопределенный набор параметров, которые пользователь может установить, тогда у вас могут быть поля в таблице для каждого параметра со значениями по умолчанию, и вы можете создать строку для каждого пользователя с определенными параметрами конфигурации, заданными в одной записи для этого пользователя.
когда вы отправляете форму и хотите сохранить данные предоставленной формы в одном php-файле, ni должен использовать функции действия файла fopen config.php и записать в него php-код. при отображении формы вы можете открыть файл config.php и использовать функцию «eval», чтобы получить data.forgive мой английский.
//when submit form $string = '<?php $keyword="computer";$color="blue";?>'; $fp = fopen('config.php', 'w'); fwrite($fp, $string); fclose($fp); //when display form include("config.php"); //so you can use $keyword and $color
в//when submit form $string = '<?php $keyword="computer";$color="blue";?>'; $fp = fopen('config.php', 'w'); fwrite($fp, $string); fclose($fp); //when display form include("config.php"); //so you can use $keyword and $color