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 相关文章推荐
《APMServ 5.1.2》使用图解
Oct 23 PHP
php 遍历数据表数据并列表横向排列的代码
Sep 05 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
PHP 图片水印类代码
Aug 27 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
PHP用户注册邮件激活账户的实现代码
May 31 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 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获取后台Job管理的实现代码
2011/06/10 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
CSS和Javascript简单复习资料
2010/06/29 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
Python实现获取操作系统版本信息方法
2015/04/08 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
领导干部对照检查材料
2014/08/24 职场文书
出国留学英文自荐信
2015/03/25 职场文书
婚宴领导致辞
2015/07/28 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书