1

我正在创建我的第一个 CMS 风格的网站,还有很多路要走,但我想知道:我可以通过 php 脚本更新 php 配置文件吗?

例如:

<?php
$forum="1";
$about="1";
$register="0";
?>

<?php    
if ($about==("1"))
    echo '<a href="about.php">About Us</a>';
if ($forum==("1"))
    echo '<a href="forum.php">Forum</a>';
if ($register==("1"))
    echo '<a href="register.php">Register</a>;
?>

我想创建一个脚本,当我以管理员身份登录网站时,我可以更新第一组以更改不同页面的值,以便我可以选择显示的内容和不显示的内容。

4

3 回答 3

1

要开始使用 CMS,您需要学习如何与数据库交互。如果您希望能够创建管理部分和编辑内容,数据库是最佳选择。

这是一个网站链接,当我开始时对我非常有价值

PHP初学者

于 2012-07-22T02:00:16.187 回答
0

在大多数情况下,我同意@uzyn 和@Ibu - 最好了解有关使用数据库的更多信息,然后将其用于您的配置数据。话虽如此,为了完整起见,我提供以下内容。但是请注意,这种方法存在安全问题。

我创建了三个文件:配置文件,名为 config.cfg;一个用于显示配置的 PHP 文件,名为 show_config.php;以及另一个名为 write_config.php 的 PHP 文件,用于保存配置更改,然后调用 show_config.php 重新显示配置。所有这些都过于简单化并出现在下面。

[配置.cfg]

cfg_data: 42

[show_config.php]

<html>
<head>
<title>Configuration</title>
</head>
<body>
<?php
$cfg_name = "config.cfg";
$cfg_data = file_get_contents($cfg_name);
$lines = explode("\n", $cfg_data);
$cfg_vals = explode(":", $lines[0]);
$cfg_value = trim($cfg_vals[1]);
?>
<form action="write_config.php">
Configuration Value: <?php echo "<input type=\"text\" name=\"config_val\" value=\"$cfg_value \" >" ?> </input>
<br>
<input type="submit">
</form>
</body>
</html>

[write_config.php]

<?php
$cfg_name = "config.cfg";
$new_data = "cfg_data: " . $_REQUEST['config_val'];
if (file_exists($cfg_name)) {
  unlink($cfg_name);
}
try {
  file_put_contents($cfg_name, $new_data);
} catch (Exception $e) {
  echo "Exception caught!  " . $e -> getMessage() . "<br> \n";
}
header("Location:show_config.php");
$cfg_name = "config.cfg";
$new_data = "cfg_data: " . $_REQUEST['config_val'];
if (file_exists($cfg_name)) {
  unlink($cfg_name);
}
try {
  file_put_contents($cfg_name, $new_data);
} catch (Exception $e) {
  echo "Exception caught!  " . $e -> getMessage() . "<br> \n";
}
header("Location:show_config.php");
?>

请注意,为了使其正常工作,必须将 config.cfg 上的权限设置为 o:rwx(使用> chmod o+wx config.cfg),这是安全问题之一。此外,此代码不进行输入清理。如果你真的会使用这样的东西,你应该在保存任何东西之前检查并清理所有用户输入。

于 2012-07-22T05:45:50.680 回答
0

为此,您必须使用存储或数据库。将配置存储在可编辑的地方。

这是一个使用文件的示例:

<?php
$forum = file_get_contents('forum');
$about = file_get_contents('about');
$register = file_get_contents('register');

然后,您可以创建一个管理模块,将这些设置写入相应的文件,如下所示:

<?php 
// Admin, overwriting configurations

file_put_contents('forum', 1); // should the admin choses to enable Forum.
file_put_contents('about', 1); // should the admin choses to enable About Us.
file_put_contents('register', 0); // should the admin choses to disable Register.

//... etc for the rest of the modules 
于 2012-07-22T01:59:32.240 回答