从HTML表单编写和编辑PHP配置文件


Writing and editing a PHP config file from a HTML form?

嗨,只是寻找一些方向,我有一个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>

所以用户输入'computer'作为关键字并选择颜色'blue'。然后,我想将此数据保存到我的config.php文件中,作为允许我的其他网站页面访问此数据的变量。这些也应该在一个数组中吗?

<?php
//config file
$keyword = "computer";
$color = "blue";
?>

另外,当我回去访问表单再次我可以使它,所以字段预填充从config.php文件的数据?

任何帮助将非常感激,谢谢!

如果你致力于将这类东西存储在文件中,那么可能最简单的方法是将所有数据以$keyword => $value的形式存储在数组中,然后使用serialize()unserialize()函数将它们转换为可以轻松存储到文件中并从文件中读取的格式。

请记住,如果只有一个文件,那么一个用户所做的更改将影响所有文件,所以如果这是不可接受的,那么您需要想出一种方法来确定用户和使用哪个文件。

更好的方法是将这些值存储在数据库中。创建一个名为options的表,其中包含两个字段——optionvalue——用于存储配置选项。如果您希望不同的用户拥有自己的选项,那么您可以添加另一个字段—userid(作为users表的外键)—来跟踪选项对应用于哪个用户。

此外,如果用户可以设置一组预定义的选项,那么您可以在表中为每个选项设置具有默认值的字段,并且您可以为每个用户创建一行,并在单个记录中为该用户设置特定的配置选项。

您可以将您的配置文件包含在您的主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>
<?
?>

最后,您可以使用fopen()fwrite()函数将表单数据保存在config.php文件中:

$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"];

这只是一个例子,你可以根据你的需要来完善它

当您提交表单并希望将提交的表单数据存储在一个PHP文件中时,您必须使用文件操作函数打开config.php,并将PHP代码写入其中。当您显示表单时,您可以打开config.php,并使用函数"eval"来获取数据。请原谅我的英语。

//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