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 相关文章推荐
第十四节--命名空间
Nov 16 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
PHP 函数学习简单小结
Jul 08 PHP
php中去除所有js,html,css代码
Oct 12 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
php表单敏感字符过滤类
Dec 08 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP实现微信图片上传到服务器的方法示例
Jun 29 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
PHP数组实际占用内存大小原理解析
Dec 11 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将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
2020/09/22 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
python简单实现基数排序算法
2015/05/16 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
python提取log文件内容并画出图表
2019/07/08 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
创业计划书中包含的9个方面
2013/12/26 职场文书
村党支部换届选举方案
2014/05/02 职场文书
装配出错检讨书
2014/09/23 职场文书
党员思想汇报材料
2014/12/19 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
详解nginx location指令
2022/01/18 Servers
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers