通过文件保存和更新信息

引言

以前在编写一个比赛的机试系统的时候,需要记录和更新考试的截止时间,以前的做法是在数据库中单独建立一个数据表用于保存和更新截止时间。回过头再去看,觉得没有必要单独建立一张表,只需要把时间保存到一个文件中,然后通过修改文件的内容修改考试时间即可。

以前的方案

这里写图片描述

maybe, a little bit stupid….

现在的方案

基本思路:

$time = addslashes($_POST['time']);
$file = md5("time");
$res = file_put_contents($file, $time);

用于保存时间的文件:
这里写图片描述
这种明明方式是出于安全考虑,方式被一些扫描器扫描到。

最后附上完整代码:
manage-time.html

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>时间管理页面</title>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <style type="text/css">
    *{
        line-height: 30px;
    }
    </style>
</head>
<body>
<div>
<p>当前时间:<font id="info"></font></p>
<p><input id="time" type="text"/></p>
<p><button id="update">更新时间</button></p>
</div>
<script type="text/javascript">
    $(function(){
        //获取时间
        $("#info").load("time.php");
        //更新时间
        $("#update").click(function(){
            var time = $("#time").val();
            if(time==''){
                alert("时间不能为空");
            }else{
                $.ajax({
                    url:'time.php',
                    type:'POST',
                    data:{'time':time},
                    dataType:"json",
                    success:function(data){
                        if(data.success){
                            $("#info").html(data.time);
                        }else{
                            $("#info").html("更新失败");
                        }
                    },
                    error:function(res){
                        alert("发生错误:"+res.status);
                    }
                    });
            }
        });
    })
</script>
</body>
</html>

time.php

<?php
date_default_timezone_set('Asia/Shanghai'); 

if(isset($_POST['time']) && $_POST['time']!=''){
    $time = addslashes($_POST['time']);
    update($time);
}else{
    display();
    //update('2011-11-11 11:11:00');
}

function display(){
    $file = md5("time");
    $time = file_get_contents($file);
    echo $time;
}

function update($time){
    if($time == ''){
        echo '{"success":false}';
        exit();
    }
    $file = md5("time");
    $res = file_put_contents($file, $time);
    if($res>0){
        echo '{"success":true,"time":"'.$time.'"}';
    }else{
        echo '{"success":false}';
    }
}

对于有些小系统,只有一个管理员的可将用户名和密码直接写入到登陆判断页面中,或者像这个例子一样,使用一个md5加密后的字符串作为文件名的文件保存用户名和密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值