归档于 七月, 2006

PhpHome网站管理系统 20060710

   PhpHome非常适合用来建立资讯类网站,比如政府、高校、行业门户和地区门户等新闻资讯。文章支持图文混排,可插入图片、flash和其他多媒体文件,也可上传附件。PhpHome可安装到企业内网上用来做内部资料库,也可以通过PhpHome数据提取功能与其他系统协同工作,比如OA系统、采集器。    PhpHome还可以用来做事业单位或者企业的小型展示性站点。PhpHome提供了单网页管理功能,因此可以轻松地在线创建出公司简介、业务范围、联系方式等一般性公司站点内容,还可以创建公司新闻、技术资料、产品帮助。    功能介绍   1、全站生成html(可选)     可减轻服务器负载,提高访问速度,更容易被搜索引擎收录,是大中型站点的必然选择。    2、多管理员     可自由划分权限,多人共同维护一个站点    3、频道以文章和下载为基础无限添加,栏目无限级分类(当然是理论上的)     栏目自由分类可满足各种不同的需求。    4、多模板多风格     不同的栏目可以使用不同的模板和风格,可满足各类型站点需求。    5、超强可视化在线编辑器     采用html在线编辑器,具备frontpage和dreamweaver的绝大部分常用功能,可自动保存远程图片、给图片加水印、自动生成缩略图。    6、标签自由调用(后台设置标签参数并可即时预览,另支持自定义标签)     可以后台设置标签参数,设置完了可以即时预览,满意后保存标签配置,然后就可以得到一个标签,再把标签复制粘贴到网站模板的任意位置即可显示想要的内容。 目前支持 : 文章列表(任意调用文章列表,可设置各种参数,支持多列,支持分页)图片文章(以标题+图片+简介方式任意调用图片文章,支持多列,支持分页)幻灯片效果图片文章(支持图片文章以幻灯片效果显示的调用)文章专题(任意调用专题列表)下在列表(任意调用下载列表,可设置各种参数,支持多列,支持分页)下载图片(以标题+图片+简介方式任意调用图片下载,支持多列,支持分页)下载专题(任意调用专题列表)栏目调用(可任意调用当前栏目以下的2级子栏目,如采用树型菜单则可调用当前栏目下所有子栏目的树型菜单)公告调用(任意调用,可横排、竖排,可滚动)友情链接(任意调用,同时支持logo和文字方式显示,支持多列,横排竖排均可)投票调用    7、会员功能     PhpHome支持会员分组,并可设置下载类频道的软件的下载权限。    8、文章采集,软件采集     PhpHome自身带采集功能,不敢说功能强大,但却够用。    9、可扩展性    PhpHome提供插件开发规范,你可以轻松地进行二次开发补充功能。目前PhpHome已经提供以下功能插件:公告管理、友情链接、数据库管理、JS文件管理、模板风格管理、投票管理、留言管理、单网页管理、广告管理、关联链接设置、字符过滤设置   环境要求:   Unix/Linux/Windows NT(2000/2003)等各种操作系统,PHP 4.2.0 及以上。]]>

紫雨轩 FTP Web浏览※搜索引擎

**A.数据安装:在mysql中创建数据库,使用脚本ftpse-mysql.txt.(mysql 4.1以上使用ftpse-mysql-new.txt)可以通过phpmyadmin或者mysql管理程序来创建. ***B.Web程序安装: 1。打开ftpseconfig.php修改 数据参数设置。 2. 将文件(index.php,ftpseconfig.php, ftp目录)上传到 Web服务器。注:index.php 按二进制方式上传。php需要支持 mysql 和 zend。 3. 在浏览器中打开index.php即可。 ***C.安装引擎程序. ]]>

MD5 的 JavaScript 实现

