显示序列化数据

时间:2015-05-31 09:55:50

标签: php html forms serialization

我需要为我的应用程序创建一个配置文件,但我偶然发现了一个问题,我试图解决它,但无法找到问题,这里的代码可行,除了一件事,每当我提交表单,它将保存数据,但当它重新加载时,它只显示存储在config.txt中的序列化数据。

有谁知道为什么会这样,以及我如何解决它

感谢您的帮助 -oedze

编辑:更清楚地解释: 问题是存储在config.txt中的数据都将以表格形式输入,因此您不必经常添加它,您可以看到值是什么。当你按下提交按钮时,页面会将所有数据保存在$ config数组中,然后将它保存在config.txt中,完成后,它将重新加载页面,因此后期数据将被删除用户缓存。但是,每当页面重新加载时,它都显示如下:1:{s:9:" groupname&#34 ;; s:4:" test&#34 ;;}而不是HTML页面

<!DOCTYPE html>
<html>
<head>
    <?php
        function getConfig(){
            $file = fopen("config.txt", "r");
            $fileData = fread($file, filesize("config.txt"));
            fclose($file);
            $config = unserialize($fileData);

            return $config;
        }

        function saveConfig($config){
            $file = fopen("config.php", "w");
            fwrite($file, serialize($config));
            fclose($file);
        }
        if(isset($_GET["updateConfig"])){
            $config = array();
            foreach($_POST as $key => $value){
                $config[$key] = $value;
            }
            saveConfig($config);
            header("Location: config.php");
        }else{
            $config = getConfig();
        }



    ?>
</head>
<body>
    <h1>Configuratie</h1>
    <form method="post" action="config.php?updateConfig">
    <table>
        <tr class="optionsRow"><td class="optionsData">Groupname:</td><td class="optionsData"><input type="text" name="groupname" value="<?php $config["groupname"]?>"></td></tr>   

    </table>
    <input type="Submit" value="Opslaan">
    </form>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

这一行有误:$file = fopen("config.php", "w");,这是config.txt而不是config.php