PHP个人网站架设连环讲(四)


Posted in PHP onOctober 09, 2006

三 首页新闻发布,让你更新更轻松(下)

-----上一讲里,我们已经实现了首页新闻发布的基本功能。在这一讲里,我们再给它添砖加瓦,使它的功能更为强大。(一个好用的软件,其实也就是基本功能加上一批附属功能,这些附属功能主要也是图个方便而已,呵呵)
-----首先,我们再明确一下我们想获得什么方便。我们不希望几十天以前的东西我们忘了删除,结果还作为新闻发布在首页(很丢脸的哦^&^)。如果我们在基本实现中嵌入一段代码,比如说用filectime($filename),那么在UNIX下,我们就可以得到从1970年1月1日起以秒计到最后一次文件被改动的时间(在WINDOWS下返回的是文件生成的日期时间),而从 1970年1月1日起以秒计到现在的秒数可以用$mynow=mktime()来获得,减法,判断,IF >我们期望的时间,嘿嘿,Sorry,unlink($newspath.$filename)……什么?!您问这段代码应该放在哪儿?您说呢,呵呵。
或许,你并不是常在一台机器上上网,当你获得了一条新的新闻后却不在你的爱机旁,怎么办?最理想的莫过于在主页上上传文件咯。你或许有一个页面(Admin?)需要用密码才能进入(假如你还爱惜自己的网站的话,这是有必要的,最好连文件名都不要让别人知道,呵呵)。下面是一段到处可见的文件上载的代码:
<?
if(isset($upfile))
{
?>  

已上载的文件信息如下:
    文件存放路径  : <?echo $upfile;?>
    原始文件名    : <?echo $upfile_name;?>
    文件大小(字节): <?echo $upfile_size;?>
    文件类型      : <?echo $upfile_type;?>

<?
}  
else
{
?>
<html>
<head><title>新闻上传</title></head><body>  
<form enctype="multipart/form-data" method="post" action="<?echo $PHP_SELF;?>">  
<input type="hidden" name="MAX_FILE_SIZE" value="50000">
请选择或输入上传文件名: <input name="upfile" type="file">  
<input type="submit" value="上传" name="submit">
</form>
</body></html>  
<?
}
?>  

-----这里我们又见到了PHP和HTML结合的一种形式,可以借鉴。文件上载虽然方便,但总给人一种不安全感。一旦泄密,你的服务器的系统安全就受到了威胁,因为上载的文件可能是一些破坏性的执行文件(也就是病毒或黑客程序啦)稳妥的做法是写一个在线编辑的文件,下面是一个示例:

〈?php
function mywritefile($filename,$contents){
if($fp=fopen($filename,"w")){
fwrite($fp,strpslashes($contents));
fclose($fp);
return 1;
}  
else {return 0;};
};
//判断表单返回的变量
if($submitButton=="完成"){
$rs=mywritefile("$page","$test");
echo "<a href ="$page">$page</a><br>";
}
elseif($action=="page") //变量action值为"page"的情况
{$contents="$page";
$fp=@fopen($content,"w+")or die('Could not open file!');
$contents=htmlspecialchars($contents);
fclose($fp);
echo "<form action="admin.php?page=$page" method="POST" wrap=soft>";
echo "$contents";
echo "</textarea>";
echo "<input type="submit" name="submitButton" value="完成">";
echo "</form>";
}
else
{echo "<form action="basename($PHP_SELF).?action=page" method="POST">";//注意引用程序内变量的方式。
echo "<input type=text size=20 name=page>";
echo "<input type="submit" name="send" value="选定">";
echo "</form>";
}
?>

-----至此,首页新闻发布的实现已经可以告一段落了。 我们可以发现,任何一个功能(比较)强大的陈程式都是由一些简单的功能组合而成的。第三部分功能的整个完善过程使用叠加增强的方法,和软件工程的自顶向下,逐层分析的开发方法是不一样的。这是一个适用于学习的方法,自己写写习作还是挺管用的,呵呵。

PHP 相关文章推荐
php array_map()数组函数使用说明
Jul 12 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
php学习之function的用法
Jul 14 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
PHP回溯法解决0-1背包问题实例分析
Mar 23 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
Laravel中错误与异常处理的用法示例
Sep 16 PHP
用PHP+java实现自动新闻滚动窗口
Oct 09 #PHP
如何将数据从文本导入到mysql
Oct 09 #PHP
PHP个人网站架设连环讲(三)
Oct 09 #PHP
杏林同学录(九)
Oct 09 #PHP
我的论坛源代码(九)
Oct 09 #PHP
PHP个人网站架设连环讲(一)
Oct 09 #PHP
PHP个人网站架设连环讲(二)
Oct 09 #PHP
You might like
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
Python2.x与Python3.x的区别
2016/01/14 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
浅谈Python NLP入门教程
2017/12/25 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
办公室文书岗位职责
2013/12/16 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
年终总结会议主持词
2014/03/17 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android