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

时间:2011-08-18 04:02:25

标签: php html arrays forms

您只是寻找一些方向,我有一个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文件中的数据?

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

4 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

您可以通过多种方式执行此操作。最好的方法是使用MYSQL等数据库。你要求持久性,这就是数据库的用途。试试这个。

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

这只是一个示例,您可以根据需要对其进行优化

答案 2 :(得分:1)

当您提交表单并且想要将提交的表单数据存储在一个php文件中时,ni必须使用文件操作函数fopen 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

答案 3 :(得分:1)

您可以将配置文件包含在主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.phpfopen()函数将表单数据保存到fwrite()文件中:

$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 }