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中利用XML技术构造远程服务(上)
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
Oct 31 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
深入解析php之sphinx
May 15 PHP
php操作mysqli(示例代码)
Oct 28 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
php实现异步数据调用的方法
Dec 24 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
laravel 出现command not found问题的解决方案
Oct 23 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 curl基本操作详解
2013/07/23 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
vue实现文字加密功能
2019/09/27 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
Python实现针对中文排序的方法
2017/05/09 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
Windows下python3.7安装教程
2018/07/31 Python
python3人脸识别的两种方法
2019/04/25 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
python3中for循环踩过的坑记录
2020/12/14 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
华为慧通笔试题
2016/04/22 面试题
const和static readonly区别
2013/05/20 面试题
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
后勤部长岗位职责
2013/12/14 职场文书
教师绩效考核方案
2014/01/21 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
大学新生军训方案
2014/05/03 职场文书
房地产活动策划方案
2014/05/14 职场文书
争先创优心得体会
2014/09/12 职场文书