完整代码: PHP 代码: /* MD5 Message-Digest Algorithm - JavaScriptMODIFICATION HISTORY:1.0 16-Feb-2001 - Phil Fresle (<A href="mailto:sales@frez.co.uk">sales@frez.co.u</A>) - Initial Version (VB/ASP code)1.0 21-Feb-2001 - Enrico Mosanghini (<A href="mailto:erik504@yahoo.com">erik504@yahoo.com</A>) - JavaScript porting*/function MD5(sMessage) {    function RotateLeft(lValue, iShiftBits) { return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits)); }        function AddUnsigned(lX,lY) {        var lX4,lY4,lX8,lY8,lResult;        lX8 = (lX & 0×80000000);        lY8 = (lY & 0×80000000);        lX4 = (lX & 0×40000000);        lY4 = (lY & 0×40000000);        lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);        if (lX4 & lY4) return (lResult ^ 0×80000000 ^ lX8 ^ lY8);        if (lX4 | lY4) {            if (lResult & 0×40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);            else return (lResult ^ 0×40000000 ^ lX8 ^ lY8);        }        else return (lResult ^ lX8 ^ lY8);    }    function F(x,y,z) { return (x & y) | ((~x) & z); }    function G(x,y,z) { return (x & z) | (y & (~z)); }    function H(x,y,z) { return (x ^ y ^ z); }    function I(x,y,z) { return (y ^ (x | (~z))); }        function FF(a,b,c,d,x,s,ac) {        a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));        return AddUnsigned(RotateLeft(a, s), b);    }        function GG(a,b,c,d,x,s,ac) {        a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));        return AddUnsigned(RotateLeft(a, s), b);    }        function HH(a,b,c,d,x,s,ac) {        a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));        return AddUnsigned(RotateLeft(a, s), b);    }        function II(a,b,c,d,x,s,ac) {        a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));        return AddUnsigned(RotateLeft(a, s), b);    }        function ConvertToWordArray(sMessage) {        var lWordCount;        var lMessageLength = sMessage.length;        var lNumberOfWords_temp1=lMessageLength + 8;        var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/ 64;        var lNumberOfWords = (lNumberOfWords_temp2+1)*16;        var lWordArray=Array(lNumberOfWords-1);        var lBytePosition = 0;        var lByteCount = 0;        while ( lByteCount < lMessageLength ) {            lWordCount = (lByteCount-(lByteCount % 4))/4;            lBytePosition = (lByteCount % 4)*8;            lWordArray[lWordCount] = (lWordArray[lWordCount] | (sMessage.charCodeAt(lByteCount) << lBytePosition));            lByteCount++;        }        lWordCount = (lByteCount-(lByteCount % 4))/4;        lBytePosition = (lByteCount % 4)*8;        lWordArray[lWordCount] = lWordArray[lWordCount] | (0×80<<lBytePosition);        lWordArray[lNumberOfWords-2] = lMessageLength<<3;        lWordArray[lNumberOfWords-1] = lMessageLength>>>29;        return lWordArray;    }        function WordToHex(lValue) {        var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;        for (lCount = 0;lCount<=3;lCount++) {            lByte = (lValue>>>(lCount*8)) & 255;            WordToHexValue_temp = "0" + lByte.toString(16);            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);        }        return WordToHexValue;    }    var  x=Array();    var k,AA,BB,CC,DD,a,b,c,d    var S11=7, S12=12, S13=17, S14=22;    var S21=5, S22=9 , S23=14, S24=20;    var S31=4, S32=11, S33=16, S34=23;    var S41=6, S42=10, S43=15, S44=21;    // Steps 1 and 2. Append padding bits and length and convert to words    x = ConvertToWordArray(sMessage);    // Step 3. Initialise    a = 0×67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0×10325476;    // Step 4. Process the message in 16-word blocks    for (k=0;k<x.length;k+=16) {        AA=a; BB=b; CC=c; DD=d;        a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);        d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);        c=FF(c,d,a,b,x[k+2], S13,0x242070DB);        b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);        a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);        d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);        c=FF(c,d,a,b,x[k+6], S13,0xA8304613);        b=FF(b,c,d,a,x[k+7], S14,0xFD469501);        a=FF(a,b,c,d,x[k+8], S11,0x698098D8);        d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);        c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);        b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);        a=FF(a,b,c,d,x[k+12],S11,0x6B901122);        d=FF(d,a,b,c,x[k+13],S12,0xFD987193);        c=FF(c,d,a,b,x[k+14],S13,0xA679438E);        b=FF(b,c,d,a,x[k+15],S14,0x49B40821);        a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);        d=GG(d,a,b,c,x[k+6], S22,0xC040B340);        c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);        b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);        a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);        d=GG(d,a,b,c,x[k+10],S22,0×2441453);        c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);        b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);        a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);        d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);        c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);        b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);        a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);        d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);        c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);        b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);        a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);        d=HH(d,a,b,c,x[k+8], S32,0x8771F681);        c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);        b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);        a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);        d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);        c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);        b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);        a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);        d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);        c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);        b=HH(b,c,d,a,x[k+6], S34,0x4881D05);        a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);        d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);        c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);        b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);        a=II(]]>

CSS尺寸对照表

Points Pixels Ems Percent 6pt 8px 0.5em 50% 7pt 9px 0.55em 55% 7.5pt 10px 0.625em 62.5% 8pt 11px 0.7em 70% 9pt 12px 0.75em 75% 10pt 13px 0.8em 80% 10.5pt 14px 0.875em 87.5% 11pt 15px 0.95em 95% 12pt 16px 1em 100% 13pt 17px 1.05em 105% 13.5pt 18px 1.125em 112.5% 14pt 19px 1.2em 120% 14.5pt 20px 1.25em [...]

