November 11, 2008
char和varchar2的区别
"\u003cp\u003e区别:\n1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc”,对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。\n2.CHAR的效率比VARCHAR2的效率稍高。\n3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。\u003c/p\u003e\n\u003cp\u003e何时该用CHAR,何时该用varchar2?\n CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.\nVARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在 …\u003c/p\u003e"
November 11, 2008
用PHP调用Oracle存储过程
"\u003cp\u003e PHP程序访问数据库,完全可以使用存储过程,有人认为使用存储过程便于维护,不过仁者见仁,智者见智,在这个问题上,偶认为使用存储过程意味着必须要DBA和开发人员更紧密配合,如果其中一方更变,则显然难以维护。\u003c/p\u003e\n\u003cp\u003e 但是使用存储过程至少有两个最明显的优点:速度和效率。使用存储过程的速度显然更快。\n 在效率上,如果应用一次需要做一系列SQL操作,则需要往返于PHP与ORACLE,不如把该应用直接放到数据库方以减少往返次数,增加效率。\n但是在INTERNET应用上,速度是极度重要的,所以很有必要使用存储过程。\n偶也是使用PHP调用存储过程不久,做了下面这个列子。\u003c/p\u003e\n\u003cp\u003e代码:-\u003c/p\u003e\n\u003cp\u003e//建立一个TEST表\nCREATE TABLE TEST (\n ID NUMBER(16) NOT NULL,\n NAME VARCHAR2(30) NOT NULL,\n PRIMARY KEY (ID)\n);\u003c/p\u003e\n\u003cp\u003e//插入一条数据\nINSERT INTO TEST VALUES (5, ‘PHP_BOOK’);\u003c/p\u003e\n\u003cp\u003e//建立一个存储过程\nCREATE OR …\u003c/p\u003e"
November 11, 2008
apache 中控制虚拟主机的php功能
"\u003cp\u003e使用情况分以下两种:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一,在httpd.conf中配置了全局使用php脚本,则使用下面的方法\u003c/strong\u003e\n在虚拟主机的设置小节中添加php_flag engine on/off 字串7\u003c/p\u003e\n\u003cp\u003e如: 字串9\nServerName xxxxxx.com\nphp_flag engine off\nserveralias \u003ca href=\"https://www.xxxxxx.com\"\u003ewww.xxxxxx.com\u003c/a\u003e\nServerAdmin \u003ca href=\"mailto:[email protected]\"\[email protected]\u003c/a\u003e\nDocumentRoot “/home/xxxxxx/htdocs”\nhaohtml.com\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e二.没有在httpd.conf中配置执行php脚本功能\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e在虚拟主机配置中这样改:\u003c/p\u003e\n\u003cp\u003e 把 AddType application/x-httpd-php .php 这句话放到需要运行php的虚拟主机的配置中\u003c/p\u003e\n\u003cp\u003e #这个虚拟主机不能运行php\u003c/p\u003e\n\u003cp\u003e ServerAdmin \u003ca href=\"mailto:[email protected]\"\[email protected]\u003c/a\u003e\n DocumentRoot d:/www.haohtml.com/\n ServerName \u003ca href=\"http://www.haohtml.com/\"\u003ewww.haohtml.com\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e # …\u003c/p\u003e"
November 11, 2008
如何在Oracle 中实现类似自动增加 ID 的功能?
"\u003cp\u003e我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在ORACLE 中没有这样的 功能,我们\u003c/p\u003e\n\u003cp\u003e可以通过采取以下的功能实现自动增加ID的功能\u003c/p\u003e\n\u003cp\u003e 1.首先创建 sequence\u003c/p\u003e\n\u003cp\u003e create sequence seqmax increment by 1\u003c/p\u003e\n\u003cp\u003e 2.使用方法\u003c/p\u003e\n\u003cp\u003e select seqmax.nextval ID from dual\u003c/p\u003e\n\u003cp\u003e 就得到了一个ID\u003c/p\u003e\n\u003cp\u003e 如果把这个语句放在 触发器中,就可以实现 和 ms sql 的自动增加ID相同的功能!\u003c/p\u003e"
November 7, 2008
搭建一个大型网站架构的实验环境(Squid缓存服务器篇)
"\u003cp\u003e六、squid缓存服务器的配置\nsquid缓存服务器在这个实验环境中有两台(192.168.10.30,192.168.10.31)做成squid集群,我们首先安装一台,然后复制一台,再做配置,这样省事,哈!\nsquid01服务器网络配置\n# ee /etc/rc.conf\nifconfig_lnc0=”inet 192.168.10.30 netmask 255.255.255.0″\ndefaultrouter=”192.168.10.10″\nhostname=”squid01.rd.bj”\u003c/p\u003e\n\u003cp\u003e# ee /etc/hosts\n192.168.10.30 squid01.rd.bj # ee /etc/resolv.conf\nnameserver 192.168.10.40\u003c/p\u003e\n\u003cp\u003e网络配置好后,我们开始安装squid,先把的藏身处找到:\n# whereis squid30\nsquid30: /usr/ports/www/squid30\n# cd /usr/ports/www/squid30\n# make config #配置安装选项\n\u003ca href=\"/wp-content/uploads/2008/11/a.jpg\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/y1p7KaqJhsBYWiIJs9vizLd9gLTa-9GQEXfT3JxNOiO-0JPTQFirWsqM_NWAtZWWSHEZgzHqyfFbJTSm5zK4psu5pLQ42U6Kuiz.jpeg\" alt=\"sq_1\"\u003e\u003c/a\u003e\n# make showconfig # …\u003c/p\u003e"
November 6, 2008
右键“新建”菜单中没有“文本文档”的解决方法
"\u003cp\u003e 这是我遇到的问题,费了一番麻烦才搞定。开始很多人提供的直接修改注册表的方法没用,用windows优化大师、超级兔子也不行,今天找到解决方法了。\u003c/p\u003e\n\u003cp\u003e 把以下内容存入记事本:\u003c/p\u003e\n\u003cp\u003eWindows Registry Editor Version 5.00\u003c/p\u003e\n\u003cp\u003e[HKEY_CLASSES_ROOT.txt]\n@=”txtfile”\n“Content Type”=”text/plain”\u003c/p\u003e\n\u003cp\u003e[HKEY_CLASSES_ROOT.txt\\ShellNew]\n“NullFile”=””\u003c/p\u003e\n\u003cp\u003e[HKEY_CLASSES_ROOT\\txtfile]\n@=”文本文档”\u003c/p\u003e\n\u003cp\u003e[HKEY_CLASSES_ROOT\\txtfile\\shell]\u003c/p\u003e\n\u003cp\u003e[HKEY_CLASSES_ROOT\\txtfile\\shell\\open]\u003c/p\u003e\n\u003cp\u003e[HKEY_CLASSES_ROOT\\txtfile\\shell\\open\\command]\n@=”NOTEPAD.EXE %1″\u003c/p\u003e\n\u003cp\u003e然后保存好,修改后缀名,把.TXT改成.REG。双击导入到注册表中,就可以了。\u003c/p\u003e"
November 4, 2008
JavaScript isNaN() 函数
"\u003ch2 id=\"义和用法\"\u003e义和用法\u003c/h2\u003e\n\u003cp\u003eisNaN() 函数用于检查其参数是否是非数字值。\u003c/p\u003e\n\u003ch3 id=\"语法\"\u003e语法\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eisNaN(x)\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e参数\u003c/p\u003e\n\u003cp\u003e描述\u003c/p\u003e\n\u003cp\u003ex\u003c/p\u003e\n\u003cp\u003e必需。要检测的值。\u003c/p\u003e\n\u003ch3 id=\"返回值\"\u003e返回值\u003c/h3\u003e\n\u003cp\u003e如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。\u003c/p\u003e\n\u003ch3 id=\"说明\"\u003e说明\u003c/h3\u003e\n\u003cp\u003eisNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。\u003c/p\u003e\n\u003cp\u003e如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。\u003c/p\u003e\n\u003ch2 id=\"提示和注释\"\u003e提示和注释\u003c/h2\u003e\n\u003cp\u003e提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。\u003c/p\u003e\n\u003ch2 id=\"实例\"\u003e实例\u003c/h2\u003e\n\u003cp\u003e在本例中,我们将使用 isFinite() 在检测无穷数:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt;\n\ndocument.write(isFinite(123)) …\u003c/code\u003e\u003c/pre\u003e"
November 4, 2008
JavaScript push() 方法
"\u003ch2 id=\"定义和用法\"\u003e定义和用法\u003c/h2\u003e\n\u003cp\u003epush() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。\u003c/p\u003e\n\u003ch3 id=\"语法\"\u003e语法\u003c/h3\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003earrayObject.push(newelement1,newelement2,....,newelementX)\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e参数\u003c/p\u003e\n\u003cp\u003e描述\u003c/p\u003e\n\u003cp\u003enewelement1\u003c/p\u003e\n\u003cp\u003e必需。要添加到数组的第一个元素。\u003c/p\u003e\n\u003cp\u003enewelement2\u003c/p\u003e\n\u003cp\u003e可选。要添加到数组的第二个元素。\u003c/p\u003e\n\u003cp\u003enewelementX\u003c/p\u003e\n\u003cp\u003e可选。可添加多个元素。\u003c/p\u003e\n\u003ch3 id=\"返回值\"\u003e返回值\u003c/h3\u003e\n\u003cp\u003e把指定的值添加到数组后的新长度。\u003c/p\u003e\n\u003ch3 id=\"说明\"\u003e说明\u003c/h3\u003e\n\u003cp\u003epush() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。\u003c/p\u003e\n\u003ch2 id=\"提示和注释\"\u003e提示和注释\u003c/h2\u003e\n\u003cp\u003e注释:该方法会改变数组的长度。\u003c/p\u003e\n\u003cp\u003e提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。\u003c/p\u003e\n\u003ch2 id=\"实例\"\u003e实例\u003c/h2\u003e\n\u003cp\u003e在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt;\n\nvar arr = new Array(3)\narr[0] = …\u003c/code\u003e\u003c/pre\u003e"
November 2, 2008
Ubuntu下设置常见网络服务指南
"\u003cp\u003e基本DNS服务\u003c/p\u003e\n\u003cp\u003e主域名服务设置\u003c/p\u003e\n\u003cp\u003e从域名服务设置\u003c/p\u003e\n\u003cp\u003e缓存域名服务设置\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://forum.ubuntu.org.cn/viewtopic.php?t=3110\"\u003ehttp://forum.ubuntu.org.cn/viewtopic.php?t=3110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e高级DNS服务\u003c/p\u003e\n\u003cp\u003e多重DNS解析服务(DNS服务器上相同域名根据内外网的不同解析成不同的IP地址) \u003ca href=\"http://forum.ubuntu.org.cn/viewtopic.php?t=453\"\u003ehttp://forum.ubuntu.org.cn/viewtopic.php?t=453\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e基本邮件服务\u003c/p\u003e\n\u003cp\u003e高级邮件服务\u003c/p\u003e\n\u003cp\u003e防垃圾邮件服务\u003c/p\u003e\n\u003cp\u003e安全邮件网关服务(防黑防毒)\u003c/p\u003e\n\u003cp\u003e具有Web操作界面\u003c/p\u003e\n\u003cp\u003e基本Web服务\u003c/p\u003e\n\u003cp\u003eApache2: \u003ca href=\"http://forum.ubuntu.org.cn/viewtopic.php?t=2143\"\u003ehttp://forum.ubuntu.org.cn/viewtopic.php?t=2143\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eZope/Plone: \u003ca href=\"http://forum.ubuntu.org.cn/viewtopic.php?t=5828\"\u003ehttp://forum.ubuntu.org.cn/viewtopic.php?t=5828\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e高级Web服务\u003c/p\u003e\n\u003cp\u003e虚拟域名服务 \u003ca href=\"http://forum.ubuntu.org.cn/viewtopic.php?t=10344\"\u003ehttp://forum.ubuntu.org.cn/viewtopic.php?t=10344\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChroot环境设立 \u003ca href=\"http://forum.ubuntu.org.cn/viewtopic.php?t=2144\"\u003ehttp://forum.ubuntu.org.cn/viewtopic.php?t=2144\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePHP …\u003c/p\u003e"
November 2, 2008
让iframe失效,使自己的网站不怕iframe挂马
"\u003cp\u003e\u003cstrong\u003e方法一:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e"FSO功能:"-”关闭站点Fso功能”.将站点的fso功能关闭掉.这样子基本上就可以杜绝目前的asp木马.如果需要上传附件的话.可以通过”SAFileUp”.”aspupload”.等组件进行上传.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e方法二:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e辛辛苦苦做的网站突然被挂马,究其原因是因为网页带病毒,打开代码发现所有的页面的代码最后一行都多了一句:\u003c/p\u003e\n\u003cp\u003e引用内容\u003c/p\u003e\n\u003cp\u003e\u0026lt; IFRAME src=”http://www.xxx.xxx “\u0026gt;\u0026lt; /IFRAME \u0026gt;\u003c/p\u003e\n\u003cp\u003e打开引用页面一看防病毒软件一顿乱响,找到元凶了这可怎办?\u003c/p\u003e\n\u003cp\u003e最后一行怎么弄都不行?!!\u003c/p\u003e\n\u003cp\u003e其实很简单我们只需要在 \u0026lt; STYLE \u0026gt;\u0026lt; / STYLE \u0026gt; 之间加上一句\u003c/p\u003e\n\u003cp\u003e完整如下:\u003c/p\u003e\n\u003cp\u003e程序代码\u003c/p\u003e\n\u003cp\u003e就可以了其实这是用了CSS样式表来对网页中所有的FRAME对象进行”洗脑”把iframe中的src属性的值换成空白页这样加进去的iFRAME 代码就不起作用了。\u003c/p\u003e\n\u003cp\u003e这个解决方案除了IFRAME里面的JS代码alert方法不能屏蔽之外,其他任意JS都可以不起作用。\u003c/p\u003e\n\u003cp\u003e如果要使自己的IFRAME显示在网页里,别人挂的IFRAME马都不起作 …\u003c/p\u003e"
October 30, 2008
Freebsd常用命令
"\u003cpre tabindex=\"0\"\u003e\u003ccode\u003evi sshd_config\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# rar a all *.jpg\n这条命令是将任何.jpg的文档压缩成一个rar包,名为all.rar,该程式会将.rar 扩展名将自动附加到包名后。\n# unrar x all.rar\n这条命令是将all.rar中的任何文档解压出来\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eunrar x参数是指定用绝对路径解压缩文件,解压缩出来的路径和压缩文件里面的路径相同!\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e重启 SSHD 服务usr/ports/archivers/rar\n\nmake install clean\n\n#cd /usr/ports/archivers/unrar\n\n#make install clean\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e命令 /etc/rc.c/sshd restart\n光区挂载命令 mount /cdrom 卸载 UMOUNT /CDROM\n/usr/local/mysql/bin/mysqld_safe --user=mysql \u0026amp; mysql 启动命令\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e很多人都不知道freebsd下如何重启mysql.现在我把命令放到下面,希望对大家有些帮忙。\n/usr/local/etc/rc.d/mysql-server …\u003c/code\u003e\u003c/pre\u003e"
October 30, 2008
freebsd 添加、删除用户!
"\u003cp\u003e\u003cstrong\u003e2、更改用户登陆shell\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e默认安装是使用sh登陆的,sh不支持TAB键\n要切换到csh,直接运行csh即可\u003c/p\u003e\n\u003cp\u003e如果需要一劳永逸,那么用下面这个命令\nname:是指你登陆的名称\npw usermod -n name -s csh\u003c/p\u003e\n\u003cp\u003e======================================\n添加用户\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e# pw groupadd vsftpd –g 1001\n# pw useradd test –g 1001–d /home/test –s /sbin/nologin\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e或者\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e#adduser\u003c/strong\u003e\nUsername:用户名\nFull name:全名\nUid (Leave empty for default) :要求输入UID值。通常按Enter即可。\nLogin group [xxxx]:要求输入用户的所属群组。可以输入一个现有的群组,如果保持空白,系统会新建一个与用户名一样的群组。\nLogin class:登入等級。通常按Enter即可。\nShell (sh csh tcsh zsh ksh bash nologin) [sh]:用户使用的shell,通常按Enter即可。 …\u003c/p\u003e"
October 30, 2008
一语双关的幽默句子
"\u003cp\u003e英语中有好多一语双关的幽默句子,现在为大家摘录一些常用幽默迷你句型,以供参考,据说是流传甚广的加菲猫语录哦。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eMoney is not everything. There’s Mastercard and Visa.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e钞票不是万能的,毕竟有时还需要信用卡。\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003eOne should love animals. They are so tasty.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e每个人都应该热爱动物,因为它们很好吃。\u003c/p\u003e\n\u003col start=\"3\"\u003e\n\u003cli\u003eSave water. Shower with your girlfriend.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e要节约用水,所以尽量和女友一起洗澡。\u003c/p\u003e\n\u003col start=\"4\"\u003e\n\u003cli\u003eLove the neighbor. But don’t get caught.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e要用心去爱你的邻居,不过不要让她的老公知道。\u003c/p\u003e\n\u003col start=\"5\"\u003e\n\u003cli\u003eBehind every successful man, there is a woman. And behind every unsuccessful man, there are two or more.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e每个成功男人的背后,都有一个女人。每个不成功男人的背后,都有两个或更多。\u003c/p\u003e\n\u003col start=\"6\"\u003e\n\u003cli\u003eEvery man should marry. After …\u003c/li\u003e\u003c/ol\u003e"
October 29, 2008
500 OOPS: vsftpd: refusing to run with writable anonymous root
"\u003cp\u003e\u003cstrong\u003e500 OOPS: vsftpd: refusing to run with writable anonymous root\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e如果我们已经把vsFTPd服务器启动好了,但登录测试是会出现类似下面的提示;\u003c/p\u003e\n\u003cp\u003e500 OOPS: vsftpd: refusing to run with writable anonymous root\u003c/p\u003e\n\u003cp\u003e这表示ftp用户的家目录的权限不对,应该改过才对;\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e[root@localhost ~]# more /etc/passwd |grep ftp\u0026lt;br /\u0026gt; ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e我们发现ftp用户的家目录在/var/ftp,就是这个/var/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了chmod 777 /var/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个;\u003c/p\u003e\n\u003cp\u003e如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e[root@localhost ~]# ls -ld /var/ftp\u0026lt;br /\u0026gt; …\u003c/code\u003e\u003c/p\u003e"