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 相关文章推荐
实时抓取YAHOO股票报价的代码
Oct 09 PHP
在线增减.htpasswd内的用户
Oct 09 PHP
用PHP实现递归循环每一个目录
Aug 08 PHP
php强制运行广告的方法
Dec 01 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
Laravel 5框架学习之表单
Apr 08 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
eclipse php wamp配置教程
Jun 30 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
php微信开发之谷歌测距
Jun 14 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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
jquery.post用法之type设置问题
2014/02/24 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
bootstrap table表格使用方法详解
2017/04/26 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
python解决字典中的值是列表问题的方法
2013/03/04 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
用python计算文件的MD5值
2020/12/23 Python
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
介绍一下Java的事务处理
2012/12/07 面试题
单位创先争优活动方案
2014/01/26 职场文书
行政内勤岗位职责
2014/04/07 职场文书
2014年科研工作总结
2014/12/03 职场文书
单位委托函范文
2015/01/29 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
开学典礼校长致辞
2015/07/29 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
Redis主从复制操作和配置详情
2022/09/23 Redis