Windows虚拟主机安全配置与优化

  OS:Win2k Advancd Server  ftp server:Serv-u 6.1  www server: IIS  mail server: WebEasyMail 3.5.3.1 企业版  防火墙:天网防火墙个人版  杀毒软件:McAfee VirusScan Enterprise 8.0.i版  远程管理软件:Terminal Services终端服务   下面我来说一下从安装系统、安装服务器应用程序、安全设置和优化的过程。   1.硬盘分区和安装系统  关于分区我强烈建议大家选择NTFS文件格式,不仅NTFS文件系统可以给我们带来很高的安全性,而且对于做WEB服务的虚拟主机来说磁盘配额很最要.还有文件和文件夹的压缩都给我们这些系统管理员提供了很高便利性。   在分区之前和大家说一下,一定要合理的设置分区。合理的分区不仅可以给我们带来工作的方便,还可以提高系统的安全和稳定性。我的硬盘一共分了5个区(120G)。   C盘用来装操作系统的文件。D盘用来存储各个WEB站点的文件。E盘用来保存IIS日志文件、Internet临时文件夹和页面文件。F盘用来装应用程序。就是说所有的应用程序都安装在F盘里。G盘用来保存备份文件和一些常用的工具。大家可以根据自己的情况合理的设置分区,而不必一一对应。下面就是安装系统了,在安装系统的时候组件的选择一定要仅仅安装自己需要的组件,而一些用不到的组件我们不要安装。那些用不到的组件会给我们带来一些意想不到的“惊喜”。在安装IIS的时候把FrontPage2000服务器扩展、Ineternet服务管理器(HTML)、NNTP Server、SMTP Server、文件传输协议(FTP)服务器的复选框去掉。以保证这些用不到的服务不会给我们带来安全隐患。   把Internet临时文件夹移动到非系统分区中,如我的设置是E盘: Internet Explorer-右击-属性-Ineternet临时文件-设置-移动文件夹,选择相应的分区。把虚拟内存页面文件移动到到非系统分区中,,如我的设置是E盘:我的电脑-右击-属性-高级选项卡-性能选项-更改,设置初始大小和最大值,重启计算机。注意:以上两项操作都必需重启后生效。   2.为用户提供正常的服务。   在D盘里面为各个WEB站点建立相应的文件夹,以保证各个站点的文件存储在相应的文件夹中。在IIS里面建立相应的WEB站点、设置和相应的主机头、主目录、端口、IP地址。对应的在Serv-u里面建立相应的用户,以指向各自的WEB文件夹中,以便日后维护上传、下载的需要。在WebEasyMail里面设置相应的各个域的邮件用户、和容量等。关于服务器软件的安装问题,请您自己参考相应的文章。   3.服务的配置   在Windows里面有很多服务,这些服务都是为了不同的需求而提供的。在这里我们要根据自己的环境来配置服务,禁用那些不要的服务.老生常谈的一句话:"最少的服务+最小权限=最大的安全".   禁用那些用不到的服务:Alerter、ClipBook、Computer Browser、 Distributed File System、Indexing Service、Internet Connection Sharing、Messenger、NetMeeting Remote Desktop Sharing、Print Spooler、Remote Registry Service、Smart Card、Task Scheduler、TCP/IP NetBIOS Helper Service、Telnet、Windows Time、Workstation.关于为什么禁用Workstation服务我会在下面说到。   4.端口的配置   下面我来说一下怎样关闭常见的危险端口和一些无用的共享,如:默认共享。   在本地连接-属性中,把"Microsoft网络的文件和打印机共享"卸载掉。在选定的组件中之留下TCP/IP协议和Microsoft网络客户端.大家可能会说为什么要留Microsoft网络客户端,根据前几天的调试,如果不装它的话,重新启动IIS的时候会提示“服务不能启动,无法验证的服务”。选中TCP/IP协议-属性-高级-WINS-禁用TCP/IP上的Netbios选项。   把HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI,Timeout双字节值改为0 。建议大家设为0.这个键值对玩游戏有用,做虚拟主机我们用不到。  把HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa项下的数值restrictanonymous,由0改为1。  在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters项下新建双字节值AutoShareServer值为0。  在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters项下新建双字节值SMBDeviceEnabled值为0。   在防火墙中添加IP规则,允许21、25、80、110。禁止135端口。最后启动禁止所有别的端口的通过。   我们也可以通过系统自带的本地安全策略和TCP/IP筛选来设置相应打开和关闭的端口。 [...]