Posted on January 29th, 2008 by rolode
聊天室,是 Web 站上打发无聊人士的秘密武器。同时,站长或其它人员也可以在这儿杀时间。甚至发生一段轰轰烈烈的网络恋情呢,就算没有,起码可以增加打字的速度。 聊天室,其实就是多人共同使用的 CGI 程序。程序将每个人输入的字符串,依系统接收完成的时间整理过后,再送给各个用户。而 Web 聊天室和 BBS 的聊天室不同的地方是 BBS 聊天室可以每收到一句话,就马上分送给每位在聊天室的网络用户;Web 由于 CGI 程序不能像 BBS 的 telnet 一直连接,Web CGI 必须以最快的速度将信息送出,然后结束连接。会形成这种情形,就是因为 Web 聊天室还是使用 HTTP 传输协议,在 HTTP 实作的版本,无论是 0.9、1.0 或是 1.1 版都不能长期占据网络连接的 Port。
为了解决资料无法马上传输的问题,及更新信息的问题,Netscape 在 3.0 版浏览器之后使用了新的技术,而 Internet Explorer 也实作了这些 Netscape 研发出来的技术。Netscape 将它分成 Server Push 及 Client Pull 两种技术。Server Push 由 Web 服务器将资料以多重 MIME 编码,送给用户端,目前较少网站使用这种方式;而 Client Pull […]
Filed under: PHP 技术 学习 教程 | No Comments »
Posted on January 29th, 2008 by rolode
在专门 Web 网站上,常常会需要用户的帐号及密码,也就是身份确认的步骤。早期的 NCSA httpd 服务器并没有提供这项用户确认的功能,Webmaster 只能用手工打造一个身份确认的 CGI 程序。 自 CERN httpd 之后的 Web 服务器大部份都提供了用户身份确认的功能。仅管每套 Web 服务器的配置都不太相同,但在配置上都大同小异。
以下就是 Apache 服务器上的用户身份确认的配置。
<Directory /home/MyMember>
AuthType Basic
AuthName MyMember
AuthUserFile /usr/local/MyMember.txt
Options Includes ExecCGI
<Limit GET POST>
require valid-user
</Limit>
</Directory>
在这个例子中,当用户在看 MyMember 目录下所有的文件,包括图片文件及其它各式文件时,都需要用户的帐号密码确认。而用户的帐号及密码文件都存在于 /usr/local/MyMember.txt 之中。
这个帐号密码文件 /usr/local/MyMember.txt 的样子可能如下例。其中冒号前的字符串是用户帐号,冒号之后的字符串是经过不可还原加密的密码,编码一般都是使用传统的 DES 编码,密码的头两个字是类似种子的字符 (salt),本例中都是 3P。每行代表一位用户。当然 Webmaster 要自行控制重覆帐号的情形。比较特殊是在 Win32 系统上架 Apache 的情形,冒号后的密码不可加密,因为 Win32 没有提供这方面的编码 API,因此用户密码以明码的方式存在。
john1234:3PWudBlJMiwro
queenwan:3PFNVLNPN9W0M
noname00:3PEsXaJx5pk7E
wilson49:3PjoWb0EnaG22
rootboot:3PIt0snI6.84E
sun_moon:3PvymMeNOc.x.
nobody38:3PbskPKwV94hw
在 Apache 1.3.6 版上,可以用 ~apache/bin/htpasswd 来产生单笔的帐号及密码,但对于需要大笔资料的商业网站,可能就需要自行写程序来处理了。UNIX 上需要调用 crypt() 来处理编码。
在一切都配置好了之后,连接时就会在浏览器出现查核密码的窗口,如上图就是 […]
Filed under: PHP 技术 学习 教程 | No Comments »
Posted on January 29th, 2008 by rolode
访客计数器是让 Web 访客知道该网页或者网站的人气指数最直接的方法。尤其是想利用网页赚钱的人,访客人数是找广告商最好的说词。当然可以将网站来访人数写成统计报表,但总是感觉直接看到比较真实,到底眼见为凭。
在上图中,访客计数器的流程如下
第一位用户浏览某页。
服务器程序从数据库或文件中读取该页被浏览次数。
将次数加一储存,并将它送回第一位用户。
第二位用户浏览某页。
服务器程序从数据库或文件中读取该页被浏览次数。
将次数再加一储存,并将它送回第二位用户。
PHP 在没有特殊的访客计数器函数,但是我们可以用 PHP 的强大功能自已写一个访客计数器函数。
以下的函数是访客计数器的原型,是由 David W. Bettis 所提供,并经过作者少许修改。
<html>
<head>
<title>访客计数器 原型</title>
</head>
<body>
<?php
/*
simple access counter for php3
(c)1998 David W. Bettis
dbettis@eyeintegrated.com
medify by Wilson Peng
*/$counterFile = “/tmp/counter.txt”;function displayCounter($counterFile) {
$fp = fopen($counterFile,“rw”);
$num = fgets($fp,5);
$num += 1;
print “您是第 ”.“$num”.“ 位无聊份子”;
exec( “rm -rf $counterFile”);
exec( “echo $num > $counterFile”);
}if (!file_exists($counterFile)) {
exec( “echo 0 > $counterFile”);
} displayCounter($counterFile);?>
</body>
</html>
Copyright © 1998 David W. Bettis
在读取到本页时,PHP 程序先找寻 /tmp/counter.txt 文件是否存在,若不存在,则建立一个 counter.txt 文件,然后将 0 写入文件。然后读取 counter.txt 文件的内容,也就是纯文字叠,再将内文的数字存入 $num 变量中。在 $num 的变量出现在浏览器前,还有经过加一的步骤,让用户可以增加。当然,如果想灌水,就在加一步骤时加二或者加三,不过自欺是无用的。最后将访客人数再回存 /tmp/counter.txt 就一切 OK
Filed under: PHP 技术 学习 教程 | No Comments »
Posted on January 29th, 2008 by rolode
首先要说明的是,这几个范例程序都是不同性质的程序,每个程序在 Webmaster 学科 (若 Webmaster 也算是一门学科的话),都是不同的主题,也是成为专业人士所必须要研究的,也因此几乎所有和 CGI 有关的书都会提到这些主题。 当然从专业角度而言,以下的程序实在太简单了,许多专业 CGI 套件提供了完整而严谨的解决方案。在这儿只是要展现出 PHP 的程序实作,并真正与网站的系统相结合。至于真正要拿这些范例来赚钱,可能还有一段距离。实际上,可以在网络上找一些现成的套件,倒是比开发还容易。
以下就是这些主题
访客计数器: 探讨如何存取文件。
用户认证: 探讨 PHP 与 MySQL 数据库的结合。并提供网页权限的架构。
聊天室: 探讨程序的共用变量文件及用外部指令操作文件。
留言板: 探讨 PHP 与 Oracle 数据库的结合。
意见信箱: 探讨 PHP 如何执行外部程序。
广告轮播: 探讨 PHP 所提供文件上传的功能。
Filed under: PHP 技术 学习 教程 | No Comments »
Posted on January 29th, 2008 by rolode
本章中的函数涵盖 PHP 3.0.11 版前的所有函数。
函数的格式如下:
函数库名称
函数名称
函数功能简述。
语法: 返回类型 函数名称(类型 参数1, 类型 参数2….);
返回值: 变量类型
函数种类: 例如: 数据库, 网络..等等
内容说明
函数说明详述内容
使用范例
函数的范例 (本栏可能省略)
参考
小节索引 函数名称, 小节索引 函数名称… (本栏可能省略)
以下为 PHP 的相关函数库
Adabas D 数据库链接函数库
apache服务器专用函数库
数组处理函数库
拼写检查函数库
BC 高精确度函数库
历法函数库
ClibPDF 函数库
日期与时间函数库
DBA 函数库
dBase 格式资料表函数库
dbm 类数据库函数库
目录管理函数库
动态链接函数库
程序执行功能函数库
FDF 函数库
filePro 数据库函数库
文件系统函数库
HTTP 相关函数库
Hyperwave 服务器函数库
图形处理函数库
IMAP 电子邮件系统函数库
PHP 选项及相关信息函数库
Informix 数据库函数库
InterBase 数据库函数库
LDAP 目录协议函数库
电子邮件函数库
数学运算函数库
mcrypt 编码函数库
mhash 哈稀函数库
杂项函数库
mSQL 数据库函数库
SQL Server 数据库函数库
MySQL 数据库函数库
Sybase 数据库函数库
网络函数库
NIS 函数库
ODBC 数据库链接函数库
Oracle 8 数据库函数库
Oracle 数据库函数库
Perl 相容语法函数库
PDF 格式文件函数库
PostgreSQL 数据库函数库
正则表达式函数库
信号与共享内存函数库
Solid 数据库链接函数库
SNMP 网管函数库
字符串处理函数库
URL 处理函数库
变量处理函数库
Vmailmgr 邮件处理函数库
WDDX […]
Filed under: PHP 技术 学习 教程 | No Comments »