PHP通過(guò)文件保存和更新信息的方法分析
本文實(shí)例講述了PHP通過(guò)文件保存和更新信息的方法。分享給大家供大家參考,具體如下:
引言
以前在編寫一個(gè)比賽的機(jī)試系統(tǒng)的時(shí)候,需要記錄和更新考試的截止時(shí)間,以前的做法是在數(shù)據(jù)庫(kù)中單獨(dú)建立一個(gè)數(shù)據(jù)表用于保存和更新截止時(shí)間?;剡^(guò)頭再去看,覺(jué)得沒(méi)有必要單獨(dú)建立一張表,只需要把時(shí)間保存到一個(gè)文件中,然后通過(guò)修改文件的內(nèi)容修改考試時(shí)間即可。
以前的方案

maybe, a little bit stupid….
現(xiàn)在的方案
基本思路:
$time = addslashes($_POST['time']);
$file = md5("time");
$res = file_put_contents($file, $time);
用于保存時(shí)間的文件:

這種明明方式是出于安全考慮,方式被一些掃描器掃描到。
最后附上完整代碼:
manage-time.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>時(shí)間管理頁(yè)面</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>當(dāng)前時(shí)間:<font id="info"></font></p>
<p><input id="time" type="text"/></p>
<p><button id="update">更新時(shí)間</button></p>
</div>
<script type="text/javascript">
$(function(){
//獲取時(shí)間
$("#info").load("time.php");
//更新時(shí)間
$("#update").click(function(){
var time = $("#time").val();
if(time==''){
alert("時(shí)間不能為空");
}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("發(fā)生錯(cuò)誤:"+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}';
}
}
對(duì)于有些小系統(tǒng),只有一個(gè)管理員的可將用戶名和密碼直接寫入到登陸判斷頁(yè)面中,或者像這個(gè)例子一樣,使用一個(gè)md5加密后的字符串作為文件名的文件保存用戶名和密碼。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP目錄操作技巧匯總》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《PHP網(wǎng)絡(luò)編程技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP設(shè)計(jì)模式之策略模式原理與用法實(shí)例分析
這篇文章主要介紹了PHP設(shè)計(jì)模式之策略模式原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了策略模式的概念、原理及php實(shí)現(xiàn)與使用策略模式的相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
Linux fgetcsv取得的數(shù)組元素為空字符串的解決方法
使用CSV導(dǎo)入數(shù)據(jù)的時(shí)候,我們通常用的是Windows系統(tǒng),使用GBK在Windows的Excel中編輯2011-11-11
php調(diào)用MySQL存儲(chǔ)過(guò)程的方法集合(推薦)
本篇文章是對(duì)php調(diào)用MySQL存儲(chǔ)過(guò)程的方法進(jìn)行了集合與匯總,需要的朋友參考下2013-07-07
深入解析PHP內(nèi)存管理之誰(shuí)動(dòng)了我的內(nèi)存
本篇文章是對(duì)php中的內(nèi)存進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
如何利用php array_multisort函數(shù) 對(duì)數(shù)據(jù)庫(kù)結(jié)果進(jìn)行復(fù)雜排序
本篇文章是對(duì)用php array_multisort函數(shù)對(duì)數(shù)據(jù)庫(kù)結(jié)果進(jìn)行復(fù)雜排序進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP代碼網(wǎng)站如何防范SQL注入漏洞攻擊建議分享
所有的網(wǎng)站管理員都會(huì)關(guān)心網(wǎng)站的安全問(wèn)題。說(shuō)到安全就不得不說(shuō)到SQL注入攻擊(SQL Injection)2012-03-03
PHP中檢索字符串的方法分析【strstr與substr_count方法】
這篇文章主要介紹了PHP中檢索字符串的方法,結(jié)合實(shí)例形式分析了strstr與substr_count函數(shù)的功能與具體使用技巧,需要的朋友可以參考下2017-02-02

