2004年09月02日
以下是一段gb2312 -> UTF-8 的函数,西西,我抄了 unicode -> UTF-8 的算法,所以实际比GB2312->unicode 没多多少东西,请大家注意调用gb2utf8()时不能中英文混用 程序需要的GB2312.txt文件...详细阅读:GB2312->UTF-8 转换函数
上文由 qqwm 发表于 22:59 | 回复 (0) | TrackBack (789)
作者:dragon_son 发表日期:2001年4月6日 阅读次数:131 -------------------------------------------------------------------------------- //upload_html.php--------------------------------------------------------------------------------------------- 上传文件 function beforesubmit(forma) { var...详细阅读:多文件上传的例子
上文由 qqwm 发表于 22:57 | 回复 (0) | TrackBack (838)
在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事! 备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都有其优缺点: mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态,而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程,这样你能采取措施确保服务器让表不受干扰。 mysqldump比直接拷贝要慢些。 mysqldump生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题,因为该格式是机器无关的,所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件:另一台机器必须也运行MySQL 3.23或以后版本,而且文件必须以MyISAM格式表示,而不是ISAM格式。 不管你使用哪种备份方法,如果你需要恢复数据库,有几个原则应该遵守,以确保最好的结果: 定期实施备份。建立一个计划并严格遵守。 让服务器执行更新日志。当你在崩溃后需要恢复数据时,更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后,你可以通过运行更新日志中的查询再次运用备份后面的修改,这将数据库中的表恢复到崩溃发生时的状态。...详细阅读:MySQL数据库备份
上文由 qqwm 发表于 22:55 | 回复 (0) | TrackBack (613)
翻译: 无伤 最近因为工作原因我需要学习XML, 但并不是纯技术上的XML, 而是RDF,但是我发现PHP的XML解析函数功能是一样的。我需要解析DMOZ(http://www.dmoz.org),但是出于简单性考虑我会专注于XML的基本原理,将解析DMOZ的留给你在业余时间去完成。 ;o 首先你需要确定你的PHP编译是包括'--with-xml'选项的,然后你就可以开始解析XML了。下面要抓取Slashdot的XML文件, 位置是 http://www.slashdot.org/slashdot.xml。 Slashdot的文件比较简单,易于分析。...详细阅读:PHP中XML操作指南
上文由 qqwm 发表于 22:53 | 回复 (0) | TrackBack (177)
作者:凡草0515 1、用i+=1代替i=i+1。符合c/c++的习惯,效率还高。 2、尽可能的使用PHP内部函数。自己编写函数之前要详细查阅手册,看有没有相关的函数,否则费力不讨好。 3、能使用单引号字符串尽量使用单引号字符串。单引号字符串的效率要高于双引号字符串。 4、用foreach代替while遍历数组。遍历数组时foreach的效率明显高于while循环,而且不需要调用reset函数。两种遍历方法如下: reset ($arr); while (list($key, $value)...详细阅读:几点提高php序运行效率的方法
上文由 qqwm 发表于 22:51 | 回复 (0) | TrackBack (1136)
在 php.ini 配置文件里面有这个选项 disable_functions = ; This directive allows you...详细阅读:如何屏蔽掉phpinfo()函数
上文由 qqwm 发表于 22:47 | 回复 (0) | TrackBack (165)
2004年08月27日
对于IE浏览器上的“打开”“保存”等许多功能,用javascript也可以轻松实现 <input type="bottun" value="测试" onclick="***"> 其中***可以分别换成以下代码 1打开:document.execCommand("open") 2另存为:document.execCommand("saveAs") 3打印: document.execCommand("print")...详细阅读:用脚本实现浏览器的基本功能
上文由 qqwm 发表于 01:54 | 回复 (0) | TrackBack (736)
题目(TITLE) Title元素是文件头中唯一一个必须出现的元素,它也只 能出现在文件头中。title元素的格式为: 文件题目 title标明该html文件的题目,是对文件内容的概括。一 个好的题目应该能使读者从中判断出该文件的大概内容。 文件的题目一般不会显示在文本窗口中,而以窗口的名 称显示出来。 除了标识窗口外,当将某一 homepage...详细阅读:构成网页的基本元素
上文由 qqwm 发表于 01:52 | 回复 (0) | TrackBack (717)
1. 如何在网页中加入注释 ◆代码: 2. 如何在网页中加入EMAIL链接并显示预定的主题 ◆代码:Send Mail 3. 如何制作电子邮件表单 ◆在中输入Action="youremail@XXX.XXX"...详细阅读:网页技巧二十一例
上文由 qqwm 发表于 01:51 | 回复 (0) | TrackBack (497)
使用方法: 在里插入onselectstart=return false...详细阅读:取消选取、防止复制
上文由 qqwm 发表于 01:49 | 回复 (0) | TrackBack (1252)
您可以利用下列 3 种方式,将 CSS 指定的格调加诸于网页上: 1. 在 HTML 档案里加一个超连结,连到外在的...详细阅读:如何将 CSS 加诸于网页
上文由 qqwm 发表于 01:48 | 回复 (0) | TrackBack (794)
meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的与中,meta 标签的用处很多。meta 的属性有两种:name和http-equiv。name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个:详细阅读:HTML文档中小meta的大作用
上文由 qqwm 发表于 01:46 | 回复 (0) | TrackBack (500)
2004年08月07日
使用“ALT="为图像加入交互文本是一个好习惯,因为并不是所有的人都打开图像载入开关的,这时候这些交互文本给了用户一个有用的提示,特别是一些连接。但有部分网页制作者为图像加入了很长的交互文本,当用户载入图像时,这并不影响结果;但如果用户不载入图像,浏览器就会将所有的文本都显示出来,以致超出了它本来的宽度、或高度,对网页原来的排版影响很大。 例如广州市某免费个人主页提供商的网页,我开始在关闭图像载入的情况下访问,结果该网页乱七八糟,而且需要使用滚动条才能全部浏览,每个文字连接都被前面的图像逼得排成两行,很不顺眼!后来我打开图像载入再去访问该站时,发现网页原来很整齐。那些用文件名和长度作为交互文本的图像只是一些长度、宽度都很小的装饰图案,但因为交互文本太长了,所以才造成了混乱! 不要将连接全部摆在图像中 以往的网页中的连接都是文字,而且用下划线以资识别。但不久人们就讨厌了这些文字连接,于是都采用了图像连接。后来,更加嫌一个图像一个连接太麻烦了,于是将所有的连接到摆进了一个图像中去。但与上忌情况一样,不是所有的人都打开图像载入,如果你把所有的连接到摆在图像中去,而没有任何同样功能的文字连接的话,用户也许会很不知所措。 某网上男孩子的网页,可能是考虑到这个情况,于是把包含在图像中的连接作为交互文本列了出来———呀!足有1000多像素的宽度。结果我没有用鼠标去“探索”———其实可以用TAB键去寻找这些连接———而是退了出来。与其怕部分用户望而止步写了那么多的交互文本,为什么就不可以增加一些同样目的的文字连接呢?...详细阅读:网页设计八种陋习
上文由 qqwm 发表于 00:59 | 回复 (0) | TrackBack (394)
打开一个网站,给用户留下第一印象的既不是网站丰富的内容,也不是网站合理的版面布局,而是网站的色彩。色彩对人的视觉效果非常明显,一个网站设计成功与否,在某种程度上取决于设计者对色彩的运用和搭配。因为网页设计属于一种平面效果设计,在排除立体图形、动画效果之外,在平面图上,色彩的冲击力是最强的,它很容易给用户留下深刻的印象。因此,在设计网页时,我们必须要高度重视色彩的搭配。 一、色彩的基础知识 色彩五颜六色、千变万化,我们平时所看到的白色光,经过分析在色带上可以看到,它事实上包括红、橙、黄、绿、青、蓝、紫等七色,各颜色间自然过渡。其中,红、黄、蓝是三原色,三原色通过不同比例的混合可以得到各种颜色。色彩有冷暖色之分,冷色 ( 如蓝色 ) 给人的感觉是安静、冰冷;而暖色 ( 如红色 )...详细阅读:网页色彩搭配的设计艺术
上文由 qqwm 发表于 00:56 | 回复 (0) | TrackBack (823)
2.1标题(TITLE) Title元素是文件头中唯一一个必须出现的元素,它也只能出现在文件头中。title元素的格式为: <title>文件标题</title> title标明该html文件的标题,是对文件内容的概括。一个好的标题应该能使读者从中判断出该文件的大概内容。文件的标题一般不会显示在文本窗口中,而以窗口的名称显示出来。除了标识窗口外,当将某一 homepage 存入书签或文件时,title还用作书签名或缺省的文件名。 title的长度没有限制,但过长的标题会导致折行,一般情况下它的长度不应超过64个字符。由于title的作用是标明文件内容,所以太短的title也是不可取的,比如:introduction 这个标题,读者不可能根据它判断出本文介绍的是什么。一个好的例子是: <title> An Introduction...详细阅读:构成网页的基本元素
上文由 qqwm 发表于 00:49 | 回复 (0) | TrackBack (422)
全称:HyperText Mark-up Language 译称:超文本标记语言。 简意:一种为普通文件中某些字句加上标识的语言,其目的在于运用标记(tag)合文件 达到预期的效果。 HTML 是在 SGML 定义下的一个描述性的语言,或可说...详细阅读:HTML 一般概念
上文由 qqwm 发表于 00:45 | 回复 (0) | TrackBack (410)
html文件是标准的ASCII文件,它看起来象是加入了许多被称为标注(tag)的特殊字符串的普遍文本文件。从结构上讲,html文件由元素(element)组成,组成html文件的元素有许多种,用于组织文件的内容和指导文件的输出格式。绝大多数元素是“容器”, 即它有起始标记和结尾标记。元素的起始标记叫做起始标注(start tag),元素结束标记叫做结尾标注(end tag),在起始标注和结尾标注中向的部分是元素体。 每一个元素都有名称和可选择的属性,元素的名称和属性都在起始标注内标明。 比如体元素(body) demo This is my...详细阅读:HTML 语言的结构
上文由 qqwm 发表于 00:44 | 回复 (0) | TrackBack (1061)
2004年08月06日
例子1:创建和使用你自己的JAVA类 创建你自己的JAVA类非常容易。新建一个phptest.java文件,将它放置在你的java.class.path目录下,文件内容如下: public class phptest{ /** * A sample of...详细阅读:php 与 java(二)
上文由 qqwm 发表于 20:26 | 回复 (0) | TrackBack (225)
JAVA是个非常强大的编程利器,它的扩展库也是非常的有用,这篇教程,主要讲述怎样使用PHP调用功能强大的JAVA 类库(classes)。为了方便你的学习,这篇教程将包括JAVA的安装及一些基本的例子。 windows下的安装 第一步:安装JDK,这是非常容易的,你只需一路回车的安装好。然后做好以下步骤。 在 Win9x 下加入 :“PATH=%PATH%;C:jdk1.2.2bin” 到AUTOEXEC.BAT文件中 在...详细阅读:php 与 java(一)
上文由 qqwm 发表于 20:25 | 回复 (0) | TrackBack (299)
多态 多态是对象的一种能力,它可以在运行时刻根据传递的对象参数,决定调用哪一个对象的方法。例如, 如果你有一个figure的类,它定义了一个draw的方法。并且派生了circle和rectangle 类,在派生类中你覆 盖了draw方法,你可能还有一个函数,它希望使用一个参数x,并且可以调用$x->draw() 。如果你有多态性, 调用哪个draw方法就依赖于你传递给这个函数的对象类型。 多态性在象PHP这样的解释语言(想象一下一个C++编译器生成这样的代码,你应该调用哪一个方法?你 也不知道你拥有的对象是什么类型的,好,这不是重点)是非常容易和自然的。所以PHP当然支持多态性。 <?php...详细阅读:开发大型PHP项目的方法(二)
上文由 qqwm 发表于 20:08 | 回复 (0) | TrackBack (243)
这篇文章介绍了在PHP中的面向对象编程(OOP,Object Oriented Programming)。我将向你演示如何通过使用一些OOP的概念和PHP的技巧来减少编码和提高质量。祝你好运!面向对象编程的概念:不同的作者之间说法可能不一样,但是一个OOP语言必须有以下几方面:抽象数据类型和信息封装 继承 多态 在PHP中是通过类来完成封装的: ---------------------------------------------------<?php class Something {...详细阅读:开发大型PHP项目的方法(一)
上文由 qqwm 发表于 20:01 | 回复 (0) | TrackBack (175)
如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式;如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式。那么正则表达式到底是什么?如何才能真正的掌握正则表达式并正确的加以灵活运用?本文将就此展开介绍,希望能够对那些渴望了解和掌握正则表达式的读者有所助益。 入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。 正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。 举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。 基本语法 在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。 正则表达式的形式一般如下:...详细阅读:正则表达式使用详解
上文由 qqwm 发表于 19:57 | 回复 (0) | TrackBack (617)
我的具体实现的例子 为了帮助大家有个感性认识,这里我给出在我的主页上实现的基于文件处理的方法。只有主要的处理代码,不完整。 <? 1 $tmpfile="../tmp/".basename($REQUEST_URI); 2 $tmpfile=str_replace("?", "_", $tmpfile); 3...详细阅读:简单的页面缓冲技术(二)
上文由 qqwm 发表于 19:56 | 回复 (0) | TrackBack (61)
前言 其实说它为技术,也许不能说是真正的技术。这只不过是我自已想出来的页面处理的方法,当然与别人的想法可能是一致的。不过我还是想给它一个好听的名字。那么我这里所指的页面缓冲是什么呢?就是指将动态生成的页面保存起来,供下一次的使用。这样下一次访问它可能就不需要动态生成了。就象提供了一个cache一样。在我的网站上,也许你的网站也是如此,使用了象模板之类的技术,这样用户所看到的页面就是动态生成的。但是一个页面对于你是这样,对于别人可能还是这样,即在一段时间内是不会变化的,如果将上次生成的结果直接返回给下一次访问的用户不是更好吗?减少了生成时间,效率要高一些。我想随着网站的发展,速度与效率问题还是要考虑的。这里我给出我的实现,希望对大家有所帮助。只是一个思路,没有具体的实现。 使用条件 是不是所有的网页最好都使用呢?我想不需要,而且也不可能。之所以能缓冲就是因为下一次访问与上一次访问的内容可能是完全一样的。所以对于经常变化的页面就不合适了。比如页面上要显示计数信息的就不太合适。还有就是如果你的动态页面输出时,没有先输出到变量中,而是直接返回给用户,如使用echo,print ,readfile之类的输出,我个人认为现在还作不到。因为无法将输出结果得到,保存到文件中去(反正我是想了半天没有想出有什么可以将直将输出的东西截下来,重定向到文件中去)。那么比较适的动态页面的处理就是:输出结果应该可以放到一个字符串之中。所以使用条件就是: 页面基本不会变化 动态页面的处理结果可以存放到字符串中 这样使用模板类来处理动态页面就很好了。通过在模板中设置可替换的变量,然后根据实际的值替换相应的模板中的变量,同时可以将结果放到字符串中进行输出,这种模板类的处理非常适合保存处理后的页面。当然不使用模板类,也可以通过字符串的处理来生成输出结果也是可行的。至于怎么做就不讨论了。 实现...详细阅读:简单的页面缓冲技术(一)
上文由 qqwm 发表于 19:54 | 回复 (0) | TrackBack (207)
看了FonTomas的"用Editplus实现J2SDK的可视化编程"(参见http://www.csdn.net/Develop/article/15/15416.shtm)一文后,笔者做为一个PHP程序员,萌发出了让Editplus调试PHP程序的想法。经过我的测试与N次的试验之后,终于可以让Editplus完美的实现这个功能了。具体实现方法如下: 1.打开Editplus,选择"Tool(工具)->Configure User Tools...(配置用户工具)"菜单(笔者现在使用的版本是V2.11英文版,本站(http://www.phpe.net)下载栏目有下载使用中文版的朋友可以参见下面的图片对照)。 500) this.width=500' align='center' hspace='10' vspace='10'> 2.在弹出的窗口中选择"Add...详细阅读:利用Editplus2的用户工具功能来即时调试PHP
上文由 qqwm 发表于 19:44 | 回复 (0) | TrackBack (695)
这个文档描述如何安全显示的有格式的用户输入。我们将讨论没有经过过滤的输出的危险,给出一个安全的显示格式化输出的方法。 没有过滤输出的危险 如果你仅仅获得用户的输入然后显示它,你可能会破坏你的输出页面,如一些人能恶意地在他们提交的输入框中嵌入 javascript脚本: This is my comment. alert('Do something...详细阅读:显示格式化的用户输入
上文由 qqwm 发表于 19:42 | 回复 (0) | TrackBack (55)
现在有许多站点下载文件都提供了统计功能,本文讨论的是如何使用php实现此功能,对于想隐藏下载文件路径,避免用户直接使用url下载的编程者,本文也具有一定的参考价值。 实现环境:linux+apache+php+mysql windows98+pws4+php+mysql 一、数据库结构 数据库中创建一个表,存储文件信息,包括文件编码、名称、下载路径、统计,相应的sql文件内容如下: create database dl_db; create table...详细阅读:文件下载统计php编程
上文由 qqwm 发表于 19:41 | 回复 (0) | TrackBack (915)
最近在写bbs中,遇上代码转换问题。寻找了很久,才得到一个比较完善的解决办法,可以彻底还原发文者的原文。 以下贴出,供大家指正。 系统:linux+php4+oracle8i //--标题,名字等字段入库处理(去首尾空格) function trans_string_trim($str) { $str=trim($str); $str=eregi_replace("'","''",$str); $str=stripslashes($str);...详细阅读:转义符的一点总结
上文由 qqwm 发表于 19:15 | 回复 (0) | TrackBack (551)
根据我的上篇文章《也谈网站在线人数统计》,我写的在线人数统计程序源代码如下:如有错误请指正。 db层: db_online.php //该函数使用户自己在线,并且检查其他用户的在线情况 function checkOnline($userid,$tempid=null) { $conn = connect();...详细阅读:在线人数统计源代码
上文由 qqwm 发表于 19:14 | 回复 (0) | TrackBack (1219)
第一种方法:利用AltaVista搜索引擎来实现 这种方法是检查与你的站点链接的数目。这里用AltaVista搜索引擎来实现。在这里,我们用如下搜索引擎: http://www.altavista.com/cgi-bin/query?kl=XX&pg=q&text=yes&q=link%3A&search=Search。 这是AltaVista的一个文本版本。这样可以节省我们大量的需要解析HTML的代码。接着,我们使用rawurlencode()来处理我们确切的URL保证Altavista能够正确地处理它。处理如下: $url = "http://www.oso.com.cn"; $url_encoded = rawurlencode($url);...详细阅读:两种统计当前在线人数的方法
上文由 qqwm 发表于 19:12 | 回复 (0) | TrackBack (381)
本文不敢说非常好,但是笔者相信大多数PHPer都曾经想过这些问题。 使用无限生命期Session的方法 在PHP4.0中加入了对Session的支持,方便了我们很多程序,比如购物车等等! 在很多论坛中,Session也用于处理用户的登陆,记录下用户名和密码,使得用户不必每次都输入自己的用户名和密码!但是一般的Session的生命期有限,如果用户关闭了浏览器,就不能保存Session的变量了!那么怎么样可以实现Session的永久生命期呢? 大家知道,Session储存在服务器端,根据客户端提供的SessionID来得到这个用户的文件,然后读取文件,取得变量的值,SessionID可以使用客户端的Cookie或者Http1.1协议的Query_String(就是访问的URL的“?”后面的部分)来传送给服务器,然后服务器读取Session的目录…… 要实现Session的永久生命期,首先需要了解一下php.ini关于Session的相关设置(打开php.ini文件,在“[Session]”部分): 1、session.use_cookies:默认的值是“1”,代表SessionID使用Cookie来传递,反之就是使用Query_String来传递; 2、session.name:这个就是SessionID储存的变量名称,可能是Cookie,也可能是Query_String来传递,默认值是“PHPSESSID”; 3、session.cookie_lifetime:这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以Session不能永久使用! 4、session.gc_maxlifetime:这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除!...详细阅读:使用无限生命期Session的方法
上文由 qqwm 发表于 19:11 | 回复 (0) | TrackBack (391)
Cookie真是一个伟大的发明,它允许web开发者保留他们的用户的登录状态。然而,当你的站点或网络 有一个以上的域名时就会出现问题了。 在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名。因此,如果在浏览器中对一个域名设置了一个cookie,这个cookie对于其它的域名将无效。如果你想让你的用户从你的站点中的其中一个进行登录,同时也可以在其它域名上进行登录,这可真是一个大难题。 我的解决方案将使用下面的一般框架: 一个预置的脚本将用来接受通过GET或COOKIE方式传递过来的sessionid号。它将比COOKIE优先选择GET 变量。所以,无论何时需要引用交叉的域名时,我们把sessionid做为一个URL参数进行发送。修改Apache配置,用来实现重写所有的交叉域名的cookie。这样做的原因一会儿就会清楚了。在任何时候出现一个交叉域名引用时使用变量。 第一步:创建预置脚本 将下面的代码加到预置脚本中(或出现在所有脚本之前的函数中)。 /* 支持交叉域名cookie......详细阅读:实现跨域名Cookie
上文由 qqwm 发表于 19:10 | 回复 (0) | TrackBack (195)
如果一个表单中有多个同名复选框,在提交到php时却只有一个值,而并不像asp那样是一串用逗号分割的值。有一个很简单的方法来解决:将复选框的name后面加上[],例如:<input type="checkbox" name="ccc" value="1"> 改为:<input type="checkbox" name="ccc[]" value="1">。这样php将得到一个叫ccc的阵列。但这种方法有个问题,如果您要在客户端对复选框是否被选择、选择了几个用javascript来判断时,javascript会因为复选框的name中含有[]而出错。您可以在表单中加入一个隐含域,用javascript设置它的值。 <script language="javascript">...详细阅读:用PHP处理多个同名复选框
上文由 qqwm 发表于 19:08 | 回复 (0) | TrackBack (344)
你是否遇到过“重复提交”的问题?要解决这个问题其实并不难。这里有一个简单的方法避免同一表单的重复提交。 首先,我们可以定义一个session变量用来保存一个表单的提交序列号。这里我定义为“$userLastAction”。然后在表单里加入一个hidden变量,把值设为$userLastAction+1: > 最后,在处理提交之前判断表单是否已被提交过: if($lastAction>$userLastAction and inputIsValid(...)){ $userLastAction++; // 序列号加1...详细阅读:如何避免表单的重复提交
上文由 qqwm 发表于 19:06 | 回复 (0) | TrackBack (785)
在web 上所有常见的错误之一就是无效的链接。一旦从其它站点上出现了无效的链接,你会重新安排你 的站点。人们会将他们喜欢的站点存成书签,如果在三个月后再次访问时,仅仅发现的是'404 Not Fount ' 时,将不会给他们任务帮助,告诉他们如何从你的站点去查找原始的信息。让我们解决这个问题,或者至少 给你的用户一个友好的帮助,一旦他们遇到'a 404' 错误时,能够得到一些痕迹。你可以创建普通的页面来...详细阅读:使用PHP的错误处理
上文由 qqwm 发表于 19:06 | 回复 (0) | TrackBack (102)
数据加密在我们生活中的地位已经越来越重要了,尤其是考虑到在网络上发生的大量交易和传输的大量数据。如果对于采用安全措施有兴趣的话,也一定会有兴趣了解PHP提供的一系列安全功能。在本篇文章中,我们将介绍这些功能,提供一些基本的用法,以便你能够为自己的应用软件中增加安全功能。详细阅读:PHP安全编程之加密功能
上文由 qqwm 发表于 19:04 | 回复 (0) | TrackBack (309)
你一定会笑我"下载文件"如此简单都值得说?当然并不是想象那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用"Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下: $file_name = "info_check.exe"; $file_dir = "/public/www/download/"; if (!file_exists($file_dir ....详细阅读:PHP实现文件安全下载
上文由 qqwm 发表于 19:03 | 回复 (0) | TrackBack (323)
上一部分讲了有关Cookie的技术背景,这部分来说说在PHP里如何设置、使用、删除Cookie,及Cookie的一些限制。PHP对Cookie支持是透明的,用起来非常方便。 1、设置Cookie PHP用SetCookie函数来设置Cookie。必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数。 SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下: int SetCookie(string name, string value, int...详细阅读:Cookie及其使用(二)
上文由 qqwm 发表于 19:02 | 回复 (0) | TrackBack (304)
Cookie技术是一个非常有争议的技术,自经诞生它就成了广大网络用户和Web开发人员的一个争论焦点。有一些网络用户,甚至包括一些资深的Web专家也对它的产生和推广感到不满,这倒不是因为Cookie技术的功能太弱或别的技术性能上的原因,而仅仅是因为他们觉得Cookie的使用,对网络用户的隐私构成了危害。因为Cookie是由Web服务器保存在用户浏览器上的小文本文件,它包含有关用户的信息(如身份识别号码、密码、用户在Web站点上购物的方式或用户访问该站点的次数)。详细阅读:Cookie及其使用(一)
上文由 qqwm 发表于 19:01 | 回复 (0) | TrackBack (413)
嵌套的模板 parse()函数的一个灵巧的特性是它创建的MyOutput句柄是一个真正的模板变量,就象some_color 是一 个模板变量。所以如果你有另一个模板,它有一个{MyOutput}标签,当你分析第二个模板时,所有的 {MyOutput}标记将被替换为MyOutput中的分析后的文本。这个特性允许你将一个模板文件嵌入到另一个模板 中。所以,我们可能有另一个名为wholePage.ihtml的模板,内容如下: 对不起,你没赢。但是如果你赢了,我们将对你说: {MyOutput} 并且在wholePage.ihtml被分析后,最后的结果将是: 对不起,你没赢。但是如果你赢了,我们将对你说:...详细阅读:模板,PHPLIB处理方式(二)
上文由 qqwm 发表于 19:00 | 回复 (0) | TrackBack (70)
如果你正想知道什么是模板,首先去看一下Sascha Schumann写的精彩文章《模板-为什么和如何在PHP3中使用它们(Templates - why and how to use them in PHP3)》的前几段。 一般来说,模板可以让你完全地把你的PHP代码从HTML中分离出来,这样使得HTML的图形设计者们非常高兴,而且可以避免他们搞丢你的宝贵设计。详细阅读:模板,PHPLIB处理方式(一)
上文由 qqwm 发表于 18:58 | 回复 (0) | TrackBack (977)
你可能已经是个PHP的老手了,写了很多非常棒的代码。但是,如果你现在要把它们加入到你现在的项目中去,是否有些吃力?你的朋友想使用你的代码作为他的项目中的一个模块,但是你发现你们使用了截然不同的编码风格,让他适应,甚至不如重写一个!详细阅读:用PEAR来写你的下一个php程序
上文由 qqwm 发表于 00:48 | 回复 (0) | TrackBack (664)
今天,Web站点费尽心思想要为用户提供他们从未体验过的东西。除了友好的界面,细致的服务,实用的信息以外,为用户定制的动态的网页内容也能够提高Web站点的用处并加强访问的针对性,这使得用户更有可能在以后再次访问你的网站。在这篇文章里,我们将从对动态信息的一个概述开始。然后我们将解释如何使用PHP来在Web页面里创建动态的内容并察看一个演示的例子。详细阅读:使用PHP实现动态网页
上文由 qqwm 发表于 00:43 | 回复 (0) | TrackBack (647)
今天做网站的可离不得数据库,说不定你维护的网站就连接着MySQL数据库。MySQL是一种关系型数据库管理系统(RDMS),我们知道,有了数据库,你的网站才会由死气沉沉的静态站点一跃而变得“神采奕奕”、活力四射,个人数据的管理、一般性的日常数据库应用等等都靠网站后端的数据库支撑着呢,这就是MySQL大显神威的地方了!我们这篇文章要谈论的就是MySQL数据库,希望读者能从概述性的本文中学到更多关于MySQL数据库的知识,由此进入MySQL世界的大门。详细阅读:说说我的MySQL
上文由 qqwm 发表于 00:40 | 回复 (0) | TrackBack (232)
LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。 LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。详细阅读:用Php如何操作LDAP
上文由 qqwm 发表于 00:29 | 回复 (0) | TrackBack (166)
聊天室编程思想-- 大门--登陆 大门--登陆 1 页面登陆的基本要素 你可以在我的竹叶看到登陆 的表单,这里提供了最基本的登陆表单项 (1)登陆表单 (a)聊天表单的名字为chatform,我使用action=enter作为进入聊天室的入口,如果没有这个参数,则显示登陆页 面....详细阅读:基于PHP的聊天室编程思想
上文由 qqwm 发表于 00:29 | 回复 (0) | TrackBack (647)
标准化问题在某些方面上让每个人头痛,让人人都觉得大家处于同样的境地。这有助于让这些建议在许多的项目中不断演进,许多公司花费了许多星期逐子字逐句的进行争论。标准化不是特殊的个人风格,它对本地改良是完全开放的。详细阅读:PHP编码规范
上文由 qqwm 发表于 00:26 | 回复 (0) | TrackBack (196)
2004年08月04日
本文原作者:山鹰 新手在安装 Perl 程序的时候,对这绝对路径和相对路径常常搞不清楚,不知道如何设置。希望看完本文后,能让你们对此不再糊涂。 1. 什么是绝对路径 ?什么是绝对路径的相对表示? 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,比如,你的 Perl 程序是存放在...详细阅读:绝对路径与相对路径祥解
上文由 qqwm 发表于 14:42 | 回复 (0) | TrackBack (690)
十二、Perl类和对象的一些注释 OOP的最大好处就是代码重用。OOP用数据封装来隐藏一些复杂的代码,Perl的包和模块通过my函数提供数据封装功能,但是Perl并不保证子类一定不会直接访问基类的变量,这确实减少了数据封装的好处,虽然这种动作是可以做到的,但却是个很坏的编程风格。 注意: 1、一定要通过方法来访问类变量。 2、一定不要从模块外部直接访问类变量。 当编写包时,应该保证方法所需的条件已具备或通过参数传递给它。在包内部,应保证对全局变量的访问只用通过方法传递的引用来访问。对于方法要使用的静态或全局数据,应该在基类中用local()来定义,子类通过调用基类来获取。有时,子类可能需要改变这种数据,这时,基类可能就不知道怎样去寻找新的数据,因此,这时最好定义对该数据的引用,子类和基类都通过引用来改变该数据。 最后,你将看到如下方式来使用对象和类: use coffee::Bean; 这句语句的含义是“在@INC数组所有目录的Coffee子目录来寻找Bean.pm”。如果把Bean.pm移到./Coffee目录,上面的例子将用这一use语句来工作。这样的好处是有条理地组织类的代码。再如,下面的语句:...详细阅读:Perl的面向对象编程(5)
上文由 qqwm 发表于 14:41 | 回复 (0) | TrackBack (80)
八、重载 有时需要指定使用哪个类的方法,如两个不同的类有同名方法的时候。假设类Espresso和Qava都定义了方法grind,可以用::操作符指定使用Qava的方法: $mess = Qava::grind("whole","lotta","bags"); Qava::grind($mess, "whole","lotta","bags"); 可以根据程序的运行情况来选择使用哪个类的方法,这可以通过使用符号引用去调用来实现: $method =...