◆◆◆◆重新设定cookies保存日期时就出错,怎么回事???

ok1996 2005-06-20 11:35:49
一开始我保存了一个COOKIES
response.cookies("user_name")="aa"
response.cookies("user_name").expires=date+1
这时cookies能保存一天


之后,我再在另一个页面
response.cookies("user_name")="bb"
response.cookies("user_name").expires=date+1

此时就出错,显示页面不能显示
如果把response.cookies("user_name").expires=date+1
去掉,即一关闭浏览器cookies就没了,,怎么回事???
修改cookies的值之后如何再设定保存时间???
...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangwm 2005-06-20
  • 打赏
  • 举报
回复
应该不会吧,我的也是这么用的,没有出错啊
ok1996 2005-06-20
  • 打赏
  • 举报
回复
大家帮下忙。。。
计算机应用技术 实用手册 Xnllz 2011.7.29 目录 第一章COMS的设置 1 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期间、软硬盘规格、工作类类型。 3 2.BIOS能功设定 5 3.Advanced Chipset Features(芯片组设定) 6 4.Integrated Peripherals(集成设备设定) 8 5.PNP/PCI Configurations 即插即用与PCI设备设定,一般为默认。 9 6.POwer Management Features(电源管理模式设定) 9 7.Frequency/voltage control 超频控制 11 8.LOAD FAIL——Save defaults 恢复出厂设置 11 第二章 分区软件的应用 12 1.PQ魔术分区:首先用GHOST安装光盘引导起计算机,选择PQ分区进入工作界面。 12 2.DM分区的应用:首先用GHOST安装光盘引导起计算机,选择DM分区进入工作界面。 16 第三章 CMOS密码的清出与系统密码的清出 23 1、跳线短接法 23 2、下电池短接 23 二.系统密码清除,把CMOS第一引导设为光驱引导,用GHOST安装光盘起动,选择系统登录密码破解按回车进入 24 第四章 局域网组建 24 1.常用网络命令: 25 2.网线的制作: 27 3.局域IP地址配置: 27 4.采用TP-LINK路由器连接上网: 27 第五章 系统常用命令及格式转换 30 1.Msconfig 系统的关闭起动项命 30 2.Dxdiag系统信息查看命令 30 3.Gpedit.msc计算机管理命令 31 4.格式之间的转换,使用winavi进行转换 32 5.常用的快捷键,使用快捷可以帮助我节约间。 33 6.开机常按F8可以进入安全模式或是带DOS命令的安全模式。 33 第六章GHOST的备份与恢复 34 第七章 综合应用 44 一.文件的后缀名, *号任意的文件名 44 二.内存出错或是系统出错引起蓝屏 48 三.本机病毒删除不了,解决方法是把硬盘拆下来换到别台主机上进行杀毒,要求挂上去的主机要采用正版杀毒软件,升过级的才可以 49 四.识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开。每一盘都有工具这个选项,如下图所示: 49 五.常用DOS命令 60 第一章COMS的设置 开机画面现在有两种,一种为AMI公司开发的,一种为Phoenix-award两家公司合并共同开发的;下面这张图为Phoenix-award开机自画面: Phoenix-award workstation BIOS V6.00PC,An Energy star Ally copyright(c) 1984-2003,Phoenix Technologies,LTD 这句英语的意思是:Phoenix-award这两家COMS芯片开发公司合并后共同开发第6号BIOS版本,采用美国电工电器省电标准,Phoenix技术有限公司,版权1984-2003 RS482-M 03/16/2006 FOR Tongfang 清华同方电脑公司选用的BIOS芯片代号为RS482-M 日期为2006年3月16号 Main Processor : AMD Athlon™64 x2 dual core Processor 3600+ CPU为AMD3600+ 速龙64位双核酷睿技术 Memory Testing: 524288k ok with 32M shared memory 内存为512兆 32兆的二级缓存 IDE Channel 0 master : None IDE Channel 0 Slave : None IDE Channel 1 master : HL-DT-STDVD-ROM GDR8164B 0L06 IDE Channel 1 Slave : None IDE Channel 2 master : WDC WD800BD-00LRA0 06.01D06 IDE Channel 2 Slave : None IDE 1号接口检测到光驱,IDE 2号接口检测到希捷硬盘为80GB,其它为NONE表示检测没有设备连接到接口上。 Warning!! Now system is in safe mode. Please re-setting CPU frequency in CMOS setup. 警告:现在系统处在安全模式,从新进入CMOS 进行设置。 CMOS checksun error-del anlts loaded 或是CMOS检查出错。 出现上面两种错是CMOS电池没电了.解决方法:打开机箱,把主板上的一节纽扣电池取出,换上一节新的既可,或是CMOS被放电了,从新进入CMOS设置保存并退出就可解决此问题。 Press F1 tocontinue ,DEL to enter SETUP 按F1可以继续启动,按DEL进入CMOS 下面这张图为AMI公司开发的BIOS界面: AMI BIOS (C) 2006 American megatrends,INC.ASUS P5B-Delusxe ACPI BIOS Revision 0507 CPU: INTEL(R) CORE(TM)2 CPU 6400 @ 2.13GHz Speed :4.01GHz Count :2 AMI公司2006年开发的BIOS版本信息,华硕主板采用的CMOS并修正了 0507芯片,CPU 为 英特尔 酷睿技术双核 型号为6400 主频为2.13GHz,总共处理速度为4.01GHz Press DEL TO run Setup 按del进入CMOS Press f8 for bbs popup 按F8弹出BBS网页 Press ALT+F2 to boot from system Recovery 按ALT+F2进入根录进行设置 PC2-4300 Dual Channel interleaved 双通道技术 Initializing usb Controllers..done 装载USB控制 2048MB OK 内存为2GB 开启计算机或重新启动计算机后,听见自检通过的声音后,按 “Del”键就可以进入CMOS的设置界面;要注意的是,如果按得太晚,计算机将会启动系统,这只有重新启动计算机了。大家可在开机后立刻按DEL键直到进入CMOS。进入后,你可以用方向键移动光标选择CMOS设置界面上的选项,然后按Enter进入副选单,用ESC键来返回上一级菜单,用PAGE UP和PAGE DOWN键来选择具体选项,F10键保留并退出BIOS设置。 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期间、软硬盘规格、工作类类型。 列表中存在PRIMARY MASTER 第一组IDE主设备;PRIMARY SLAVE 第一组IDE从设备;SECONDARY MASTER 第二组IDE主设备;SECONDARY SLAVE 第二组IDE从设备。这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接两个不同的设备,主、从设备可以通过硬盘或者光驱的后部跳线来调整。 后面是IDE设备的类型和硬件参数,TYPE用来说明硬盘设备的类型,我们可以选择AUTO、USER、NONE的工作模式,AUTO是由系统自己检测硬盘类型,在系统中存储了1-45类硬盘参数,在使用该设置值不必再设置其它参数;如果我们使用的硬盘是预定义以外的,那么就应该设置硬盘类型为USER,然后输入硬盘的实际参数(这些参数一般在硬盘的表面标签上);如果没有安装IDE设备,我们可以选择NONE参数,这样可以加快系统的启动速度,在一些特殊操作中,我们也可以通过这样来屏蔽系统对某些硬盘的自动检查。 图中2部分是DRIVE A和DRIVE B软驱设置,如果没有A或B驱动器,那么就设置NONE驱动器。我们可以在这里选择我们的软驱类型,当然了绝大部分情况中我们不必修改这个设置。 右下方还有系统内存的参数:BASE MEMORY:基本内存;extended 扩展内存;other 其它内存;total MEMORY 全部内存。 2.BIOS能功设定 在用光盘安装系统就需要对此部分进设置,第一驱动改为光驱引导(First Boot Device),否则光驱不会引导装系统。 Quick Power On Self Test(快速启动选择): 当设定为[Enabled](启动),这个项目在系统电源开启之后,可加速POST(Power On Self Test)的程序。BIOS会在POST过程当中缩短或是跳过一些检查项目,从而加速启动等待的间! Hard Disk Boot Priority(硬盘引导顺序): 此项目可选择硬盘开机的优先级,按下的按键,你可以进入它的子选单,它会显示出已侦测到可以让您选择开机顺序的硬盘,以用来启动系统。当然,这个选项要在你安装了两块或者两块以上的系统才能选择! HDD Change Message: 当设定为[Enabled](启动),如果你的系统中所安装的硬盘有更动,在POST的开机过程中,屏幕会出现一道提示讯息。 First Boot Device / Second Boot Device / Third Boot Device / Boot Other Device: 在[First Boot Device]、[Second Boot Device]以及[Third Boot Device]的项目当中选择要做为第一、第二以及第三顺序开机的装置。BIOS将会依据你所选择的开机装置,依照顺序来启动操作系统!其中可以选择的设备根据你安装的设备而定! BOOT UP FLOPPY SEEK(开机是否自动检测软驱); BOOT UP NUMLOCK STATUS(开机小键盘区情况设定) SECURITY OPTION(检测密码方式)如设定为SETUP,则每次打开机器屏幕均会提示输入口令(普通用户口令或超级用户口令,普通用户无权修改BIOS设置),不知道口令则无法使用机器;如设定为SYSTEM则只有在用户想进入BIOS设置才提示用户输入超级用户口令。 3.Advanced Chipset Features(芯片组设定) 芯片组设定也是Bios设置里面的一个重点设置,这里就详细说明一下! DRAM Timing Selectable(内存参数设置选项): 这个项目会视内存模块的不同,为接下来四个项目设定最佳的计方式。默认值为「By SPD」。这个默认值会读取SPD (Serial Presence Detect) 装置的内容,并且依据SPD内容设定这四个项目。内存模块上的EEPROM (只读存储器) 储存有关模块的重要参数信息,例如内存类型、大小、速度、电压接口及模块储存区域。 CAS Latency Time: 这个项目可控制DRAM读取指令与数据成为真正可用的间之间的延迟间。较低的CAS周期能减少内存的潜伏周期以提高内存的工作效率。因此只要能够稳定运行操作系统,我们应当尽量把CAS参数调低,从而提高内存的运行速度。反过来,如果内存运行不稳定,可以将此参数设大,以提高内存稳定性。 Act to Precharge Delay: 这个项目控制了给DRAM参数使用之DRAM频率的数值。同理,数值小性能高,但是对内存的质量也要求严格! DRAM RAS# to CAS# Delay: 这个项目可控制DRAM作用指令与读取/写入指令之间的延迟间,有2,3,4几种选择。数值越小,性能越好。 DRAM RAS# Precharge: 这个项目是用来控制当预充电(precharge)指令送到DRAM之后,频率等待启动的等待间。预充电参数越小则内存读写速度就越快。 以上的内存参数设置一般可以不动!让默认的就可以了,但是超频玩者是肯定不会放过任何可以提高性能的东西的,所以如果你想在这里让你的电脑提升一点性能的话,就必须慢慢试验,选择一个适当的参数才能让你的计算机达到性能和稳定的最佳状态! Video BIOS Cacheable(影像快取): 如同系统BIOS的快取功能,启用影像BIOS的快取功能将允许存取影像BIOS自C0000H到C7FFFH具有快取功能,如果快取控制器也被启用。高速缓存的大小愈大,影像效能将会更快速。 Memory Hole At 15M-16M(扩展卡内存分配): 当设定为[Enabled](启动),将会有15M-16M的内存空间预留给特别需要此设定的ISA扩充卡。这会使得内存有15 MB以上的空间无法让系统使用,这个项目请使用系统的默认值。 Delay Prior to Thermal(激活延设置): 此项目可用来选在择温探(Thermal)装置动作之前的延迟间。 AGP Aperture Size(AGP卡槽内存分配设置): 这个项目可指定让AGP装置来使用的系统内存大小,这取用大小是PCI内存地址范围的一部份,可分配给图形内存的空间。 Init Display First: 这个项目可选择当系统开机先行对AGP或是PCI插槽来做初始化的动作。 [AGP]:当系统开机,它将会先对AGP插槽来做初始化的动作。 [PCI Slot]:当系统开机,它将会先对PCI插槽来做初始化的动作。 AGP Data Transfer Rate(AGP速度设置): 这个项目允许你选择AGP装置的数据传输速率,更高的数据传输速率可对您的系统提供更快以及更佳的图形处理能力。请确认您的显示卡可以支持您所选择的模式,一般用默认的就可以。 4.Integrated Peripherals(集成设备设定) 这个是管理计算机的主板集成设备和端口的选项,具体项目因为主板不同,所以其中的设置会有所不同。 OnChip IDE Device: 主板IDE驱动接口控制 OnChip PCI Device 主板PCI接口控制 OnChip USB Controller: 这个选项开启或关闭USB端口。 USB 2.0 Controller: 这个选项开启或关闭USB 2.端口传输模式。 USB Keyboard Support Via: 此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB键盘,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 USB Mouse Support Via: 此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB鼠标,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 AC97 Audio 这个选项开启或关闭集成声卡设备。有候在系统的任务栏你见不到小喇叭有可能在这里被关闭了,即:[DISABLED],遇到这种情况可从新进入COMS把此项打开即可,即:[ENABLED]。 SATA MODE 这个项目是对SATA接口控制,一般为RAID模式,如接上SATA接口的光驱就可改为IDE模式,这样才能正常工作。 VIA ONBOARD LAN主板网卡接口控制,一般为默认即可。 5.PNP/PCI Configurations 即插即用与PCI设备设定,一般为默认。 Resources Controlled By: 这个项目可对所有的开机以及即插即用之兼容装置进行组态的动作。 [Auto]: 系统将会自动地侦测所有的设定。 [Manual]: 在「IRQ Resources」选单中选择特定的IRQ资源。 IRQ Resources: 这个项目可设定各别系统的中断为[PCI Device]或是[Reserved]中之任一者。 PCI/VGA Palette Snoop: 这个项目可决定哪种MPEG ISA/VESA VGA卡可以(或是不能)与PCI/VGA一起运作。 [Enabled]: MPEG ISA/VESA VGA卡可以与PCI/VGA一起运作。 [Disabled]: MPEG ISA/VESA VGA卡不能与PCI/VGA一起运作。 6.POwer Management Features(电源管理模式设定) 选择APM Configuration进入设置界面 选择Hardware monltor进入设置界面 7.Frequency/voltage control 超频控制 超频的前提是主板要支持超频功能,并且CPU的风扇要换散热好的,否则就会烧坏CPU或是主板,此功能要慎用。 CPU HOST CLOCK CONTROL [DISABLED] 一般进入后是关闭的,把DISABLED改为ENABLED就可以改变主频的大小了,即:CPU HOST FREQUENCY(MHZ)[166]把中括号里的数字改变超就可以超频了。频即改变CPU主频的大小。 PCI/AGP Frequency(MHZ)[AUTO] PCI设备与显卡频率的控制。一般为自动。 DRAM COLCK (MHZ)[AUTO] 动态随机读取钟信号,默认为自动。 CPU OVERVOLTAGE CONTROL [AUTO] CPU的额外工作电压,默认为自动。 AGP OVERVOLTAGE CONTROL [AUTO] 显卡的额外工作电压,默认为自动。 DIMM OVERVOLTAGE CONTROL [AUTO] 双列直插内存模块的额外工作电压,默认为自动。 8.LOAD FAIL——Save defaults 恢复出厂设置 在设置一些项后,又不清楚的情况下可,用此项恢复出厂设置恢复到原来出厂的样子。 9.LOAD Optimized defaults 优化设置。 10.SET superisor password CMOS密码设置 11.SET user password 用户密码设置 12.SAVE&EXIT SETUP 保存并退出 每次出了更改设置后都要保存,这样才起作用。 13.QUIT WITHOUT SAVING(Y/N) 退出不保存。 注意:在从起后,显示器上出现 Floppy drive A : ERROR 为A盘引导出错,要求按F1继续;此进入CMOS把DRIVE A:改为 NONE 即可。如果出现:disk boot failure,insert system disk and press enter 种这信息为找不到硬盘或是系统坏掉了;解决办法:先从新装一次系统,如果从装系统问题还是一样,把机箱打开把硬盘的接口从接一个看看,看看线是否接好,是否有松动的地方,如果还是出现的话,把硬盘换到另外一台机子上试一试,这样做的目的是查看硬盘是不是好的,如果以上方法都试过后仍然出现错误提示,那么有很大的可能是硬盘坏了,只有换硬盘了。 第二章 分区软件的应用 现在主流的分区软件有三种,分别是PQ魔术分区、DM分区、FDISK分区;在这里我主要讲PQ和DM分区,FDISK分区在教材上有,在这里我就不多说了。 1.PQ魔术分区:首先用GHOST安装光盘引导起计算机,选择PQ分区进入工作界面。 没有分过区的硬盘在第一次分区是灰色的,如上图所示。在未分配上右击鼠标,点击建立,出现下图所,创建主要分区。 如果装2000版本的系统就采用NTFS格式,大小这一栏要根据硬盘的大小按一定比例划分,如是80G的硬盘,主分区也就是我们所常说的C盘最好分10000MB即10GB。 如果装XP版本的系统就采用FAT32格式,大小这一栏要根据硬盘的大小按一定比例划分 主分区建好后,剩下的硬盘空间全部分为逻辑分区,格式这一栏如果装2000版本的系统就采用NTFS格式,如果装XP版本的系统就采用FAT32格式。大小分配好后点确定。 把主分区设为设定为作用,相当于FDISK分区中的激活C盘。如果不把C盘激活,系统就装不上,出错信息为:OS ERROR! 在每个分区上点鼠标右键,先择格式化,最后确定。 从新启动计算机就可以装系统了。 2.DM分区的应用:首先用GHOST安装光盘引导起计算机,选择DM分区进入工作界面。 选择“(A)dvanced Options”进入二级菜单,然后选择“(A)dvanced Disk Installation”进行分区的工作。 此主题相关图片如下: 接着会显示硬盘的列表,直接回车即可 此主题相关图片如下: 如果你有多个硬盘,回车后会让你选择需要对哪个硬盘进行分区的工作。 此主题相关图片如下: 然后是分区格式的选择,一般来说我们选择FAT32的分区格式 此主题相关图片如下: 接下来是一个确认是否使用FAT32的窗口,这要说明的是FAT32跟DOS存在兼容性,也就是说在DOS下无法使用FAT32。 此主题相关图片如下: 这是一个进行分区大小的选择,DM提供了一些自动的分区方式让你选择,如果你需要按照自己的意愿进行分区,请选择“OPTION (C) Define your own”。 此主题相关图片如下: 接着就会让你输入分区的大小: 此主题相关图片如下: 首先输入的主分区的大小,然后输入其它分区的大小。这个工作是不断进行的,直到你硬盘所有的容量都被划分。 此主题相关图片如下: 完成分区数值的设定,会显示最后分区详细的结果。此你如果对分区不满意,还可以通过下面一些提示的按键进行调整。例如“DEL”键删除分区,“N”键建立新的分区。 此主题相关图片如下: 设定完成后要选择“Save and Continue”保存设置的结果,此会出现提示窗口,再次确认你的设置,如果确定按“Alt+C”继续,否则按任意键回到主菜单。 此主题相关图片如下: 接下来是提示窗口,询问你是否进行快速格式化,除非你的硬盘有问题,建议选择“(Y)ES”。 此主题相关图片如下: 接着还是一个询问的窗口,询问你分区是否按照默认的簇进行,选择“(Y)ES”。 此主题相关图片如下: 最后出现是最终确认的窗口,选择确认即可开始分区的工作。 此主题相关图片如下: 此DM就开始分区的工作,速度很快,一会儿就可以完成,当然在这个过程中你要保证系统不要断电。 此主题相关图片如下: 完成分区工作会出现一个提示窗口,不用理会按任意键继续。 此主题相关图片如下: 面就会出现让你重新启动的提示 此主题相关图片如下: 这样就完成了硬盘分区工作.按CTRL+ALT+DEL重新起动,装系统。 第三章 CMOS密码的清出与系统密码的清出 一.在忘记系统密码和计算机不能启动的处理经常提到的一个操作就是"CMOS放电"。 放电前一定要关闭计算机,并且拔掉机箱电源。 CMOS放电方法一般有2种 1、跳线短接法 主板后备电池的附近一般都有一个在跳线,旁边注有RESET CMOS、CLEAN CMOS、CMOS CLOSE、CMOS RAM RESET、CMOS Reset或Ext. Buttery等字样。 跳线开关一般为3脚,在1、2两脚上一般有一个跳接器,此将其拔下接到2、3脚上短接数秒即可放电。 放电后,应记着将跳线或开关恢复到正常状态,否者计算机有可能不能启动甚至损坏机器。 在原装品牌机上也有将跳线做成DIP开关的,将CMOS开关拔到ON的位置与短接跳线的作用相同。 另外应该注意,几乎所有的主板都有清除CMOS的跳线和相关设置,但应厂商不能而各有所异,例如有的主板的CMOS清除设备并不是我们长见的跳线,而是很小的焊接锡点,使用金属短接一下同样可以达到目的。 此法关键之处在于找到相应的跳线(如果没有主板说明书,则难度就更大了),跳线一般在电池或CMOS芯片附近。 2、下电池短接 后备电池在主机断电期间是通过二级管向CMOS RAM提供电源的。用导线短接CMOS的VDD和地线形成放电回路进行放电即可清除CMOS中的数据(包括口令)。 在不能确定放电跳线位置,可以将主板供电锂电池取出,然后用金属物件短接一下电池槽中的两个电极片,使存在电路电容中的残余电荷消失,重新装上锂电池,重新开机设置一下BIOS参数即可。 注意:取出电池后不作电极短接,会需很长间才能使CMOS电路中残余的电荷放尽,残余电荷不放尽便重新装入电池,BIOS 随机参数便不会消除。 二.系统密码清除,把CMOS第一引导设为光驱引导,用GHOST安装光盘起动,选择系统登录密码破解按回车进入 [1] Choose logical drive 只清除逻辑驱动器的密码 [2] Search for ms sam datahbase(s) on all hard disk and logical drives 清除所有驱动器的密码。 [3] EXIT 退出 Your choice [2] 选择2按回车 继续按回车,接着每个数字都输入一次,每次输入后都按回车,按Y确认清除,再按回车确认。最后一直按键盘上的ESC键退到安装界面,从硬盘起动,密码清除。 第四章 局域网组建 TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。 “传输控制协议”(TCP,Transsmission-Control Protocol)和“因特网协议”(IP,Internet Protocol)即TCP/IP协议。 IP地址分为网络地址和主机地址二个部分,A类地址前8位为网络地址,后24位为主机地址,B类地址16位为网络地址,后16位为主机地址,C类地址前24位为网络地址,后8位为主机地址,网络地址范围如下表所示: 种类 网络地址范围 A 1.0.0.0 到126.0.0.0有效 0.0.0.0 和127.0.0.0保留 B 128.1.0.0到191.254.0.0有效 128.0.0.0和191.255.0.0保留 C 192.0.1.0 到223.255.254.0有效 192.0.0.0和223.255.255.0保留 D 224.0.0.0到239.255.255.255用于多点广播 E 240.0.0.0到255.255.255.254保留 255.255.255.255用于广播 使用ADSL需要PC机、ADSL Modem、10M\100M自适应网卡和虚拟拨号软件 ADSL是一种非对称的DSL技术,所谓非对称是指用户线的上行速率与下行速率不同,上行速率低,下行速率高,特别适合传输多媒体信息业务,如视频点播(VOD)、多媒体信息检索和其他交互式业务。ADSL在一对铜线上支持上行速率512Kbps~1Mbps,下行速率1Mbps~8Mbps,有效传输距离在3~5公里范围以内。 ADSL的特点:   1.一条电话线可同接听,拨打电话并进行数据传输,两者互不影响。   2.虽然使用的还是原来的电话线,但adsl传输的数据并不通过电话交换机。   3.adsl的数据传输速率是根据线路的情况自动调整的,它以“尽力而为”的方式进行数据传输。 1.常用网络命令: 在DOS下运用:Ping命令,例:Ping www.baidu.com / ping 127.0.0.1,这个命主要用于检测网络是否通,查看网络延。 Ping 百度之后返回的结:IP地址为220.181.6.18 传输为32字节,TIME为间,TTL为中转路由器个数,TTL=128-54。发送4帧,收到4帧,丢失为0,网络最小延为88ms , 最大延为89ms ,平均延为88ms这样的数据才正常。 Ping 127.0.0.1为环路自检,查看本地网络是否正常。上图显示为正常。 Ipconfig IP地址查看命令,主要用于查看网络IP地址。 Ip address 192.168.1.100 IP地址,Subnet mask 255.255.255.0 子网掩码 default gateway 192.168.1.1网关。 2.网线的制作: 需要做线钳一把,RJ-45水晶头,超5类双绞线(5E),网络测试仪等。做线规则:①双机对联线做法:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕;另一头做法:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕 ②直连线做法,两头一样,即:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。 3.局域IP地址配置: 192.168.x.x, 其中经为1-254之间任意值,要注意的是在同一个段中网段的IP值要一样,主机名不能相同,192.168.x.x,如两台机子联机IP设为: 192.168.1.13 192.168.1.14 不难看出1这个值是网段,要相同;13与14是主机的值,不能相同。 4.采用TP-LINK路由器连接上网: 在地址栏中录入192.168.1.1按回车,如下图所示: 出现如下图所示的界面:点下一步; 选择ADSL虚拟拨号(pppoE),点下一步 输入上网账号和上网口令后点下一步 点完成,这样就完成上网设置。上网正常显示如下图所示: 第五章 系统常用命令及格式转换 1.Msconfig 系统的关闭起动项命 点击开始 运行 录入Msconfig按回车进入工作界面,如下图: 点起“启动” ctfmon 对应任务栏的输入法图标,avp对应的是卡巴斯基杀毒软件的起动图标 2.Dxdiag系统信息查看命令 3.Gpedit.msc计算机管理命令 4.格式之间的转换,使用winavi进行转换 当选择多个文件,要创建成一个DVD目录,多个标题,即对应的英为:ONE DVDS,Separate titles Create separate DVDs 创建多个DVD目录;Merge into one title所有文件整合成一个目录。 如果Winavi转换不了的文件可配合Total Video Converter 使用,如下图所。 5.常用的快捷键,使用快捷可以帮助我节约间。 CTRL+A 全选 CTRL+ C复制 CTRL+V粘贴,这两组组合键是选复制后粘贴。 CTRL+S保存 CTRL+O打开 CTRL+Z 撤消上一步操作 CTRL+X剪切 CTRL+N新建 ALT+F4快速关机 ALT+TAB强行跳出正在操作的界面 CTRL+ALT+DEL 重新起动 6.开机常按F8可以进入安全模式或是带DOS命令的安全模式。 有一些病毒我们在系统下是杀不掉的,这我们可以进入带安全模式的系统下再用杀毒软件去扫描病毒,这样有可能把病毒清除掉。进入带DOS命令的安全模式我们可以用它来起动GHOST文件。 第六章GHOST的备份与恢复 1 重新启动计算机 用光盘引导,选择DOS工具进入DOS操作界面。 2 在电脑启动 快速 连续 按键盘最上一排的 F8 3 按了后会显示 黑底白字的 系统选项 通常上面有6 个选项 4 此处我们需要了解的是1 正常模式 3 安全模式 6 进入DOS界面 5 ghost通常必须要在dos 运行 因此选取 6 进入dos 界面 按上下选择箭头 选定 6 回车 6 进入后会出现DOS 提示符 如 C:\> 此处意思为 现在显示的是C盘 7 在c:\> 后面输入d:此处的意思为进入D盘 输入后回车 出现d:\> 8 再在d:\>后面输入 g 此处意思为运行 g 程序 此处的g 实际上就是原有的 ghost 程序 9 输入后回车 就会进入GHOST 的操作界面 见 图一 附 DOS 下基本操作命令 每一个命令输入完毕后回车进入下一个操作 1 c : 进入C盘 同样的道理 D :进入D盘 E: F: 进入E盘F盘 2 dir 查看 查看目录下面的文件 如c:\> dir 是指查看 C盘里面的文件 3 cd 文件夹名字 打开文件夹 如cd 123 意思是说 打开123这个文件夹 4 exe 是程序的意思 如这ghost 改名字后为g 在dos下面就叫 g.exe 5 在dos下面 如果要执行程序的话 输入程序名字 回车即可 如 运行g.exe 输入g 回车 6 cd ..进入上一个目录 如此是c:\>windows 是表示在C盘的windowd 中 如果说此输入 cd .. 则会进入C盘 屏幕上显示出c:\> 三 打包 制作镜像文件 对于通常用户来说 仅仅只是使用GHOST里的分区备份功能 故此此处只讲解分区备份部分 1 按上所说处理好打包前的工作(系统状况最好 驱动安装好 相关软件安装好 清理垃圾文件 磁盘查错 磁盘碎片整理……) 后 重新启动 快速按F8 进入DOS界面 运行 G.exe 2 注意:若要使用备份分区功能 (如要备份C盘)必须有两个分区(最少要有C D二个分区)以上 而且C盘所用容量必须大于D盘的未用容量(通常C盘用了二GB 则D盘必定要有二GB以上的空间) 保证D盘上有足够的空间储存镜像 3 进入图一所示GHOST 界面后 由于是在DOS下 只能用键盘操作 按回车 进入下一个界面 4 DOS界面下 键盘操作:TAB键进行切换 回车键进行确认 方向键进行选择 如图二 用方向键选择 选择菜单 Local(本机)--Partition(分区)--To Image(到镜像) 通俗一点说就是1-2-2 先选中 1 再选取 弹出选项 2 再选取弹出选项 2  5 选中后回车 将出现如图三 选择硬盘 此处第一次是显示的第一个硬盘的信息 如果有二个硬盘的话 回车后会出现二个硬盘的信息选项 通常我们只一个硬盘 此处操作按回车  6 选中后回车 将出现下一个操作界面 如图四   选择要备份的分区 通常我们是选择C盘 也就是系统盘 此处操作 1 选择分区(可以用方向键上下选择 用TAB选择项目 )通常选择第一个就是C盘 分区 2 选定分区 回车确定 3 按一下TAB 再次确定 回车 就表示已经选定为 备份C盘 如果说您不能确定是不是备份的C盘 建议您在WINDOWS的候 查看一下您的各个分区的大小 再对照就可以知道的 因此处是借鉴别的人的图 所以需要到您区别一下   7 选中后回车 将出现如图5 此处需要是输入备份文件名字 此处操作 1 按TAB选定到图片下面的输入名字的地方 在空格内输入您确定的名字 回车 2 此处选择的名字为 windows 当然您也可以选择别的名字的 3 后缀名为.gho 8 输入后回车 就会进入如下所示 见 图6 此处是提示您选择压缩模式 上面共有三个选择: No表示不压缩,Fast表示适量压缩,High高压缩 限于适用与速度 通常我们选择适量压缩 Fast 9 输入后回车 就会进入下一操作界面 见 图7 此处是提示您选择是否开始备份 共有二个选择 YES 是 NO 不 我们需要选定YES 此处操作 1 按左右方向键 选定YES 回车 10 输入后回车 就会进入下一个操作界面 见 图8 此处是提示GHOST根据您的指示 开始备份 此处操作 1 此处请不要做任意动作 您的任意动作都会带来不可预见之后果 请1 不要按键盘 2 不要关机 静心等待到进度条走完 11 进度条跑完后会进入到下一个 操作界面 见 图9 此处是提示GHOST根据您的指示 已经备份完毕 回车退出 此处操作 1 回车 备份完毕 重新启动就可以了  备份的文件以GHO后缀名储存在设定的目录中 如上所述 您的这个文件名叫 windows.gho 此文件在windows界面下是不显示什么的 在DOS下运行GHOST显示为黄色 您的这个 windows.gho 保存在D盘目录下 就是和 G.EXE 一个目录下 通常建议您将镜像文件复制一下 放在安全的地方防止误删除  三 解包 还原镜像文件 要提醒您注意的是在使用 GHSOT 软件恢复系统,请勿中途中止!如果您在恢复过程中重新启动了计算机那么您的计算机将无法启动!必定要接双硬盘或用光盘系统启动才可恢复 在您的系统遇到以下的情况之一 怀疑或确定您的系统中了病毒或木马 系统运行了半个月以上 或出现无故死机 变慢 及相关类别 您需要还原您的系统镜像文件 以保证到系统的安全与良好运行 1 重新启动 快速按F8 进入DOS界面 运行G.exe 进入GHOST界面 回车 2 回车后 就会进入GHOST 的操作界面 见 图10 此处操作 选择菜单到 Local(本机)--Partition(分区)--From Image 通俗一点说就是1-2-3 先选中 1 再选弹出选项 2 再选项弹出选项 3 3 选定后回车 就会进入下一个操作界面 见 图11 此处是提示您 选择 需要还原的镜像文件 如上所述 我们打的包是 windows.gho 所以我们这里选择windows.gho 1 按上下方向键 选择好windows.gho 回车 4 输入后回车 就会进入下一个操作界面 见 图12 此处显示硬盘信息 不需要处理 直接回车 5 输入后回车 就会进入下一个操作界面 见 图13 此处显示硬盘信息 不需要处理 直接回车 6 输入后回车 就会进入下一个操作界面 见 图14 此处显示分区信息 提示您是需要还原到哪珍上分区 默认是还原第一个分区 也就是C盘系统盘 如果您是要还原到此分区 不需要处理 直接回车 此处操作按 回车 7 输入后回车 就会进入下一个操作界面 见 图15 此处显示信息 此处是为了防止误操作 再次提醒您是不是一定要还原镜像文件 您到了这一步 如果说没有十分的把握 这是最后一次机会 默认是NO 按下可以退出到起始界面 如果选择YES 将进行还原操作 此操作到了此处已经不可逆转 此处需要的是用左右方向键 选择YES 回车 8 输入后回车 就会进入GHOST 的操作界面 见 图16 此处是提示GHST根据您的指示 开始还原镜像文件 此千万不要进行操作 1 此处请不要做任意动作 您的任意动作都会带来不可预见之后果 包括系统不能启动 请 1 不要按键盘 2 不要关机 静心等待到进度条走完 9 输入后回车 就会进入下一个操作界面 见 图17 此处是提示GHST根据您的指示 已经备份完毕 给出的二个选择 一 默认为重新启动 二 以后再重新启动 此处需要的是重新启动 至此 您已经成功的还原了您的系统镜像 您的系统又和原来最最良好的候是一样的了 恭喜您的电脑有了百毒不侵 之身 有了可以防止误操作的万事无忧之方法 有了以上的说明 在通常的情况下 您可以随随地将您的系统还原到最良好运行之境地 第七章 综合应用 一.文件的后缀名, *号任意的文件名 1. *.bmp格式是微软制定的图形标准,最大的优点就是在pc上兼容度一流,就算不装任何看图软件,用windows的画图程序一样可以看。储存为bmp格式的图形不会失真,但容量会很大。 2. *.jpg格式是目前网络上最流行的图形格式,它可以把文件容量压缩到最小的格式。用Photoshop图形处理软件处理jpg格式的图像,它支持不同程度的压缩比,您可以视情况调整压缩倍率,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。不过要注意的一点是,这种压缩法属于失真型压缩,文件的压缩会使得图形品质下降。 3. *.doc为Word文档,一般看见后缀名为doc的文件就要用Word应用程序才能打开。 4.*.xls为Excel文档,一般看见后缀名为xls的文件就要用Excel应用程序才能打开。 5. *.ppt为Powerpoint文档也就是幻灯片文档,一般看见后缀名为ppt的文件就要用Powerpoint应用程序才能打开。 6.*.txt为文本文档,一般看见后缀名为txt的文件就要用记事本应用程序才能打开。 7.*.pdf便携文档格式 (PDF) 由 Adobe 发明,已成为全世界各种标准组织用来进行更加安全可靠的电子文档分发和交换的出版规范。如今,PDF日益成为一种流行的格式,许多政府及官方媒体的文档,都以 Adobe PDF 作为标准格式。Adobe Reader 8.0 可以浏览 PDF, 但不能创建 PDF! 8. *.mp3 MP3全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。 简单的说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。 9.*.ini 文件是windows的系统配置文件,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了;在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。一般ini为后缀名的文件不能删除哟! 10.*.bat是批处理文件,是windows32底下的应用程序,可以同按条件处理一批文件。 这里有个例子: 在电脑屏幕的左下角按“开始→程序→附件→记事本”,把下面的文字复制进去,点“另存为”,路径选“桌面”,保存类型为“所有文件”,文件名为“清除系统yjh.bat”,就完成了。记住后缀名一定要是.bat,ok!你的垃圾清除器就这样制作成功了! 双击它就能很快地清理垃圾文件,大约一分钟不到。 @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.log del /f /s /q %systemdrive%\*.gid del /f /s /q %systemdrive%\*.chk del /f /s /q %systemdrive%\*.old del /f /s /q %systemdrive%\recycled\*.* del /f /s /q %windir%\*.bak del /f /s /q %windir%\prefetch\*.* rd /s /q %windir%\temp & md %windir%\temp del /f /q %userprofile%\cookies\*.* del /f /q %userprofile%\recent\*.* del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" del /f /s /q "%userprofile%\Local Settings\Temp\*.*" del /f /s /q "%userprofile%\recent\*.*" echo 清除系统LJ完成! echo. & pause 以后只要双击运行该文件,当屏幕提示“清除系统LJ完成!就还你一个“苗条”的系统了!!到候再看看你的电脑,是不是急速如飞呢? 11.*.RMVB主要用于网络视频格,即电影格式,其特点是比AVI格式小,图像清析,便于网络传输;所谓RMVB格式,是在流媒体的RM影片格式上升级延伸而来。VB即VBR,是Variable Bit Rate(可改变之比特率)的英文缩写。我们在播放以往常见的RM格式电影,可以在播放器左下角看到225Kbps字样,这就是比特率。影片的静止画面和运动画面对压缩采样率的要求是不同的,如果始终保持固定的比特率,会对影片质量造成浪费。   而RMVB则打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上,设定了一般为平均采样率两倍的最大采样率值。将较高的比特率用于复杂的动态画面(歌舞、飞车、战争等),而在静态画面中则灵活地转为较低的采样率,合理地利用了比特率资源,使RMVB在牺牲少部分你察觉不到的影片质量情况下最大限度地压缩了影片的大小,最终拥有了近乎完美的接近于DVD品质的视听效果。可谓体积与清晰度“鱼与熊掌兼得”,其发展前景不容小觑。 12.*.AVI——Audio Video Interleave,即音频视频交叉存取格式。最早由Microsoft公司于1992年推出。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。而且由于AVI本身的开放性,获得了众多编码技术研发商的支持,不同的编码使得AVI不断被完善。而随着MPEG的崛起,当前流行的AVI格式一般采用DviX5以及Xvid的MPEG4编码器压制,视频的画质和体积都得到了很好的控制。举个例子,一部高品质的DVD电影的容量一般为4-5GB,但经过DivX或XviD编码后的大小只有650-700MB,仅仅为原DVD容量的八分之一,图像品质却与DVD相当使得AVI格式成为电影发烧友的首选格式之一。 13.*.FLV流媒体格式是一种新的视频格式,全称为Flash Video,Macromedia为了尽早用FLV格式来垄断Web Video应用,短短两三年的间,FLV就成为了目前最主流的在线视频播放格式,随着被新一代的视频播客网站YouTube、土豆等网站的广泛采用,以及Google、百度、新浪、腾讯、猫扑、Maxthon、雅虎等国际国内著名互联网公司的相继投入与看好,还有国际资本大量进入视频播客领域,FLV格式被极大的推广。 14.*.3gp与*.mp4这两种格的文件主要是在手机上应用的比较广泛,其特点是图像小,但在压缩的过程中有损耗,图像不清析,只是适用像手机这样的小屏幕。 15.*.EXE为可执行文件,如果没有可执行文件哪么应用程就运行不了。一般全名为:setup.exe 16. *.gho 为GHSOT生成的镜像文件,主要是系统的备份文件。 17.*.dll为系统的动态库连接文件,静态连接所需要做的工作是多少(假设按windwos来说他有上千个这样的函数,一共有100多个程序来使用,那静态连接需要100000次的更新,动态连接只需要1000次),从而也节省了内存的空间。动态连接库不一定是DLL扩展名的,也可以是ocx、vbx、exe、drv 等等 二.内存出错或是系统出错引起蓝屏 电脑开机就出现的蓝色屏幕内容如下: “ A problem has been detected and windows has been shut down to prevent damage to your computer. If this is the first time you've seen this stop error screen,restart your computer. If this screen appears again, follow these steps: 1.Check to make sure you have adeguate disk space , if a driver is identified in the stop message ,disable the driver or check with the waufacturer for driver updates try changing video adapters . 2.Check with your hardware vendor for any bios updates ,disable bios memoryor options such as caching or shadowing 。 if you need to use safe mode to remove or disable computers,restart your computer 3.Press F8 to select;advanced star up options,and the select safe mode。 Technical information: *** stop:0x0000007E(0x0000005,0xF7711EC5,0xF78A21A4,0xF78A1EA0) ***partMgr.SYS, Adress F7711ECS base at F770F000, Date stamp 480253b0 大致意思是:出现蓝问题是WINDOWS系统自动关闭,阻止计算机被毁坏;如果是第一次出,从新启动计算机,从启后还是一样出现的话,照着下面的步骤: 1.检查硬盘空间,看是否足够装系统; 2.检查内存,看内存是否有问题; 3.按F8进安全模式看看是否能进带安全模式的系统。 出现这种问题般解决办是从装系统,如是不能,把内存拿下来用湿毛巾擦下再用干毛巾擦干,再卡回主机,看问题能否解决;都有能解决哪么把内存拿到其它正常的主机上看看内存是不是好的。如果是内存坏了,哪就要换内存了。 三.本机病毒删除不了,解决方法是把硬盘拆下来换到别台主机上进行杀毒,要求挂上去的主机要采用正版杀毒软件,升过级的才可以 如果是要从新装系统哪么要求这样做:先格式化C盘,如果要装GHOST版本的系统,D盘也要格式化掉,因为GHOST版本的系统有些文件要装到D盘上去,这样是避免系统感染上病毒,系统装好后用光盘装杀毒软件,或是用U盘拷贝过来装,前提是保正U盘和所拷贝的杀毒软件没得病毒哟。注:除了格式化过的盘可以点击,其它盘一律不能点哟,不然的话就白辛苦了。装好杀毒软件并升过级,全盘扫苗过后才能点其它盘。 四.识别常见病毒,病毒一般是以隐藏形式藏匿在计算机的文件中,要把文件的隐藏属性打开。每一盘都有工具这个选项,如下图所示: 1、什么是计算机病毒: 计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。 2、常见病毒的特征及防治方法 如果双击文件图标打不开,哪么就是感染病毒了。 ①新欢乐光 病毒现象:当您选择“文件夹选项”,并且选择“显示所有文件”的候,您可以在很多目录中看到原先是隐藏的folder.htt和desktop.ini文件,而且当你打开原先没有这两个文件的文件夹会自动在这个文件夹里生成这两个文件,这你的电脑就很可能是被新欢乐光(Vb.Script)感染了。被病毒感染后系统运行速度明显下降,偶尔弹出错误消息框,严重的可能导致死机甚至无法进入系统。 防治方法:不要随便在其他微机上使用u盘及软盘,在必须的情况下应在自己的电脑中先对其进行查毒再使用。如果系统已经感染了此病毒,则可以在瑞星及江民的网站上下载专杀工具vb.kj可以有效的杀除此种病毒。 ②冲击波、震荡波。 病毒现象:此类病毒常见于windows2000较早的版本,病毒运行会利用RPC缓冲区漏洞攻击该系统,导致电脑运行变慢,不断死机或开机后立即倒数一分钟重启。 防治方法:发现感染此病毒后,应首先断开与局域网的连接,进入安全模式,使用瑞星的专杀工具进行杀毒(Rs_blaster),然后将系统打上rpc漏洞补丁,可以彻底清除此种病毒。 ③QQ类病毒。 病毒现象:QQ类病毒多数为木马型及蠕虫型混合病毒,目的是窃取你计算机上的密码,有些破坏力强大的病毒可能造成很大的威胁,可能导致OFFICE软件、任务管理器、注册表编辑器等程序无法使用,该病毒还会破坏资源管理器,只要用户打开四层以上的目录,病毒就会自动关闭“资源管理器”。该病毒还会干掉含有“杀毒”字样的窗口,因此会造成一些反病毒软件及病毒专杀工具无法使用、一些反病毒公司的主页无法登陆等现象。另外该病毒还会修改用户电脑的系统配置,导致用户重启系统无法进入“我的电脑”。 防治方法:不要随便接收别人从QQ上传递的文件,尤其是可执行文件(.exe文件),接收的文件要先查毒再打开。如果感染此类病毒可以进入安全模式进行查杀。 ④灰鸽子木马。 灰鸽子是一种功能极为强大的木马病毒,可以完全控制监控,甚至在你的电脑上安装软件盗取密码,而且除了具有语音监听、语音发送,还有远程视频监控功能,只有远程计算机有摄像头,且正常打开没有被占用,那么你可以看到,远程摄像头捕获的图片!还可以把远程摄像头捕获的画面存为Mpeg-1格式.远程语音也可以录制成Wav声音文件。你的电脑没有任何隐私了,可以从你电脑上下载软件,把坏东西复制上去,可以从新安装非病毒类远程控制,这样你就无法摆脱。电脑感染这种木马后没有什么特别的症状,只有通过杀毒软件才能发现自己已经中毒了。 防治方法:1、打开注册表编辑器(点击“开始”→“运行”,输入“Regedit.exe”,确定),打开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services注册表项。 2、点击菜单“编辑”→ “查找”,“查找目标”输入“game.exe”,点击确定,我们就可以找到灰鸽子的服务项(此例为Game_Server)。 3、删除整个Game_Server项。 灰鸽子的变种很多,所以不仅限于以上的病毒名称。防止感染灰鸽子要注意不要浏览不安全的网站,经常杀毒,并养成良好上网习惯。 常用专杀工具下载链接 1.新欢乐光专杀工具vbs.kj http://www8.pconline.com.cn/download/swdetail.phtml?id=7910 2.震荡波(Worm.Sasser)”病毒专杀工具. http://it.rising.com.cn/service/technology/RS_sasser.htm 3.“冲击波(Worm.Blaster)”病毒专杀工具 http://it.rising.com.cn/service/technology/RS_blaster.htm 4. “QQ病毒”专杀工具 http://it.rising.com.cn/service/technology/RS_QQMsender.htm 5. “MSN病毒(Worm.msn.funny)”专杀工具 http://it.rising.com.cn/service/technology/RS_MSN.htm 6“Zotob蠕虫(Worm.Zotob)”病毒专杀工具 http://it.rising.com.cn/service/technology/rav_Zotob.htm 有些深点的蠕虫病毒用瑞星、卡巴斯基、超级兔子等杀毒软件都是杀不出来的,有些即使你杀出来了也删除不了,删除了过下子又来了,或电脑重启又出现了。对于这种病毒,首先你必须要知道哪些东东被中了,哪些东东被感染了,比如IE上的主页被改了,IE有会自动关闭,电脑“进程”里运行了很多不是系统相关的东东(如.dll的库文件和.exe的可执行文件。)这候必须重启电脑,一直按f8进入安全模式(如电脑设有多个账号的,要用管理员账号登录,也就是Adminstrator),找到可凝的文件一个一个进行手动删除,并在注册表里找到与此病毒相关的文件进行删除(一般电脑中了这种毒,注册表项里就会恶意被修改,并增加很多新的注册项。),电脑硬盘里带毒的文件必须一一彻底删,还有注册表里的一样必须一一彻底清除或更正。深的蠕虫病毒还会感染每个硬盘及一些相关的文件和软件。 注册表进入命令:regedit 查看电脑启动项命令:msconfig 在电脑的“开始”---“运行”,打开运行对话框输入以上命令。 电脑C盘(系统盘)最容易也最常隐藏病毒的文件夹有下: C:\Documents and Settings\qsk\Local Settings\Temp (这个目录是常常隐藏病毒的地方) 上面的“qsk”是我电脑登录的账号名,如果你登录电脑的账号名是“abc”那么文件夹路径就是: C:\Documents and Settings\abc\Local Settings\Temp C:\Program Files\Common Files 这个文件夹下常常会隐藏产新生成写病毒文件及病毒文件夹。 C:\Program Files\Internet Explorer(这个也常会隐藏病毒文件,主要病毒文件都跟IE有关。) 病毒文件如:C:\Program Files\Internet Explorer\1.exe C:\WINDOWS (这个目录下常常会藏中毒文件,甚至会新建些中毒文件及相关文件夹) 如:新建一个“down”的文件夹,形成C:\WINDOWS\down 并会在该文件夹(down)下隐世藏一个rundll32.exe 可执行文件。(rundll32.exe是系统文件,真正的rundll32.exe是在C:\WINDOWS\system32 目录下。) C:\WINDOWS\system32 (这个目录也是常常隐病毒的地方) 一般IE中了老弹出窗口,如色情类的网站IE窗口,娱乐类的网站IE窗口病毒都会在此目录下隐藏病毒。会新生成一些如.com 、.exe 、 .dll的病毒文件。.com的文件在查看是否是病毒,请按照此文件的属性的间进行查看,假如你电脑系统安装的间是2006年1月1日,而当前间是2006年12月15日,如果.com文件的属性间是2006年12月15日或者14日或更前几天的,那么这种大部份都是病毒文件,可进入安全模式手动删除。系统.com的文件如:edit.com,format.com等.com系统文件一般属性间显示的都是:创建间:2005年7月20日, 0:00:00 修改间:2005年7月20日, 0:00:00(系统的.com文件属性显示的间都是比你安装系统间更早的。而.com病毒文件属性显示的间都是在电脑安装系统间后面的。 电脑常见病毒(这是我电脑上经常中的一些病毒): 病毒名:rundll32.exe 症状:此病毒会调用其它模块病毒文件 路径:C:\WINDOWS\down\rundll32.exe 注:C:\WINDOWS\system32rundll32.exe 不可删,这是正确的系统文件。 病毒名:1.exe 症状:打开IE老弹出窗口 路径:C:\Program Files\Internet Explorer\1.exe 病毒名:logo 1.exe (此病毒是蠕虫病毒) 症状:占用CPU资源,使电脑运行速度慢,并生成很多可执行文件,在电脑上进行感染、网络感染、下载网络木马或其它病毒的复合型病毒,病毒运行后将自身伪装成系统正常文件。 路径: c:\windows\Logo1_.exe 主要生成病毒文件有下: c:\windows\rundl132.exe(注意:注意,此病毒文件名是rundl132.exe与系统system32目录下的系统文件rundll32.exe 相差一个字,病毒文件是132.exe 而系统文件是l32.exe,凡电脑上出现的rundl132.exe 的文件都是病毒。) c:\windows\0Sy.exe c:\windows\vDll.dll c:\windows\1Sy.exe c:\windows\2Sy.exe c:\windows\rundll32.exe (注意:此目下的此rundll32.exe也是病毒文件,正确的是在system32目录下。) c:\windows\3Sy.exe c:\windows\5Sy.exe c:\windows\1.com c:\window*\**erouter.exe c:\window*\**P10RER.com c:\windows\finders.com c:\windows\Shell.sys c:\windows\sms*.**e c:\windows\kill.exe c:\windows\sws.dll c:\windows\sws32.dll 病毒名:service.exe 路径:C:\WINNT\SYSTEM32\Service.exe(注意:该目录下的services.exe不可删,是系统文件) “特洛依木马”病毒   何谓特洛依木马?特洛依木马其实是一种骗子程序,提供某些功能作为诱饵引诱你,确在背地里摧毁你的计算机系统。记得希腊神话中关于特洛依木马的故事吗?典故就是从那儿来的。中了木马有什么反应?很难说,因为它们发作的情况多种多样。   病毒诊断   但是如果你的计算机有以下表现,就很可能染上特洛依木马这种病毒了。   计算器有死机,有重新激活;在没有执行什么操作的候,却在拼命读写硬盘;系统莫明其妙地对软驱进行搜索;没有运行大的程序,而系统的速度越来越慢,系统资源占用很多;用Ctrl+Alt+Del调出任务表,发现有多个名字相同的程序在运行,而且可能会随间的增加而增多(可是,有一些程序是不会出现在这个列表里的。懂得编程的朋友应该知道这不难做到,借助PVIEW95就可以看到)。特别是在连入Internet网或是局域网后,如果你的机器有这些现象,就应小心了,当然也有可能是一些其它的病毒在作怪。   病毒防治   一般中了木马程序最简单的解决办法就是用杀毒软件清除,如金山毒霸、瑞星等。如果对系统熟悉也可以手动清除,首先应该按照Win9x下程序自激活的方法中所述的情况检查一下是否有可疑程序(最好的情况是你熟悉你的系统正常的这些项,用系统自带的regedit程序查看 /修改注册表)。发现可疑程序将其连同该注册表项一起删除即可,重启系统则木马就已经被清除了。不过这里要提醒大家一点,在做删除操作和注册表修改操作前一定要先备份。   “泡沫小子”病毒   泡沫小子是一种通过Outlook广泛传播的蠕虫病毒。它是第一个不需要从电子邮件打开附件就能被激活的蠕虫病毒。   病毒诊断   一般泡沫小子发送一封主题为“BubblleBoy is back!”(泡沫小子来了!)的HTML电子邮件。如果你的IE5.0的安全保护设置级别置为中、低级,则该HTML页隐含着(植入)VBS程序代码,在未提示用户的情况下就会被执行。   病毒防治   这种病毒在你眼前,要采取哪些简便的方法防范它呢?   首先要做到1.不要开启匿名邮件附件,只打开已知附件,以及可信资源建立链接关系。2.关闭自动打开附件功能。3.执行*.EXE、*.HTA、*.VBS和其它可执行附件要谨慎。4.打开*.DOC、*.XLS、*.PPT文件要小心。5.不要在本地邮件列表中保存别名为“ALL-Company”的邮件。6.将Internet Explorer4.x或以上版本的安全级别设定成“高级”;终止Active X和Active Scripting。7.Outlook Express:终止打开和/或预览窗口,在对话框下面,不要选中预览窗口。8.Netscape:终止JavaScript在菜单栏中选取编辑/参数,在对话框左边,点击高级,在对话框右边,不要启用邮件和新闻的JavaScript,停止JavaScript浏览最高安全级别。9.其它邮件用户:终止Visual Basic Scripting或JavaScript。   尼姆达(概念)病毒   尼姆达(概念)病毒,是近日来被发现的一种恶性邮件病毒。该病毒利用微软IE浏览器解释Outlook邮件MIME头的漏洞感染和传播,其速度之快,不可等闲视之。   病毒诊断   尼姆达(概念)感染特征和发现方法其实很简单,当感染“概念”病毒之后,它会在执行将自身复制到临目录下,再运行在临目录中的副本。病毒复制到临目录下的副本(有两个文件,文件名为???????.tmp.exe),在系统下次启动,病毒会将他们删除(修改 wininit.ini文件)。同该病毒还会在Windows的system目录中生成load.exe文件,修改system.ini中的shell,把shell=explorer.exe改为explorer.exe load.exe –dontrunold,从而使病毒在下次系统启动仍能被激活。另外,在system目录下,该病毒还会生成一个副本:riched20.dll。riched20.dll目录在Windows系统中就存在,它就会把它覆盖掉了。   为了通过邮件将自己传播出去,该病毒使用了MAPI函数读取用户的E-mail并从中读取SMTP地址和E-mail地址。病毒还在Windows的临目录下生成一个eml 格式的临文件,大小为79225字节,该文件已经用BASE64编码将病毒包含进去。然后,病毒就用取得的地址将带毒邮件发送出去。   病毒防治   由于尼姆达(概念)病毒借助的是IE浏览器的漏洞来传播的,所以堵住漏洞可以说是防护的第一步。以下的方法都可以有效的弥补这个IE的漏洞:   1.添加微软官方的补丁   SP2微软官方已经就Windows 2000系统目前发现的漏洞做了个“十全大补”的补丁,可以弥补绝大部分的Windows 2000漏洞。 SP2共100M左右,可以到以下网址下载: http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp   2.利用漏洞检测与修复系统   如果大家嫌SP2太大、太麻烦,可以用天网防火墙个人版自带的漏洞检测与修复系统可以检查出Windows中严重的系统漏洞,并自动修复它。目前的天网个人版(测试版)中所带的漏洞检测与修复系统已经可以检查和修复“概念”病毒赖以传染和传播的 IE浏览器漏洞,所以对于防护“概念”病毒而言,是一个不可多得的顺手工具。经过了漏洞检测与修复系统修复之后,“概念”病毒就无法直接在用户的机器上自动运行了。   该防火墙可以到以下网站下载,网址为:http://www.sky.net.cn/在修补完浏览器的漏洞之后,即使是收邮件的候遇见携带有“概念”病毒的邮件,它也不能顺利的潜入用户的计算机。这它会出现一个下载提示框。切记不要按“确定”,只要取消它就行了。或者按“确定”之后,你可以得到一个“概念”病毒的本体程序 Readme.exe。另一种防护方法是:不要用Outlook 收邮件,找其它的邮件客户端软件吧。   3.利用杀毒软件清除   如果在成功免疫前,你的计算机中了这个病毒,可以下载最近的防病毒软件进行清除,如金山毒霸、Norton等防病毒软件都已经推出了能够清除“概念”的最新病毒包。但是如果你需要根治这个漏洞,还是得按照以上的方法进行“免疫”。 解决U盘常见病毒的方法! 最近发现u盘病毒的传播方式发现已经不是当初简单了,在U盘根目录下会生成一个autorun.inf的引导文件那么简单了。如果是单纯地利用aoturun.inf传播,那么切记:打开U盘要通过点击鼠标右键=》资源管理器的方式打开,千万不要双击,否则病毒立即会执行!然后把资源管理器的不隐藏系统文件的勾打开,再双击打开autorun.inf查看病毒路径,然后一并删除即可。但最新的U盘病毒变种已经不采取这种简单的方式了,其方式有三种:第一种是把U盘下所有文件夹隐藏,并把自己复制成与原文件夹名称相同的具有文件夹图标的文件,当你点击病毒会执行并且该病毒会打开该名称的文件夹。当然按照上述的方式把隐藏属性去掉你可以看到这种景象。第二种是在U盘的所有可执行文件里插入病毒本身,这种情况比较恶劣。一般你必须用杀毒软件或其他分离软件才能把你能用的那部分提取出来。第三种是直接在每一个文件夹下面生成一个与该文件夹同名的exe文件,跟第一种相似,但更具有混淆性。所以大家一般候不要什么东西都往U盘里放,轻者被插入病毒,重者资料被更改或破坏导致重要信息无法恢复;如果要在U盘里放东西事先一定要在电脑里做备份哦!另外大家买U盘一定要买那种有写保护的,如果在别人电脑上使用,但只是读取信息,就把写保护打开,如果他电脑有病毒,或许你会发现有弹出提示的信息,就说明他电脑有病毒了。目前已经发现的有固定名称的病毒如下: autorun.inf AdobeR.exe bittorrent.exe copy.exe desktop.exe desktop2.exe folder.exe host.exe msinfmgr.exe msvcr71.dll RavMonE.exe RavMonLog RECYCLER\*.* RECYCLER SHE.exe sxs.exe SYSTEM.VER toy.exe setup.pif 如果大家发现U盘下面有这些文件,那么基本上可以确定是病毒了。 当然目前给大家的简单的解决方法如下:把下面的东东保存为*.bat文件,放在桌面上,当你感觉U盘有病毒就双击一下,或许能帮你解决一部分负担。 ----------------------------从下面开始----------------------------------- @echo off attrib -r -h -s -a j:\*.*\ del /f/s/q/a j:\autorun.inf del /f/s/q/a j:\AdobeR.exe del /f/s/q/a j:\bittorrent.exe del /f/s/q/a j:\copy.exe del /f/s/q/a j:\desktop.exe del /f/s/q/a j:\desktop2.exe del /f/s/q/a j:\folder.exe del /f/s/q/a j:\host.exe del /f/s/q/a j:\msinfmgr.exe del /f/s/q/a j:\msvcr71.dll del /f/s/q/a j:\RavMonE.exe del /f/s/q/a j:\RavMonLog del /f/s/q/a j:\RECYCLER\*.* del /f/s/q/a j:\RECYCLER del /f/s/q/a j:\SHE.exe del /f/s/q/a j:\sxs.exe del /f/s/q/a j:\SYSTEM.VER del /f/s/q/a j:\toy.exe del /f/s/q/a j:\setup.pif taskkill /F /im explorer.exe explorer.exe j:\ ----------------------------到这里结束----------------------------------- 五.常用DOS命令 1.Format 命令,用于格式化硬盘;例如:Format C: 2.MD 创建文件夹命令 例如: MD空格+文件夹名 3.DIR 查看文件夹命令,比较常用哟。例如:DIR空格+文件夹名 4.CD..回到上一级目录 5.FDISK 硬盘分区命令 例如:FDISK 6.DELETE 删除文件命令 例如:DELETE *.TXT 7.CD进入文件夹命令 例如: CD空格+文件夹名 附录:
LearnSite信息技术教学辅助平台 1.04源码 当前版本为LearnSite1.04(版本号以数据库变动为基准,版本号不变就是数据库结构不变) 同个版本更新方法: 1、准备工作:备份数据库、备份web.config、website.xml 2、将最新版压缩包下载解压后,除App_Data外将其它所有复制粘贴到原网站根目录下 3、再参考原备份的web.config和website.xml,修改新覆盖后的web.config和website.xml (从LearnSite1.03版本数据库升级到1.04版本数据库方法:执行根目录下的upgrade.aspx页面) 更新历史记录: 2010.06.09 更正6.08的创建课程session错误,修改打字练习提示,修改niceedit编辑器汉化完整,Fckeditor内容添加后自动去除带服务器地址链接以便课程包导入后内容中图片链接错误 2010.06.08 Fckeditor编辑器增加支持Flv上传并在线播放功能,签到学生显示IP,活动任务不要求作品提交隐藏提交面板,文字评价编辑器NiceEdit部分汉化,更改活动列表样式,作品统计中增加将所有未评作品全批为P的功能 2010.06.07 作品投票中添加评价页面连接,评价页面中添加返回投票,更改Ftp账号创建方式,打字文章添加页面增加清除打字成绩按钮 2010.06.06 增加学生对作品的评价,增加表WorksDiscuss,并提供upgrade.aspx数据库升级页面 2010.06.05 修正5.31号的一些小问题 2010.05.31 作品表增加自我评价,是否要求教师评价,是否为最佳作品 三个字段Wself,Wcan,Wgood 2010.05.29 修正无学生的班级在添加学生,入学年份为空的问题(如果取不到则使用当前年份) 2010.05.23 学生个人模式登录密码修改需输入旧密码,后台管理增加学生登录cookies有效设定开关,调整课程和活动页面中的跳转超连接 2010.05.22 将作品提交换成支持大文件的NeatUpLoad免费开源组件,并可显示进度条,将作品下载输出换成流输出,极大减少服务器内存占用,后台增加同班级的作品提交IP限制开关(默认:每个活动一个IP只能提交一个作品) 2010.05.12 更正数据库脚本,修正allsite.aspx网页浏览出错问题(无html类型课程出错) 2010.05.06 数据库Webstudy增加Wurl字段(类型为nvarchar(50)),即学生网站的虚拟路径(去掉原来拼凑路径,方便sql查询),在学生平台中我的网站页面增加链接到全校学生网站浏览页面 (更新后,请在教师平台的网页该页面中的最下面无文字按钮重新生成学生网站链接) 2010.05.03 数据库教师表Teacher增加Hpath字段(类型为nvarchar(50)),FckEditor上传路径采用数据库取值,避免Session失效 2010.04.30 学生查看网站自动更新网站表中的网站更新日期和空间占用大小,并将网站投票按钮颜色变为更新指示色(淡绿色),增加作品类型图标显示 2010.04.27 给作品查看增加后台天数设置 2010.04.14 修正学生作品重新提交未更新作品超连接的问题 2010.04.08 将原来提供附加的数据库从sql2005格式替换成sql2000格式 2010.04.06 发现sql2000脚本无默认值,现已更正,可以使用sql2000查询器执行脚本生成数据库了,使用sql2000数据库工作正常 2010.03.29添加课程,由于备课间超过session默认20分钟后无法在Fckeditor编辑器中上传图片等文件,在webconfig中添加session超设置 2010.03.28教师退出,将所教的当前上课班级变为不上课状态(如此当另一教师上课,其他教师所教班级的密码显示为空) 2010.03.26调整学生平台Ftp账号密码地址显示并增加复制按钮,去除课程简介发布的上传类型和是否提交两项 2010.03.25 修正学生网站投票,教师教学活动检查首先显示当前学期,网页更新间同检测htm和html后缀,修改课程类型作品类型课到配置website.xml中 2010.03.17 增加Webstudy表Wupdate网站更新日期字段(类型datetime),并在增加网页中学生网站更新情况检测 2010.03.16 修正远程下载路径 session传递超判断 2010.03.13教师和管理菜单增加图标,修正2010.03.09中学生作品下载session未改正,将Manager中的website.xml网站配置文件移置根目录下方便更新,修改教学活动检查为选择学期选择年级列表显示课程 2010.03.09偶然发现教师登录的session为单用户设置,现已改为多用户。(如果多个教师利用教师机作服务器并使用同一台教师机并同用一个平台,请采用本次更新) 2010.03.06更改为登录教师所教班级的总分统计和上课班级网站投票重置及投票重置后修正为可评价 2010.03.05修正添加学生的入学年度为自动获取,课程浏览中的探讨下查看改正为反思,修正导入课程包的年级为当前年级及最新课(使用session传递年级,注意页面过期) 2010.03.04修正学生ftp密码显示并修正2010.03.03中的小问题 2010.03.03增加教师平台中上课中的作品展示中未提交作品的学生列表,并修正cookies为永久保存有效(学生上课后请关机自动还原) 2010.02.29修正评价错误及添加学生的入学年度及性别为下拉列表框 2010.02.28修正成绩统计为当前学期,设定教学活动检查显示课程为当前学期 2010.02.26再次修正我的课程中已学课程的排序并增加学期显示,修正我的作品中的排序并显示年级学期 2010.02.25修正我的课程中已学课程的排序,修改投票作品查看为隐藏实际作品路径,修改活动页面中的作品提交情况中作品可查看并隐藏路径 2010.02.23增加一个作品评价等级:推荐,分值为12分,将作为优秀作品选的依据;增加天气预报开关(管理员面板--系统设置) 2010.01.28修正投票所有作品可查看,但不能再重新提交作品,不投票则可修改作品 2010.01.13修正期末总评代码 2009.12.25 更改logo为flash版,添加页面Gzip压缩 2009.12.20 增加测验后答案查看 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
标题:PHP基础教程 出处:风流的CG网络日志 间:Mon, 28 Aug 2006 07:24:34 +0000 作者:yufeng 地址:http:///read.php?38 内容: 提供给新手学习的 PHP新手教程,是一个比较有价值的PHP新手教程! 一、PHP简介 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。 1.简介 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑你可以用编辑HTML的常规方法编写PHP。 PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。安装过程很简单。 如果你的机器解决了2000问题,那么PHP也一样没有千年虫问题! 1.1 历史 三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。 PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。PHP4还处在BETA测试阶段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点(http://www.zend.com)了解更多。 PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP的先进之处 应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点: - 学习过程 我个人更喜欢PHP的非常简单的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。 PHP的语法与C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。 你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同,你可以很轻松的加入PHP使得你的站点更加具有动态特性。 - 数据库连接 PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。 - 可扩展性 就像前面说的那样,PHP已经进入了一个高速发展的期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。 - 面向对象编程 PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。 - 更多特点 PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手:ASP,mod_perl,JSP 我当然不清楚ASP/JSP能做些什么。不过明确的是编写那样的代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。 mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。 2.1 首要条件 你首先必须要有一个正在工作着的支持PHP的web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php3。 2.2 PHP的安装 生成一个名为test.php3的文件,含有以下内容: 然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装使用的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以使用的方法: . . . 语句 与Perl和C一样,在PHP中用(;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。 注释 PHP支持C,C++和Unix风格的注释方式: /* C,C++风格多行注释 */ // C++风格单行注释 # Unix风格单行注释 Hello,World! 通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语: First PHP page 2.4 数据类型 PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。 数值 数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值: $a = 1234; # 十进制数 $a = -123; # 负数 $a = 0123; # 八进制数 (等于十进制数的83) $a = 0x12; # 十六进制数(等于十进制数的18) $a = 1.234; # 浮点数"双精度数" $a = 1.2e3; # 双精度数的指数形式 字符串 字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\)可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # 产生 Hello World $full2 = '$first $second';# 产生 $first $second 可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。 数组与哈希表 数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有说明,但是你一样可以轻易的使用多维数组。 // 一个包含两个元素的数组 $a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 添加数组元素的简单方法 // 现在$a[2]被赋值为"third" echo count($a); // 打印出3,因为该是数组有3个元素 // 用一个语句定义一个数组并赋值 $myphonebook = array ( "sbabu" => "5348", "keith" => "4829", "carole" => "4533" ); // 噢,忘了教长吧,让我们添加一个元素 $myphonebook["dean"] = "5397"; // 你定义的carale元素错了,让我们更正它 $myphonebook["carole"] => "4522" // 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看 echo "$myphonebook[0]"; // sbabu echo "$myphonebook[1]"; // 5348 其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。 对象 使用new语句产生一个对象: class foo { function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); 改变变量类型 在PHP手册中提到:"PHP不支持(也不需要)直接在声明变量定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了整数。" $foo = "0"; // $foo是字符串(ASCII 48) $foo++; // $foo是字符串"1" (ASCII 49) $foo += 1; // $foo现在是整数(2) $foo = $foo + 1.3; // $foo是一个双精度数(3.3) $foo = 5 + "10 Little Piggies"; // $foo是一个整数(15) $foo = 5 + "10 Small Pigs"; // $foo是一个整数(15) 如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样就可以声明全局变量了 } 更先进一些的是变量的变量表示。请参考PHP手册。这在有会显得很有用。 PHP内置了许多已定义的变量。你也可以用define函数定义你自己的常量,比如define("CONSTANT","value")。 2.6 运算符 PHP具有C,C++和Java中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样使用"="。 算术和字符 以下只有一种运算符是有关字符的: $a + $b :加 $a - $b :减 $a * $b :乘 $a / $b :除 $a % $b :取模(余数) $a . $b :字符串连接 逻辑和比较 逻辑运算符有: $a || $b :或 $a or $b :或 $a && $b :与 $a and $b :与 $a xor $b :异或 (当$a或$b为true为true,两者一样为false) ! $a :非 比较运算符有: $a == $b :相等 $a != $b :不等 $a < $b :小于 $a $b :大于 $a >= $b :大于等于 与C一样PHP也有三重运算符(?:)。位操作符在PHP同样存在。 优先权 就和C以及Java一样! 2.7 控制流程结构 PHP有着与C一样的流程控制。我将在下面大概介绍。 if, else, elseif, if(): endif if (表达式一) { . . . } elseif (表达式二) { . . . } else { . . . } // 或者像Python一样 if (表达式一) : . . . . . . elseif (表达式二) : . . . else : . . . endif ; Loops. while, do..while, for while (表达式) { . . . } do { . . . } while (表达式); for (表达式一; 表达式二; 表达式三) { . . . } //或者像Python一样 while (expr) : . . . endwhile ; switch switch是对多重if-elseif-else结构的最好的替换: switch ($i) { case 0: print "i equals 0"; case 1: print "i equals 1"; case 2: print "i equals 2"; } break, continue break中断当前的循环控制结构。 continue被用来跳出剩下的当前循环并继续执行下一次循环。 require, include 就像C中的#include预处理一样。你在require中指定的那个文件将替代其在主文件中的位置。在有条件的引用文件,可以使用include()。这样就使得你可以将复杂的PHP文件分割成多个文件并且在不同需要分别引用它们。 2.8 函数 你可以像以下的例子一样定义自己的函数。函数的返回值可以是任何数据类型: function foo (变量名一, 变量名二, . . . , 变量名n) { echo "Example function.\n"; return $retval; } 所有PHP代码都可以出现在函数定义中,甚至包括对其他函数和类的定义。函数必须在引用之前定义。 2.9 类 利用类模型建立类。可以参考PHP手册中对类的详细解释。 class Employee { var $empno; // 员工人数 var $empnm; // 员工姓名 function add_employee($in_num, $in_name) { $this->empno = $in_num; $this->empnm = $in_name; } function show() { echo "$this->empno, $this->empnm"; return; } function changenm($in_name) { $this->empnm = $in_name; } } $sbabu = new Employee; $sbabu->add_employee(10,"sbabu"); $sbabu->changenm("babu"); $sbabu->show(); 三、从实例入手  PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。 3.1 计划一个站点 一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息,甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。 标题页面--front.html 这里我们有一个非常简单的html文件: 我的个人主页--欢迎 我的个人主页 欢迎 欢迎来我的寒舍,虽然这里现在暂还没有什么。 不过我希望马上就可以多起来。 Copyright ? 我自己,1999 联系信息页面--count.html 同样我们又有了一个简单页面: 我的个人主页--联系信息 我的个人主页 联系信息 你可以通过1-800-PHP-INFO联系我 Copyright ? 我自己,1999 3.2 HTML到PHP 从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们就行了。我们将把这些include文件放在一个叫include的子目录下。下面我们就把这些站点的通用内容写进文件中。 全站通用变量设定:common.inc 通用页面头部:header.inc 通用页面底部:footer.inc Copyright ? by , 1999 新的页面front.php3: 欢迎来我的寒舍,虽然这里现在暂还没有什么。 不过我希望马上就可以多起来。 新的cont.php3: 你可以通过1-800-PHP-INFO联系我 现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。 3.3 计数器 让我们在首页上加上一个计数器。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码: 然后我们更改front.php3文件以显示这个计数器: 看看我们的新front.php3 3.4 反馈表单 让我们再添加一个反馈表单以便你的浏览者填写并e-mail给你。举例来说我们用一种很简单的方法实现它,我们只需要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、mail给你。 PHP中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。 在process_form.php3中,变量$mytext就被赋予了输入的值--非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。 根据这个方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。 表单:form.php3 Your feedback on my home page. 处理表单:sendfdbk.php3 3.5 简单的站内搜索引擎 PHP可以调用外部程序。在Unix环境下我们可以利用程序grep实现一个简单的搜索引擎。我们可以做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。
注释: PHP_SELF是PHP内建的变量。包含当前文件名。 fgets()按行读取文件,最多4096(指定)字符长度。 fgetss()与fgets()相似,只是解析输出的HTML标记。 split()有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略":"。 each()是一个数组操作函数,用来更方便的遍历整个数组。 popen()、pclose()与fopen()、fclose()的功能很相似,只是增加了管道处理。 请注意以上的代码并不是实现一个搜索引擎的好办法。这只是有助于我们更好学习PHP而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索 四、与数据库链接 通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。 PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP安装选项应该可以支持两者的使用。 想获得更多有关在Microsoft Windows平台上安装支持PHP3的Apache服务器的知识以及更多有关Oracle数据库的知识,请查阅以下URL:www.csoft.net/~vsbabu/articles/oraphp.html。 4.1 连接 以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。 4.2 查询 假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子: 出错 // 如果存在错误则显示 // 当指针被激活每次请求Oracle后调用该函数 if(ora_errorcode($in_cur)) echo "Oracle code - ".ora_error($in_cur)."\n"; return; } /** 主程序 */ if (!($conn=ora_logon("user@TNSNAME","password"))) { echo "Connection to database failed\n"; exit; } echo "Connected as connection - $conn\n"; echo "Opening cursor ...\n"; $cursor=ora_open($conn); printoraerr($cursor); echo "Opened cursor - $cursor\n"; $qry="select user,sysdate from dual"; echo "Parsing the query $qry ...\n"; ora_parse($cursor,$qry,0); printoraerr($cursor); echo "Query parsed \n"; echo "Executing cursor ...\n"; ora_exec($cursor); printoraerr($cursor); echo "Executed cursor\n"; echo "Fetching cursor ...\n"; while(ora_fetch($cursor)) { $user=ora_getcolumn($cursor,0); printoraerr($cursor); $sysdate=ora_getcolumn($cursor,1); printoraerr($cursor); echo " row = $user, $sysdate \n"; } echo "Fetched all records\n"; echo "Closing cursor ...\n"; ora_close($cursor); echo "Closed cursor\n"; echo "Logging off from oracle... \n"; ora_logoff($conn); echo "Logged off from oracle \n"; ?> (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.3 显示结果 以下代码演示了怎样查询数据库并将结果输出: 出错 // 如果存在错误则显示 // 当指针被激活每次请求Oracle后调用该函数 // If it encountered an error, we exit immediately if(ora_errorcode($in_cur)) { echo "Oracle code - ".ora_error($in_cur)."n"; ora_logoff($conn); exit; } return; } function exequery($w_qry,$conn) { $cursor=ora_open($conn); printoraerr($cursor,$conn); ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn); ora_exec($cursor); printoraerr($cursor,$conn); $numrows=0; $w_numcols=ora_numcols($cursor); // 显示头部 echo " \n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; echo "\t".ora_columnname($cursor,$i)."\n"; } echo "\n"; while(ora_fetch($cursor)) { echo "\n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; if(ora_columntype($cursor,$i)=="LONG") echo "". ora_getcolumn($cursor,$i)."\n"; else echo "".ora_getcolumn($cursor,$i)."\n"; printoraerr($cursor,$conn); } $numrows++; echo "\n"; } if ($numrows==0) echo "Query returned no records \n"; else { echo "\n"; echo "Count\n"; echo "$numrows\n"; echo "\n"; } echo "\n"; ora_close($cursor); return; } // 主程序 if(!($conn=ora_logon("user@SID","password"))) { echo "Error: Cannot connect to database\n"; exit; } $qry="SELECT deptno \"Dept\" ,empno \"Emp\" ,empnm \"Name\" ,salary \"Salary\" FROM employee ORDER BY 1,2"; exequery($qry); ora_logoff($conn); ?> (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.4 基于HTTP的Oracle登录 将以下代码加在PHP页面代码之前以确认Oracle登录。注意你必须正确设定$ SID。 五、其它功能 5.1 生成图像 PHP可以操作处理图像。如果你已经安装了GD库,你甚至可以利用PHP生成图像。 (译者注:以上代码段缺少注释,请读者参考PHP Manual的图像处理函数部分) 这段代码在其他页面中通过以下标记调用,然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值--在以上的代码中该图像文件是images/button1.gif--最后输出到浏览器。假如你想在表单域中使用图像按钮,但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像,就可以利用这样简单的方法动态生成图像文件。 5.2 Cookies PHP支持基于HTTP的cookies。在需要你可以像使用一般变量一样方便的使用cookie。Cookies是浏览器保存于客户端的一些信息片段,由此你可以知道是否一台特定PC上的任何人都访问过你的站点,浏览者者在你的站点上的踪迹等等。使用cookies的典型例子就是对浏览者偏好的甄别。Cookies由函数setcookie()设定。与输出HTTP标头的函数header()一样,setcookie()必须在任何实际内容杯输出到浏览器之前调用。以下是一个简单例子: 设定cookie,为cookie赋上当前间值 // 函数中的最后一个参数声明了该cookie保存间 // 在这个例子中是1年 // time()函数返回自1970年1月1日以来的以秒数计的间 SetCookie("VisitedBefore",time(), time()+(60*60*24*365)); } else { // 欢迎浏览者再次光临 echo "Hello there, welcome back"; // 读取cookie并判断 if ( (time() - $VisitedBefore) >= "(60*60*24*7)" ) echo "Why did you take a week to come back. You should be here more often!? "; } ?> 5.3 基于HTTP验证 基于HTTP验证当PHP以CGI模式运行不能实现。我们可以使用函数header()发送HTTP标头强制验证,客户端浏览器则弹出供输入用户名和密码的对话框。这两个变量被储存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以使用这两个变量验证合法并允许进入。以下的例子通过用户名称/密码对为tnc/nature的验证一名用户的登录: 事实上再实际引用中不大可能如上面使用代码段明显的用户名称/密码对,而是利用数据库或者加密的密码文件存取它们。 5.4 文件上传 你可以利用PHP实现文件的功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上。以下就是该功能的简单演示: ( upload.html ): Upload Your File (You may notice a slight delay while we upload your file.) 下面是处理上传的文件: ( receiver.php3 ): 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } $the_time = time (); // 你需要对以下目录有写权限 $upload_dir = "/local/uploads"; $local_file = "$upload_dir/$the_time"; if ( file_exists ( '$local_file' ) ) { $seq = 1; while ( file_exists ( "$upload_dir/$the_time$seq" ) ) { $seq++; } $local_file = "$upload_dir/$the_time$seq"; }; rename ( $uploadfile, $local_file ); display_page (); } function display_page () { // 这里是你的页面内容 } php3 Receiving Script 5.5 常用函数 我们简单来看看一些常用的函数。 数组 array - 生成数组 count - 数组元素个数 sort - 数组排序,另有其他几种排序函数可供使用 list - 列出数组元素 each - 返回下一个key/value对 current - 返回当前数组元素 next,prev - 传回当前数组元素前后指针 日期间 checkdate - 验证日期/间格式 date - 生成日期/间格式 time - 当前间信息 strftime - 格式化日期/间 目录、文件系统 chdir - 改变目录 dir - 目录类别 opendir, readdir, closedir - 开启、读取、关闭目录 fopen, fclose - 开启、关闭文件 fgets, fgetss - 逐行读取内容 file - 将整个文件读入一个数组变量中 正则表达式 ereg - 匹配正则表达式 eregi - 大小写非敏感匹配正则表达式 ereg_replace -匹配正则表达式并替换 eregi_replace -大小写非敏感匹配正则表达式并替换 split - 依规则切开字符串并以数组形势存储 字符串 AddSlashes - 加上斜杠后使用字符串 echo - 输出一个或多个字符串 join, implode - 将数组元素合并为字符串 htmlentities, htmlspecialchars - 将HTML特殊字符转换为HTML标记形式 split - 依规则切开字符串并以数组形势存储 5.6 扩展我们的范例主页 我们将使用以上提到的一些函数和思想为我们的范例主页添加更多的动态内容。我们可以在每个页面的顶部加上导航栏,同使得当前页自动的不被链接显示;同还可以添加一个用户验证表单以便上传音乐、图像等文件并自动更新页面。 导航栏 实际上就是在footer.inc文件中加上一段代码。假设你的web站点中所有后缀为.php3的文件都会出现在导航栏中,以下就是被存为include/navbar.inc的代码: read()) { // 忽略无文件情况 if ( !is_file($entry) ) continue; /* 将文件名与扩展名分开。由于.是正则表达式特殊字符,应该用\引出 */ list($filenm, $fileext) = split("\.",$entry, 2); // 忽略非.php3文件情况 if( $fileext != "php3" ) continue; /* 现在我们已经把.php3文件都选出,下面搜寻文件中的第一行(标题) 类似$title="something"; 并将以上标题内容分开,用作链接文字 */ $linknm = ""; $fp=fopen($entry,"r"); while($buffer=fgets($fp, 4096)) { $buffer = trim($buffer); // 我们已经把每个文件的标题放在文件的第一行以便搜索 // 但是当你改变变量名称可能会带来大麻烦 if (ereg("title *= *\"", $buffer)) { /* 我们已经取得了标题内容并可以在此基础上 进行去除空格等处理。 必须以PHP代码方式处理,比如$title = "blah blah" */ eval($buffer); // 然后将链接文字显示为标题文字 $linknm = $title; break; } } fclose($fp); if ( $entry == basename($PHP_SELF) ) echo "$linknm"; else echo "$linknm"; echo " | "; } $d->close(); echo " \n"; ?> 照片收藏夹 我们将引用基于HTTP的验证、文件系统函数和文件上传功能维护放置图像文件的目录。 同我们需要建立一个可以列出在该目录下所有照片的页面。 文件上传 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } // Wherever you have write permission below... $upload_dir = "photos"; $local_file = "$upload_dir/$userfile_name"; if ( file_exists ( $local_file ) ) { $error_msg = "Sorry, a file with that name already exists"; return; }; // 你还可以由此检查文件名称/类型对以确定是何种文件:gif,jpg,mp3… rename($userfile, $local_file); echo "The file is uploaded\n"; echo "Go Back\n"; } $title = "Upload File"; include("include/header.inc"); if (empty($userfile) || $userfile=="none") { // 输出以下表单 ?> (You may notice a slight delay while we upload your file.) 照片图库 Here are some of our family photos. This PHP script can really be made better, by splitting into multiple pages. read()) { if (is_file("photos/$entry")) echo "\n"; } $d->close(); ?> 另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。 六、网络资源 你可以通过web上的众多资源更多的了解PHP3。许多邮件列表和书籍对你都非常有用。 6.1 站点 PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程、范例代码、技巧和提示等内容。 国内 http://www.phpuser.com - PHP中文用户,也就是这里了 http://www.phpx.com - 中国PHP联盟 http://www.phpsite.net - PHP专门站 http://www.phpchina.com - PHP CHINA http://www.cpcw.com/netschool/homepage/cgi/ - 电脑报网页陶吧 国外 http://www.php.net/ - PHP官方站点 http://www.devshed.com/ - 极好的教程 http://px.sklar.com - 代码交换 http://www.phpbuilder.com/ - 教程、专栏和邮件列表档案 http://www.weberdev.com/ - 文章和代码 http://www.phpwizard.net/ - 提示与技巧 http://www.iometrics.com/php/phplist.php3/ - IOMetrics scripts的档案 http://www.e-gineer.com/phpkb/ - PHP知识库 6.2 邮件列表 你可以在PHP官方站点的"支持"栏目内登记获得以下的邮件列表。值得注意的是这些都是高流量流表,一般每天会有100份e-mail。 php3@lists.php.net - 主要的列表 php-dev@lists.php.net - 主要针对开发者 php-list@exp.com.cn - 本站的邮件列表,与论坛相通 6.3 引人注目的工程 一些基于PHP的工程已经发展得比较完善。其中一些更出色更引人注目的是: http:// phplib.netuse.de - PHPLib,一整套PHP函数库 http://www.phorum.org - Phorum是一个很完善的BBS系统 http://www.fishcartsql.org - FishCartSQL是一个电子商务解决方案 http://www.midgard-project.org - Midgard是一个网络应用开发平台 Generated by Bo-blog 2.0.2 sp2
程序的学习是一个循序渐进的过程,一些常用的或经典代码应该保存下来以便日后使用。本文就给出一些.net的经典代码,希望对大家有所帮助……   1.弹出对话框.点击转向指定页面   Response.Write("");   Response.Write("");   2.弹出对话框   Response.Write("");   3.删除文件  string filename ="20059595157517.jpg"; pub.util.DeleteFile(HttpContext.Current.Server.MapPath("../file/")+filename);   4.绑定下拉列表框datalist System.Data.DataView dv=conn.Exec_ex("select -1 as code,'请选择经营模式' as content from dealin union select code,content from dealin");   this.dealincode.DataSource=dv;   this.dealincode.DataTextField="content";   this.dealincode.DataValueField="code";   this.dealincode.DataBind();   this.dealincode.Items.FindByValue(dv[0]["dealincode"].ToString()).Selected=true;   5.间去秒显示   6.标题带链接 <%# ""+ DataBinder.Eval(Container.DataItem,"proname")+""%>   7.修改转向 <%# ""+"修改"+""%>   8.弹出确定按钮 <%# ""+"删除"+""%>   9.输出数据格式化 "{0:F2}" 是格式 F2表示小数点后剩两位   10.提取动态网页内容   Uri uri = new Uri("http://www.webjx.com/");   WebRequest req = WebRequest.Create(uri);   WebResponse resp = req.GetResponse();   Stream str = resp.GetResponseStream();   StreamReader sr = new StreamReader(str,System.Text.Encoding.Default);   string t = sr.ReadToEnd();   this.Response.Write(t.ToString()); 11.获取" . "后面的字符   i.ToString().Trim().Substring(i.ToString().Trim().LastIndexOf(".")+1).ToLower().Trim()   12. 打开新的窗口并传送参数:   传送参数:   Button1.Attributes.Add("onclick","return confirm('确认?')"); button.attributes.add("onclick","if(confirm('are you sure...?')){return true;}else{return false;}")   接收参数:   string a = Request.QueryString("id");   string b = Request.QueryString("id1");   13.为按钮添加对话框   Button1.Attributes.Add("onclick","return confirm('确认?')");   button.attributes.add("onclick","if(confirm('are you sure...?')){return true;}else{return false;}")   14.删除表格选定记录   int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];   string deleteCmd = "Delete from Employee where emp_id = " + intEmpID.ToString()   15.删除表格记录警告   private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)   {   switch(e.Item.ItemType)   {   case ListItemType.Item :   case ListItemType.AlternatingItem :   case ListItemType.EditItem:   TableCell myTableCell;   myTableCell = e.Item.Cells[14];   LinkButton myDeleteButton ;   myDeleteButton = (LinkButton)myTableCell.Controls[0];   myDeleteButton.Attributes.Add("onclick","return confirm('您是否确定要删除这条信息');");   break;   default:   break;   }   }   16.点击表格行链接另一页   private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)   {   //点击表格打开   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)   e.Item.Attributes.Add("onclick","window.open('Default.aspx?id=" + e.Item.Cells[0].Text + "');");   }   双击表格连接到另一页   在itemDataBind事件中   if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)   {   string orderItemID =e.item.cells[1].Text;   e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + orderItemID + "'");   }   双击表格打开新一页   if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)   {   string orderItemID =e.item.cells[1].Text;   e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + orderItemID + "')");   }   16.表格超连接列传递参数   <asp:HyperLinkColumn Target="_blank" headertext="ID号" DataTextField="id" NavigateUrl="aaa.aspx?id=' <%# DataBinder.Eval(Container.DataItem, "数据字段1")%>' & name='<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>' />   17.表格点击改变颜色 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)   {   e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';   this.style.color='buttontext';this.style.cursor='default';");   }   写在DataGrid的_ItemDataBound里 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)   {   e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';   this.style.color='buttontext';this.style.cursor='default';");   e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';");   }   18.关于日期格式   日期格式设定   DataFormatString="{0:yyyy-MM-dd}"   我觉得应该在itembound事件中 e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))   19.获取错误信息并到指定页面   不要使用Response.Redirect,而应该使用Server.Transfer   // in global.asax   protected void Application_Error(Object sender, EventArgs e) {   if (Server.GetLastError() is HttpUnhandledException)   Server.Transfer("MyErrorPage.aspx");   //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)   }   Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理   20.清空Cookie   Cookie.Expires=[DateTime];   Response.Cookies("UserName").Expires = 0 21.自定义异常处理   //自定义异常处理类   using System;   using System.Diagnostics;   namespace MyAppException   {   ///   /// 从系统异常类ApplicationException继承的应用程序异常处理类。   /// 自动将异常内容记录到Windows NT/2000的应用程序日志   ///   public class AppException:System.ApplicationException   {   public AppException()   {   if (ApplicationConfiguration.EventLogEnabled)LogEvent("出现一个未知错误。");   }   public AppException(string message)   {   LogEvent(message);   }   public AppException(string message,Exception innerException)   {   LogEvent(message);   if (innerException != null)
C#编程经验技巧宝典源代码,目录如下:第1章 开发环境 11.1 Visual Studio开发环境安装与配置 20001 安装Visual Studio 2005开发环境须知 20002 配置合适的Visual Studio 2005开发环境 20003 设置程序代码行序号 30004 开发环境全屏显示 30005 设置窗口的自动隐藏功能 30006 根据需要创建所需解决方案 40007 如何使用“验证的目标架构”功能 41.2 Visual Studio开发环境的使用 40008 为程序设置版本和帮助信息 40009 设置Windows应用程序启动窗体 50010 设置Web应用程序起始页 50011 如何设置程序的出错窗口 50012 如何进行程序调试 60013 如何结束不能正常运行的程序 60014 如何锁定窗体中的控件 60015 统一窗体中控件的字体设置 70016 通过“格式”菜单布局窗体 70017 起始页中的“Visual Studio开发人员新闻” 71.3 MSDN帮助的使用 80018 有效利用Visual Studio 2005附带程序 80019 有效使用MSDN帮助 90020 如何设置MSDN帮助 91.4 其他 100021 如何添加项目引用 100022 如何添加Web引用 100023 如何添加引用第3方控件 110024 如何生成DLL文件 110025 如何使用不安全代码 11第2章 语言基础 132.1 注释 140026 如何对代码进行注释 140027 #region、#endregion关键字的使用技巧 140028 “///”符号的使用技巧 140029 使用注释取消程序语句的执行 152.2 语句 150030 跳转语句GOTO的使用 150031 Continue语句的使用 160032 Break语句的使用 160033 Return语句的使用 170034 如何实现无限循环 170035 巧用foreach语句控制控件 180036 有效使用switch case语句 182.3 运算符 190037 如何使用引号赋值 190038 巧用“^=”运算符 190039 巧用位移运算符 200040 使用条件运算符 200041 巧用分隔符 200042 如何处理转义字符 210043 “;”结束符问题 210044 如何使用“??”操作符 222.4 表达式与关键词 220045 正确使用“&&”和“||” 220046 如何处理程序“溢出”错误 230047 有效使用base关键字 230048 typeof表达式的使用 230049 params关键字可以指定多参数 240050 using关键字的用法 240051 变量的作用域 252.5 其他 260052 有效使用this对象 260053 如何声明变量 260054 如何声明相同类型的多个变量 260055 利用Object变量传递参数 270056 强行改变运算符的运算顺序 27第3章 程序算法 293.1 数据结构 300057 如何实现单向链表 300058 如何实现双向链表 350059 如何实现堆栈 410060 队列的实现 430061 树的实现 443.2 排序 480062 如何实现选择排序算法 480063 如何实现冒泡排序算法 490064 如何实现快速排序算法 500065 如何实现插入排序算法 500066 如何实现希尔排序算法 513.3 常见算法的实际应用 520067 计算1+22+33+44+……+nn的值 520068 计算10!的值 520069 求最大公约数 520070 求最小公倍数 530071 判断素数的算法 530072 如何判断一个数是否是完数 540073 歌德巴赫猜想的算法 540074 八皇后问题 540075 用回溯法找出n个自然数中取r个数的全排列 550076 约瑟夫环问题 560077 猴子选大王 570078 如何判断IP是否正确 570079 如何将小写金额转换为大写金额 570080 统计文本字数 580081 文本中首字母改为大写 590082 C#随机数的产生 590083 身份证从15位升至18位算法 600084 十进制数转二进制数的算法 600085 十进制数转八进制数的算法 610086 十进制数转十六进制数的算法 620087 二、八、十六进制数转十进制数的算法 633.4 密码算法 650088 使用MD5算法对密码进行加密 650089 “凯撒”密码的算法 65第4章 字符及字符串处理技术 674.1 字符及字符串转换 680090 如何获得字母的ASCII码 680091 如何根据ASCII码获得字母 680092 编程中经常使用的ASCII码 680093 获得汉字的区位码 690094 如何根据区位码获得汉字 690095 如何将行字符串转换为列字符串 700096 如何将数字转换为字符串 700097 如何将字符串转换为数字 700098 如何将数字转换为日期格式 710099 如何将数字转换为货币格式 710100 将字母全部转换大写 710101 将字母全部转换小写 720102 将字符串首字母转换大写 720103 如何进行字节数组和字符串的相互转换 720104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 734.2 获取字符串信息 730105 如何获得一个字符串的长度 730106 如何获得一个字符串中数字的长度 740107 如何获得字符串中数字或字母的长度 740108 如何获得字符串中某个数字的位置 750109 获得字符串中汉字的个数 760110 获得字符串中指定后几位字符 760111 计算字符串中子字符串出现的次数 760112 获得字符串中大写字母的个数 770113 获得某字符在字符串中最后出现的位置 780114 如何找出字符串中某一字符的所有位置 784.3 常用字符及字符串处理技术 790115 如何判断是否为数字 790116 如何在字符串中查找指定字符 790117 如何在字符串中用一子串替换另一子串 800118 将新字符串添加到已有字符串中 800119 如何在字符串中添加多个空格 810120 如何根据标点符号分行 810121 如何将字符串颠倒输出 820122 如何设置小数的保留位数 820123 如何对字符串进行组合或分解 820124 判断字符串中某一字符是否大写 830125 按要求生成指定位数编号 830126 确定两字符串是否相等 840127 判断两字符串中指定子串是否相等 840128 判断字符串是否为日期格式 850129 清除字符串中指定的字符 850130 复制字符串中指定的字符 850131 巧截字符串的数字 860132 如何存储变长字符串 860133 在进行字符串比较忽略大小写 870134 如何去除字符串尾空格 870135 如何去掉字符串中所有空格 880136 如何进行文本加密与解密 880137 如何区别0、空字符串、Null、Empty和Nothing 890138 从字符串中分离文件路径、文件名及扩展名 890139 如何批量替换某一类字符串 89第5章 数据处理 915.1 数字处理技巧 920140 如何对计算结果四舍五放入 920141 如何将商品金额小写转换成大写 920142 如何根据生日自动计算员工年龄 930143 如何设置货币值中使用的小数位数 930144 如何自定义货币值中的小数点 940145 如何自定义货币值中小数点左边数字分组字符 940146 如何自定义货币值中小数点左边每一组的位数 950147 如何自定义百分比值中小数的位数 950148 如何自定义百分比小数点 960149 如何自定义百分比小数点左边数字分组字符 960150 如何自定义百分比小数点左边每一组的位数 970151 如何自定义百分比符号 970152 如何自定义数字小数点右边的保留位数 980153 如何自定义数字小数点左边分组位数 980154 格式化输入数据为货币格式 990155 如何计算两个整数的乘积 990156 如何将二进制数转换为十进制数 1000157 如何将二进制数转换为八进制数 1000158 如何将二进制数转换为十六进制数 1000159 如何实现0~9之间随机整数 1010160 如何实现0~1之间随机数 1010161 如何返回数字的绝对值 1015.2 控件数据处理技巧 1020162 如何实现C#中用键完成TAB的功能 1020163 如何限制文本框密码输入长度 1020164 数据输入为空提示 1030165 如何设置文本框光标到末尾 1030166 输入法调整技巧 1030167 锁定文本框内的文本 1030168 使用Message.Show输出用户信息 1045.3 图片数据处理技巧 1040169 如何将图片存入数据库 1040170 如何将图片从数据库中读取出来 1040171 如何只允许输入指定图片格式 1050172 如何设置录入图片统一图片大小 1055.4 数组处理技巧 1050173 如何转换数组类型 1050174 如何复制数组中一系列元素的元素 1060175 如何检索指定条件数组中的元素 1070176 如何动态改变数组长度 1080177 如何反转数组中元素的顺序 1080178 如何排序数组中的元素的顺序 1090179 如何创建动态数组 1105.5 NET应用技巧 1100180 如何使用ASP.NET技术对口令加密 1100181 如何设定ASP.NET全局变量 1110182 如何设定全局联接数据库对象 1110183 如何在ASP.NET中获得客户端IP地址 1110184 如何在ASP.NET中获取文件的扩展名 1110185 如何在ASP.NET中用URL在页面之间传值 1120186 如何使用IsPostBack实现ASP.NET页面加载 1120187 如何利用输出缓存技术缓存ASP.NET页面 1120188 如何在ASP.NET中显示当前IE浏览器头信息 1135.6 其他应用技巧 1140189 如何判断年份是否为闰年 1140190 如何根据年份判断十二生肖 1140191 如何根据IP地址获取本机域名 1150192 如何获取“我的文档”系统文件夹路径 1150193 如何获取应用程序当前执行的路径 1160194 如何获取当前操作系统的信息 1160195 如何实现基本数据类型随意转换 1160196 如何生成全局唯一标识符(GUID) 118第6章 资料验证技术 1196.1 网络验证应用技巧 1200197 如何使用正则表达式验证E-mail格式 1200198 如何使用正则表达式验证IP地址 1200199 如何使用正则表达式验证URL 1206.2 常用数字验证技巧 1210200 如何使用正则表达式验证电话号码 1210201 如何使用正则表达式验证输入密码条件 1210202 如何使用正则表达式验证邮政编号 1210203 如何使用正则表达式验证手机号 1220204 如何使用正则表达式验证身份证号 1220205 如何使用正则表达式验证两位小数 1220206 如何使用正则表达式验证一年的12个月份 1230207 如何使用正则表达式验证一个月的31天 1230208 如何使用正则表达式验证数字输入 1230209 如何使用正则表达式验证密码长度 1240210 如何使用正则表达式验证非零的正整数 1240211 如何使用正则表达式验证非零的负整数 1246.3 常用字符验证技巧 1250212 如何使用正则表达式验证大写字母 1250213 如何使用正则表达式验证小写字母 1250214 使用正则表达式检查字符串中重复出现的词 1250215 如何使用正则表达式替换字符串 1260216 如何使用正则表达式拆分字符串 1270217 如何使用正则表达式验证输入字母 1270218 如何使用正则表达式验证中文汉字输入 1280219 如何使用正则表达式验证输入字符串 128第7章 日期间 1297.1 日期间的获取 1300220 获得系统当前日期 1300221 获得系统当前间 1300222 同获得系统当前日期间 1300223 如何获取当前日期是星期几 1300224 如何获取当前年的天数 1310225 如何获取当前月的天数 1310226 如何取得当前日期的前一天 1320227 使用TimeSpan对象获取间间隔 1337.2 日期的格式化及其间的比较 1330228 将日期格式化为指定格式 1330229 如何将短日期格式化为长日期格式 1340230 如何将数字日期转化为中文格式 1340231 如何对系统间和数字进行比较 1350232 如何比较间 1350233 获取两个日期之间的间差并进行比较 1367.3 日期方法与函数的应用 1360234 使用DateDiff方法获取日期间的间隔数 1360235 在SQL语句中使用DATEADD函数向指定日期添加一段间间隔 1370236 在SQL语句中使用DATEDIFF函数获得两个日期的间隔 1370237 如何使用Sleep方法延迟间 1370238 如何确定程序的运行间 1380239 如何使用ParseExact方法将字符串转化为日期格式 1380240 如何使用ToString方法格式化日期 1390241 如何使用Convert方法转换日期显示格式 1397.4 系统间与日期的设置 1400242 如何设置系统的日期 1400243 如何设置系统的间 1400244 如何设置系统的日期间 1417.5 日期间的应用 1420245 如何将数据控件中的日期以编程的方式转化为指定格式 1420246 将格式化日期的方法绑定到数据控件中 1420247 直接格式化绑定到数据控件GridView中的日期列 1430248 在数据控件GridView的RowDataBound事件中对绑定到GridView控件的日期列进行格式化 1430249 如何实现倒计功能 1430250 如何创建一个数字钟 144第8章 Windows窗体设计 1458.1 Windows窗体基本操作 1460251 控制窗体加载所在的位置 1460252 控制窗体最大化、最小化 1460253 清空窗体中的图片 1460254 如何使程序窗体总在最前 1470255 如何将菜单置于窗体的左侧 1470256 将其他窗体作为当前窗体的子窗体 1470257 如何根据控件大小自动显示滚动条 1480258 如何显示About窗体 1480259 利用Show方法显示被调用窗体 1490260 Load事件将窗体加载到内存 1490261 窗体的卸载与隐藏 1490262 设置窗体的状态 1490263 如何设置窗体在桌面上的位置 1500264 如何在关闭窗体前显示确认对话框 1500265 如何去掉窗体的标题栏 1510266 如何禁止在任务栏中显示窗体标题 1520267 如何禁止缩放窗体的边框 1520268 如何设置窗体标题栏文字右对齐 1520269 如何显示窗体的属性信息 1530270 如何隐藏窗体标题栏的按钮 1538.2 Windows窗体高级操作 1530271 设置闪烁的标题栏 1530272 如何在托盘中写入应用程序图标 1540273 如何以全屏方式显示程序窗体 1540274 如何从上次关闭位置启动窗体 1540275 如何通过拖动工作区来移动窗体 1550276 如何渐变显示窗体背景颜色 1550277 如何排列MDI窗体中的子窗体 1560278 如何拖动无标题栏窗体 1578.3 特殊类型的窗体 1580279 创建一个无ICON的窗体 1580280 如何制作飘动的窗体 1580281 使用拆分窗口 1590282 用C#实现启动欢迎界面 1590283 如何实现半透明渐显窗体 1600284 基于ListView的导航界面 1600285 类似OutLook的导航界面 1620286 图形化的导航界面 1620287 如何实现类似QQ的程序界面 1620288 如何实现类似Windows XP的程序界面 1640289 制作字形窗体 1640290 制作图形窗体 1640291 随机更换背景的窗体 1658.4 菜单、工具栏和状态栏的设计 1660292 带图标的菜单 1660293 带历史信息的菜单 1660294 可以拉伸的菜单 1670295 带背景的工具栏 1680296 浮动工具栏 1680297 带下拉菜单的工具栏 1690298 在状态栏中显示复选框 1690299 带进度条的状态栏 1690300 带图标的状态栏 1708.5 其他 1700301 界面设计要素 1700302 界面设计在程序开发中的重要性 1710303 如何设置窗体的键响应按钮 1720304 如何设置窗体的键响应按钮 1720305 窗体间数据的访问 172第9章 Windows窗体控件 1759.1 TextBox控件应用技巧 1760306 文本框中只能输入数字 1760307 如何设置TextBox控件输入多行文本 1760308 如何锁定文本框 1760309 如何控制TextBox控件中的插入点 1760310 如何创建密码文本框 1770311 如何创建只读文本框 1770312 如何在文本框字符串中放置引号 1770313 如何在TextBox控件中查看多个行 1770314 如何TextBox控件中显示回车符 1789.2 RichTextBox控件应用技巧 1780315 删除RichTextBox控件中的部分文字 1780316 RichTextBox与TextBox控件有何不同 1790317 如何使用RichTextBox控件显示文件 1790318 如何使用RichTextBox控件保存文件 1800319 如何在RichTextBox控件中查找字符 1810320 如何在RichTextBox控件插入图片 1810321 如何为RichTextBox控件添加快捷菜单 1820322 在RichTextBox控件中替换文本文字 1839.3 Button控件应用技巧 1830323 C#中轻松打造绚丽按钮 1830324 如何使Button控件大小自动适应文本长度 1840325 如何设置窗体一个默认单击按钮 1840326 如何设置窗体一个默认取消按钮 1840327 如何给按钮控件创建快捷键 1850328 如何触发Button按钮的Click事件 1850329 使用控件的Tag属性传递信息 1850330 如何在Windows窗体上停靠控件 1860331 如何动态创建Button控件 1869.4 DataGridView控件应用技巧 1870332 如何对DataGridView控件进行数据绑定 1870333 如何在DataGridView控件中设置数据的格式 1870334 如何在DataGridView控件基于文本的单元格中启用换行 1870335 如何设置DataGridView控件单元格的文本对齐方式 1870336 如何在DataGridView控件中验证数据输入 1880337 DataGridView控件中输入数据发生的错误 1880338 如何设置DataGridView控件中网格线的样式 1890339 如何设置DataGridView控件中的边框样式 1890340 如何设置DataGridView控件中字体样式 1900341 如何设置DataGridView控件中颜色样式 1900342 获取DataGridView控件中单元格、行和列坐标 1900343 如何获取DataGridView控件中的当前单元格 1910344 如何禁止DataGridView控件中添加和删除行 1910345 DataGridView控件选中单元格整个行背景变色 1910346 如何复制DataGridView控件单元格中的数据 1910347 如何在DataGridView控件实现下拉列表 1929.5 对话框控件应用技巧 1920348 如何利用FontDialog控件设置字体 1920349 如何利用ColorDialog控件设置字颜色 1930350 如何利用OpenFileDialog控件打开文件 1930351 如何获得弹出对话框的相关返回值 1940352 使用FolderBrowserDialog控件选择文件夹 1959.6 ListBox控件应用技巧 1950353 如何快速选中ListBox控件中全部条目 1950354 如何排序ListBox控件中的数据 1960355 如何实现ListBox控件的多项选择功能 1960356 如何在ListBox控件中查找指定的项 1960357 实现ListBox控件与ListBox控件交换数据 1979.7 ListView控件应用技巧 1980358 如何实现ListView控件实现动态加载数据 1980359 如何向ListView控件添加搜索功能 1990360 如何将数据中的表内容填充到ListView控件中 2000361 如何使ListView控件拥有编辑功能 2010362 如何实现ListView控件显示图标与列表 2010363 如何获取ListView控件中的选择结果 2020364 如何将图片加载ListView控件 2029.8 TreeView控件应用技巧 2030365 如何在TreeView控件结点中显示图片 2030366 如何在TreeView控件中用鼠标右键选中节点 2030367 区分TreeView控件选中各节点方式 2040368 如何实现TreeView控件节点拖放操作 2040369 如何实现带复选框的TtreeView控件 2050370 如何实现TreeView控件遍历磁盘目录 2060371 如何将数据库字段填充到TreeView控件 2069.9 ComboBox控件应用技巧 2070372 如何使ComboBox下拉列表显示图片 2070373 ComboBox只能从下拉列表框中选择数据 2080374 如何实现带查询功能的ComboBox控件 2080375 如何实现文件目录名称填充ComboBox控件 2090376 如何将数组绑定到ComboBox控件 2100377 如何将数据库字段绑定到ComboBox控件 2109.10 组件应用技巧 2110378 如何使用ProgressBar控件显示操作的进度 2110379 如何使用ToolTip控件显示提示信息 2110380 如何使用FlowLayoutPanel控件布局窗体 2120381 如何使用SplitContainer控件分隔窗体 2130382 如何使用Process组件打开系统进程 2140383 FileSystemWatcher监视文件夹内文件的更改 2149.11 其他常用件控件应用技巧 2150384 如何在状态栏中显示间 2150385 如何在状态栏中加载图片 2150386 如何设置DateTimePicker控件显示为空文 2150387 如何判断ToolStrip控件Button控钮的单击 2150388 如何实现Panle自动调整大小充满窗体 2160389 如何实现CheckedListBox控件选重所有项 2160390 如何实现CheckBox控件的选择状态 2160391 如何使Lable控件显示出多行文字 2170392 如何使用LinkLabel控件实现超级链接 2170393 如何设置MaskedTextBox控件输入验证 2180394 如何使用NotifyIcon控件创建任务托盘 2190395 如何控制PictureBox控件显示图片风格 219第10章 Web页面设计 22110.1 网页外观设计 2220396 将CSS样式表应用到页面中 2220397 在页面的源码中直接定义样式表 2220398 动态加载主题到页面中 2230399 利用Table布局Web页面 2230400 FrameSet框架的应用 2240401 IFrame框架的应用 2240402 页面尺寸自动适应1024×768像素和800×600分辨率 22510.2 网页性能设计 2250403 用meta标签来增强网页性能 2250404 什么情况下使用缓冲会提高速度 2260405 使用OutputCache指令实现页面缓存 2260406 设置网页缓存的位置 2270407 使用Cache类实现应用程序数据缓存 2270408 缓存网页的不同版本 22710.3 Web页的绑定 2280409 如何绑定变量 2280410 如何绑定集合 2280411 如何绑定表达式 2290412 如何绑定方法结果 2300413 巧用DataBinder.Eval()方法进行数据绑定 2300414 如何将DropDownList控件绑定到GridView控件中 23110.4 开发Web页的常用功能 2310415 使用QueryString变量在页面之间传值 2310416 页面定刷新如何实现 2320417 显示只有数字的验证码图片 2320418 显示数字和英文字母组合的验证码图片 2320419 页面定刷新后跳转到其他页 2330420 打开新的窗口并传送参数 2330421 动态显示用户头像 2330422 利用Pannel控件显示和隐藏一组控件 2330423 如何在GridView控件上添加删除确认 2340424 如何为GridView控件添加编号列 2340425 FindControl方法的应用 2340426 如何实现单击表格行打开另一页并传递参数 2350427 如何实现双击表格行超级链接到另一页并传递参数 2350428 如何实现单击表格行改变颜色 2350429 鼠标移动改变表格行的颜色 2350430 如何在Web页中使用表格控件 23610.5 Web.Config文件的配置 2370431 通过Encoding的设置实现页面无乱码 2370432 限制上传文件大小与间 2370433 配置验证级别 23710.6 开发Web页其他功能 2380434 如何使Pannel实现横向滚动纵向自动扩展 2380435 属性MaintainScrollPositionOnPostBack实现网页定位 2380436 自动隐藏式菜单 2380437 关闭弹出窗口刷新父窗口 2390438 弹出网页模式对话框 2400439 弹出全屏显示网页 2410440 为什么要生成静态页 2420441 用快捷键+实现屏蔽 2420442 如何在Web页中使用广告控件 2420443 滚动显示博客公告 243第11章 HTML客户端控件与服务器控件 24511.1 数据控件应用技巧 2460444 如何将数组绑定到GridView数据控件中 2460445 使用GridView Web服务器控件绑定数据源 2460446 使用GridView Web服务器控件自定义外观风格 2470447 使用GridView Web服务器控件的简单排序 2470448 如何在GridView Web服务器控件中分页 2480449 使用GridView Web服务器控件编辑数据 2490450 使用GridView Web服务器控件删除数据 2510451 如何使用GridView Web服务器控件选择数据 2520452 单击GridView控件按钮刷新保持原来的位置 2530453 向GridView Web控件中添加CheckBox控件 2530454 如何使用GridView Web控件实现超级链接 2540455 在GridView Web控件中高亮显示鼠标所在行 2560456 实现DataList Web服务器控件数据绑定功能 2560457 如何实现DataList Web服务器控件分页功能 2580458 实现查看DataList控件中数据的详细信息 2590459 如何在DataList控件中创建多个列 2600460 如何实现DetailsView 控件分页功能 2610461 将DataSet类对象绑定到Repeater数据控件中 26211.2 导航控件应用技巧 2630462 TreeView、SiteMapDataSource控件和SiteMap文件实现导航 2630463 如何在TreeView控件中添加连接线 2640464 以编程方式向TreeView控件中添加节点 2640465 如何在TreeView控件中显示CheckBox控件 2650466 如何判断TreeView控件中被勾选的节点 2650467 用SiteMapPath控件绑定SiteMap文件实现导航 2660468 如何设置SiteMapPath控件路径分隔符 2660469 如何设置SiteMapPath控件路径方向 2670470 如何设置SiteMapPath控件父节点显示个数 2670471 如何设置SiteMapPath控件提示字符 2680472 如何用Menu控件绑定SiteMap文件实现导航 2680473 如何设置Menu控件显示静态菜单 2690474 如何以编程方式创建Menu控件 27011.3 标准控件应用技巧 2710475 使用HyperLink服务器控件实现页面间传值 2710476 如何使用Input(Reset)实现文本框清空功能 2710477 如何取消DropDownLidt控件的激发验证 2720478 使用FileUpload服务器控件实现文件上传 2720479 使用LinkButton服务器控件实现超级链接 2730480 实现DropDownList服务器控件的数据绑定 2730481 如何改变DropDownList服务器控件中的项 2740482 指定ListBox服务器控件中的项的目的移位顺序 2750483 响应ListBox服务器控件的改变事件 2760484 如何使用CheckBox服务器控件 2760485 如何使用CheckBoxList服务器控件 2770486 使用RadioButtonList服务器控件巧用单项选择 2780487 使用BulletedList控件显示项目符号和编号 2790488 如何使用HiddenField控件 2800489 如何使用Literal控件显示静态文本 2810490 如何使用AdRotator控件制作广告 2810491 如何使用Wizard Web服务器控件制作导航页 2820492 使用XML服务器控件转换XML文档 2830493 使用MultiView与View控件制作导航页面 2860494 使用PlaceHolder控件实现动态添加控件 2890495 如何实现带滚动条的Panel面板 2900496 使用Substitution控件在缓存页面插入内容 290第12章 内置对象 29312.1 ASP.NET基本对象 2940497 使用Session对象在页面之间传值 2940498 如何使用Session验证用户登录 2940499 配置Session的生命周期 2940500 如何遍历Session对象 2950501 使用Application对象在页面之间传值 2950502 存取Application变量内容 2950503 如何锁定Application对象 2960504 如何使用Application实现站点访问量统计 2960505 如何删除Application变量内容 2960506 使用ViewState对象在同一个页面传值 29712.2 Response与Request对象 2970507 如何解决Response.Redirect方法传递汉字出现的错误 2970508 使用Response.BinaryWrite方法输出二进制图像 2970509 Response对象将文本文件的内容写回客户端浏览器 2980510 如何使用Request接收页面间传值 2980511 使用Request对象的Browser属性获取客户端浏览器信息 2980512 获取客户端和服务器端IP地址 2990513 使用Request对象获取客户端的表单信息 3000514 使用Request对象的PhysicalApplicationPath属性获取服务器的绝对路径 3000515 使用Request对象的CurrentExecutionFilePath属性获取当前页面的路径 3000516 如何获取ASP.NET中所有Request的属性 3000517 缓存区的应用 30112.3 Cookie对象 3020518 使用Cookie的优缺点 3020519 使用Cookie对象在页面之间传值 3020520 如何使用Cookie验证用户登录 3030521 Cookie可以存储哪些值 3030522 使用Cookie对象保存和读取客户端信息 3030523 如何加密Cookie中的数据 3040524 创建及存取多个键值的Cookie对象 3040525 如何遍历Cookie集合 3040526 设定Cookie变量的生命周期 3050527 如何删除客户端的Cookies 3050528 如何删除多值Cookie中的某个值 3050529 如何使用Cookie处理网上重复投票 3050530 如何使用户第2次访问我的网站不用提交信息 30612.4 Server对象 3070531 使用Server.Transfer方法在页面之间传值 3070532 使用Server.MapPath方法获取服务器的物理地址 3080533 使用Server.UrlEncode方法对字符串进行编码 3080534 使用Server.UrlDecode方法对字符串进行解码 3080535 利用Server对象进行HTML编码输出 3080536 利用Server对象进行HTML解码输出 309第13章 图形图像技术 31113.1 图像预览及转换 3120537 如何设计缩略图功能的图片浏览器 3120538 如何浏览大图片 3120539 如何局部放大图片 3130540 如何实现剪切图片 31313.2 图形缩放与变换 3150541 如何缩放图片 3150542 如何转换图像文件格式 31513.3 图像效果 3160543 如何以底片效果显示图像 3160544 如何以浮雕效果显示图像 3170545 如何以黑白效果显示图像 3180546 如何以柔化效果显示图像 3190547 如何以锐化效果显示图像 3200548 如何以雾化效果显示图像 3210549 如何以光照效果显示图像 3220550 如何以百叶窗效果显示图像 3230551 如何以马赛克效果显示图像 3250552 如何以任意角度旋转图像 3260553 如何以椭圆形显示图像 3270554 如何以不同的透明度显示图像 3280555 如何以不同分辨率显示图像 3280556 如何以不同翻转方式显示图像 3290557 如何以油画效果显示图像 3300558 如何以扭曲效果显示图像 3310559 如何以分块效果显示图像 3320560 如何以四周扩散方式显示图像 3330561 如何以从上向下拉伸方式显示图像 3340562 如何以从左向右拉伸方式显示图像 3350563 如何以上下反转方式显示图像 3350564 如何以上下对接方式显示图像 3360565 如何以左右反转方式显示图像 3370566 如何以左右对接方式显示图像 3380567 如何以淡入淡出效果显示图像 3390568 如何以积木效果显示图像 34113.4 图像字体 3420569 如何以渐变色效果显示文字 3420570 如何以倾斜效果显示文字 3430571 如何以阴影效果显示文字 3430572 如何以倒影效果显示文字 3440573 如何以投影效果显示文字 3440574 如何以浮雕效果显示文字 3450575 如何以印版效果显示文字 3460576 如何为文字填充图片纹理 3460577 如何创建可旋转文字 34713.5 图像识别及图像工具 3470578 如何获取图像的像素值 3470579 如何设置图像的像素值 3480580 如何校正图像显示颜色 3490581 如何使用阈值校正图像显示颜色 3510582 如何获得图像信息 3520583 如何制作简单的画图工具 3530584 如何将图片以Image类型存储到数据库 3560585 如何从数据库中读取Image类型的字段 35713.6 图像应用及其他 3580586 如何在Web页面上显示图像 3580587 绘制渐变背景图像 3590588 确定鼠标是否在图形范围内 3590589 如何绘制柱形图 3600590 如何绘制饼形图 3620591 如何绘制折线图 3640592 如何绘制图形验证码 3660593 如何在桌面上全屏显示图像 3670594 如何利用Image制作小动画 3680595 如何使用鼠标拖动图片 3680596 如何获取当前鼠标的形状 369第14章 动画与多媒体 37114.1 声音控制 3720597 如何播放WAV声音文件 3720598 如何播放默认的Beep事件声音 3720599 如何播放默认的Hand事件声音 3720600 如何播放默认的Asterisk事件声音 3720601 如何播放默认的Question事件声音 3730602 如何播放默认的Exclamation事件声音 3730603 如何设置计算机喇叭发出的声音 3730604 如何同步加载并播放声音文件 3740605 如何异步加载并播放声音文件 37414.2 多媒体及其他 3750606 C#实现动画效果 3750607 C#设计屏幕保护程序 3750608 如何实现滚动字幕 3760609 如何播放AVI动画文件 3760610 如何播放Flash 3770611 用C#实现家庭影集 3780612 C#实现电影特效 3790613 如何实现Word艺术字 3790614 检查是否安装声卡 3800615 带有记忆功能的MP3 3800616 打开和关闭光驱 3810617 如何收听网络电台 3820618 如何通过剪贴板复制粘贴图像 3820619 如何转换图像文件的保存格式 3830620 如何制作自动播放的MP3播放器 3840621 学校体操定音乐播放 3850622 如何从ARGB分量值创建Color结构 3850623 如何动画显示窗体 3860624 如何获取系统的图像编码器信息 3870625 如何获取系统的图像解码器信息 388第15章 键盘与鼠标 38915.1 鼠标操作技巧 3900626 鼠标双击窗体模拟键盘Tab键操作 3900627 定义鼠标指针形状 3900628 自定义鼠标的图片 3910629 鼠标拖放复制文本 3910630 如何使用鼠标单击添加控件 3920631 如何获得鼠标在窗体上的位置 3920632 如何交换鼠标左右键功能 3920633 如何隐藏和显示鼠标 3930634 如何获取光标闪烁的频率 3940635 如何获得屏幕上鼠标的坐标 3940636 如何限制鼠标在某一区域工作 3940637 如何利用鼠标绘图 3950638 如何获取鼠标双击间间隔 3960639 如何获取鼠标键数 3960640 如何显示鼠标的等待光标 3970641 如何禁用鼠标左键 3970642 如何模拟鼠标操作 3980643 如何实现鼠标穿透窗体 3990644 如何记录鼠标行为 39915.2 键盘操作技巧应用 4000645 如何禁用输入法编辑器 4000646 如何打开和关闭输入法编辑器 4000647 回车转换成Tab键 4000648 如何获取组合键 4010649 如何获取功能键 4010650 如何判断NumLock键和CapsLock键是否锁定 4010651 如何屏蔽+键关闭窗体 4020652 如何实现按下键关闭窗体 4020653 如何避免按键产生“嘀”声 4030654 如何设置键盘热键 403第16章 文件、文件管理及数据流 40516.1 获取文件基本信息 4060655 获取文件创建的日期间 4060656 如何检索路径中的文件名和扩展名 4060657 如何获得文件的大小 4070658 如何修改文件属性 4070659 如何监视文件系统变化情况 4080660 如何获取文件的系统启动方式 4080661 如何获取文件名禁止使用的字符 4090662 如何获取路径名禁止使用的字符 4100663 如何获取指定目录的上级目录 41016.2 文件基本操作 4110664 判断文件是否存在 4110665 创建一个文件用于写入UTF-8编码的文本 4110666 OpenRead方法打开现有文件并读取 4120667 打开现有UTF-8编码文本文件并进行读取 4120668 OpenWrite方法打开现有文件并进行写入 4130669 如何读取文件中的第一行数据 4130670 如何向文件中写入数据 4130671 如何读取文件中所有数据 4140672 如何创建临文件 4140673 如何实现文件替换 4150674 使用递归法删除文件夹中所有文件 4150675 如何更改文件扩展名 4160676 如何实现复制文件 4160677 如何修改文件名 4160678 如何删除文件 4170679 如何上传文件 4170680 如何下载文件 4180681 如何拖放文件 4190682 如何搜索文件 41916.3 文件夹基本操作 4200683 如何创建文件夹 4200684 如何移动文件夹 4200685 如何修改文件夹名称 4210686 如何遍历文件夹 4210687 如何删除文件夹 42216.4 数据流操作 4220688 如何读写内存数据流 4220689 如何创建二进制文件 4230690 如何读取二进制文件 4230691 如何使用缓冲流 42416.5 加密、解密及解压缩文件 4250692 加密和解密文件 4250693 如何使用对称算法加密文件 4250694 如何使用对称算法解密文件 4260695 如何使用GZip压缩文件 4270696 如何使用GZip解压文件 4280697 如何使用WinRAR压缩文件 4290698 如何使用WinRAR解压文件 42916.6 其他 4300699 设置文件的访问模式 4300700 如何在C#应用程序中使用INI文件 4300701 如何操作帮助文件 4310702 如何操作Word文件 4320703 如何操作Excel文件 4330704 如何将文本文件转换成网页文件 4340705 如何产生随机文件夹名或文件名 4350706 如何将长文件名转换成短文件名 4360707 如何用程序创建XML文档并写入内容 4360708 如何通过DataSet对象读取XML文件 4380709 如何动态创建XML文件节点 4390710 如何实现XML文件数据类型的转换 4390711 将图片保存到XML文件中 4400712 如何比较两个文件的内容是否相同 4400713 如何以缩略图形式上传图片文件 4410714 如何解析只有一种格式的文本文件 4420715 如何解析含有多种格式的文本文件 443第17章 Windows开发技术 44517.1 获取计算机系统信息 4460716 如何获取系统间 4460717 如何获取系统目录 4460718 如何获取计算机名称 4460719 如何获取当前程序运行目录 4460720 如何获得操作系统版本号 44617.2 获取计算机硬件信息 4460721 如何获取CPU编号 4460722 如何获取显示设备的PNPDeviceID 4470723 如何获取声音设备的PNPDeviceID 4470724 如何获取硬盘编号 4470725 如何获取CPU的版本信息 4480726 如何获取CPU的产品名称信息 4480727 如何获取CPU的制造商名称 4480728 如何获取主板制造商 4490729 如何获取主板编号 4490730 如何获取主板型号 4490731 如何获取磁盘空间 4500732 如何获取磁盘剩余空间 4500733 如何确定屏幕的分辨率 4510734 如何获得磁盘的卷标 4520735 如何获得磁盘的文件系统类型 45217.3 获取特殊文件夹路径 4530736 如何获取ProgramFiles目录全路径 4530737 如何获取桌面目录全路径 4530738 如何获取开始菜单目录全路径 4540739 如何获取用户程序组目录全路径 4540740 如何获取文档模板目录全路径 4550741 如何获取收藏夹目录全路径 4550742 如何获取共享组件目录全路径 4560743 如何获取我的图片目录全路径 4560744 如何获取Internet历史记录全路径 4570745 如何获取Internet临文件目录全路径 4570746 如何设置可用样式 45717.4 获得Windows当前用户 4580747 如何获取当前用户 4580748 如何判断当前用户是否是普通用户 4580749 如何判断当前用户是否是超级用户 4580750 如何判断当前用户是否是系统管理员 4590751 如何判断当前用户是否是系统操作员 4590752 如何判断当前用户是否是备份操作员 4600753 如何判断当前用户是否是打印操作员 4600754 如何判断当前用户是否是复制程序员 4610755 如何判断当前用户是否是账户操作员 46117.5 Windows日志 4620756 如何获取系统日志信息 4620757 如何获取安全日志信息 4620758 如何获取应用程序日志信息 4630759 如何创建并写入自定义日志信息 4640760 如何向系统日志写入自定义数据 4640761 如何向应用程序日志写入自定义信息 46517.6 计算机控制 4650762 列举系统中所有窗口 4650763 C#实现键盘钩子 4650764 如何关闭计算机 4660765 如何抓屏 4660766 如何休眠计算机 4670767 如何禁止使用Windows任务管理器 4680768 如何为文件新增右键菜单项 4680769 如何设置系统仅能运行的程序 4690770 如何获取本地计算机上所有的进程 4690771 如何启动一个进程 4700772 怎样杀死一个进程 4700773 如何获取远程计算机上所有的进程 47017.7 其他相关技术 4700774 如何在注册表中保存窗体的大小和位置 4700775 如何实现程序间注册表内传递变量 4710776 在使用OpenFileDialog中的相对路径问题 4710777 如何设置启动自动执行程序 4710778 C#编程实现Windows XP风格的界面 4710779 用C#实现文件查找功能 4730780 如何序列化对象 4730781 如何实现特殊形状的窗体 4740782 如何移动正在使用的文件 4740783 如何实现类似QQ的程序界面 4750784 如何实现动画显示窗体 4760785 如何显示和隐藏任务栏 4770786 如何实现OutLook界面 4780787 如何在C#中回车换行 4780788 如何获取进程的命令行 4790789 如何按行读取文本并显示行数 4790790 如何在Form中嵌入Excel 4790791 如何使用互斥量禁止程序运行两个实例 4800792 如何使用进程名禁止程序运行两个实例 4800793 如何获取控制台应用程序的显示结果 4810794 如何用@代替路径中的转义字符 482第18章 程序应用控制 48318.1 提取信息 4840795 判断驱动器类型并获取其属性 4840796 如何得到本地机器的IP 4840797 如何得到本地运行的EXE的路径 4850798 得到计算机所有正在运行的进程 4850799 获得Windows的启动模式 4850800 获取鼠标的按钮个数及鼠标安装状态 4850801 检测计算机是否存在网络连接 4860802 如何判断计算机的联机状态 4860803 获取计算机屏幕分辨率 4860804 获取计算机当前登录的用户名称 48618.2 系统控制 4860805 远程关闭或重新启动计算机 4860806 创建应用程序快捷方式 4870807 启动Windows系统服务 4880808 在C#应用程序中控制输入法 4880809 打开“区域和语言选项”对话框并指定选项卡 4890810 如何执行命令行命令? 4890811 如何修改计算机的默认打印机 4900812 如何实现行业软件系统注销功能 4900813 如何将计算机设置为休眠状态 4900814 在Windows系统中建立事件日志 4910815 如何使PC喇叭发音 49118.3 程序控制 4910816 使用回车键控制鼠标焦点 4910817 如何调用可执行应用程序 4920818 TextBox上禁用鼠标右鍵 4920819 如何实现屏幕截图 4920820 如何将截取的图片保存为指定图片格式 4930821 如何复制程序本身 4930822 分段显示电话号码颜色 4930823 软件版本号是如何组成的 4930824 单击“关闭”按钮或按+键最小化窗口 4940825 屏蔽RichTextBox控件+快捷键 49518.4 其他 4950826 将DataGridView控件中的数据导入Excel 4950827 无法获取自定义环境变量的值 4960828 将组件放到COM+服务器上去 4960829 调用非托管的DLL文件 4970830 如何将GridView控件数据导入Word 4970831 如何将GridView控件数据导入Excel 4970832 单片机如何实现在线调试 4980833 单片机如何实现内存优化管理 4980834 单片机实现文件系统管理 4980835 杀死进程 4980836 如何下载某网站上的图片资源 498第19章 SQL查询相关技术 50119.1 常用SQL查询技术 5020837 如何在查询中正确使用单引号“’” 5020838 SQL中SELECT语句的执行顺序 5020839 在查询查询数据为指定长度的数据 5020840 如何利用WHERE参数过滤数据 5030841 如何正确地理解和运用SQL中的判式 5030842 如何正确地理解和使用SQL中的关键字 50319.2 比较、逻辑运算符查询 5040843 如何使用算术运算符号进行比较查询 5040844 如何使用比较运算符号进行比较查询 5040845 如何使用AND逻辑运算符查询 5050846 如何使用OR逻辑运算符查询 5060847 如何联合使用AND和OR运算符查询 5060848 如何在查询中正确使用逻辑操作符 5070849 利用通配符进行查询 50719.3 SQL关键字查询 5080850 如何使用ESCAPE关键字规定转义字符 5080851 如何使用BETWEEN进行范围查询 5080852 如何使用NOT BETWEEN进行范围查询 5090853 如何使用GROUP BY子句查询 5090854 如何使用HAVING语句过滤分组数据 5100855 如何使用ALL关键字查询 5100856 如何使用CUBE关键字查询 51119.4 表结构与性能 5110857 检测信息是否存在 5110858 @@CPU_BUSY获取CPU的工作间 5110859 如何获取磁盘读写次数 5120860 获取SQL Server服务器名 5120861 获取数据库标识号 5120862 判断用户是否访问数据的权限 5120863 显示表中列信息 5120864 显示表中任意列名称 5130865 提高SQL性能加快执行速度 5130866 控制批处理内语句的执行 5130867 执行查询但是显示列信息 5140868 获取连接或试图连接的次数 5140869 获取当前数据库的语言名 51419.5 间与谓词 5140870 间函数的使用 5140871 设置数据库间表显形式 5150872 格式化日期显示格式 5150873 如何正确理解SQL中的NULL值 5160874 如何使用IsNull()函数来处理空值 5160875 如何使用Nullif()函数来处理空值 5160876 查询空值(NULL)的技巧 5170877 利用关键字DISTINCT去除重复记录 5170878 巧用TOP子句获取信息 5180879 巧用CONTAINS谓词检索信息 5180880 通过ISNULL替换信息 5190881 比较COMPUTE和GROUP BY 5190882 如何对指定间段进行查询 5190883 对某期间的数据进行查询的几种方法 5190884 NOT与谓词进行组合条件的查询 52019.6 聚合函数 5200885 聚合函数SUM的使用 5200886 聚合函数AVG的使用 5210887 如何使用聚合函数MAX 5210888 如何使用聚合函数MIN 5220889 如何使用聚合函数COUNT 5220890 如何使用聚合函数First或Last 52319.7 子查询与连接查询 5230891 union与连接之间的区别 5230892 如何应用IN查询表中的记录信息 5240893 使用一个单行的子查询来更新列 5240894 使用IN引入子查询限定查询范围 5240895 在UPDATE语句中应用子查询 5250896 如何应用子查询 5250897 EXISTS与子查询联合应用 5250898 在FROM子句中的子查询 5250899 在DELETE语句中应用子查询 5260900 子查询与聚合函数的应用 5260901 有效使用内连接 5260902 如何使用LEFT OUTER JOIN查询 5260903 如何使用RIGHT OUTER JOIN查询 5270904 利用CASE语句查询结果 52719.8 交叉表 5280905 Access中利用TRASFORM分析数据 5280906 Access中利用TRASFORM动态分析数据 5290907 SQL Server实现静态交叉表 5290908 SQL Server实现动态交叉表 53119.9 常用数据操作 5320909 如何对字符串进行查询 5320910 如何进行单条数据的添加 5330911 如何进行批量数据的添加 5330912 如何对数据进行修改 5340913 如何对数据进行删除 5340914 对数据库数据进行局部删除 53419.10 高级应用 5350915 如何使用临表 5350916 如何查询表中的列名 5350917 在查询中如何防止输入指定符串 5360918 查询指定长度的数据 5360919 获取当前数据库的详细信息 5370920 在查询过程中灵活定义与使用别名 53819.11 视图、存储过程和触发器的使用 5380921 如何正确认识视图 5380922 如何获取数据库中的全部用户视图 5390923 如何通过视图修改数据 5390924 如何正确理解存储过程 5400925 如何获取数据库中的全部存储过程 5400926 如何正确认识触发器 5410927 Update触发器在系统日志中的应用 5420928 触发器的嵌套使用 5420929 获取数据库中的触发器 54319.12 其他 5440930 在查询程序中使用变量 5440931 对查询结果进行排序 5440932 批量获取结果集信息 5450933 对查询结果生成表 5450934 实现数据类型转换 5460935 获取当前数据库的登录用户名 5460936 如何正确理解数据库键字 5460937 将结果转换为XML形式 5470938 追加查询结果到已存在的表 5470939 利用对多个表中的字段创建新记录集 5470940 利用EXECUTE执行SQL语句 548第20章 数据库技术 54920.1 Access数据库的使用 5500941 如何为Access数据库设置密码 5500942 如何创建加密的Access数据库 5500943 建立Access数据库连接 5510944 与加密后的Access数据库建立连接 5510945 如何提取Access数据库中的数据表名 5510946 随机读取Access数据库记录 5520947 将Access数据库导入到Excel中(ASP.NET) 5520948 在.NET 2.0框架下动态创建Access数据库 5530949 在.NET 2.0框架下动态创建Access数据表 5530950 如何备份Access数据库 55420.2 SQL数据库的使用 5540951 建立SQL Server数据库连接 5540952 如何使用ODBC访问SQL Server数据库 5550953 读取SQL Server数据表结构 5560954 在C#中分离SQL Server数据库 5570955 C#中附加SQL Server数据库 5580956 C#中附加单文件SQL Server数据库 5590957 备份SQL Server数据库 5590958 还原SQL Server数据库 5600959 开启SQL Server数据库服务 5610960 断开SQL Server数据库服务 5620961 如何判断SQL Server数据库连接状态 5620962 获取连接SQL Server数据库的名称 5630963 获取SQL Server的连接统计数据 5630964 如何调用SQL Server存储过程 5630965 如何生成SQL数据库脚本 5640966 SQL Server 2000无法安装的解决办法 56520.3 其他 5650967 如何判断记录是否为NULL 5650968 建立Oracle数据库连接 5660969 如何在数据表中设置主键 5660970 DataSet读取XML文件中数据作为数据源 5670971 如何读取Fox的DBF文件 5670972 通用方法实现数据增、删、改功能 5670973 通用方法获取查询结果DataSet数据集 5680974 同查询多条SQL语句 5680975 如何判断是否查询到结果 5680976 将图片以二进制格式存储到数据库中(asp.net) 5690977 从DataReader对象读取数据的技巧 5690978 随机显示数据库记录 5690979 通过DataTable获得数据表的主键 5690980 将Access数据库转化为SQL Server数据库 5700981 将SQL Server数据库转化为Access数据库 5710982 如何避免数据库死锁现象 5720983 如何调用带输入参数的存储过程 5720984 如何获取存储过程返回的结果集 5730985 取得数据表某个单元格的值 5730986 在ASP.NET2.0下将数据绑定DropDownList 5730987 在ADO.NET中实现数据库的事务处理 5740988 将任意文件保存到数据库中 5740989 将存储在数据库中的文件提取出来 5750990 合并具有相同数据表结构的查询结果 5750991 使用DataTable进行数据检索 5750992 使用DataView对数据进行检索和排序 5760993 使用DataSet建立DataTable明细表 576第21章 打印与报表技术 57921.1 报表设计技术 5800994 如何快速创建水晶报表 5800995 如何编写带图片的报表 5820996 如何使图片成为整个报表的背景 5830997 如何设置水晶报表中节的背景图片 5830998 如何设置水晶报表中节的背景色 5840999 如何设置水晶报表的页面 5841000 如何在报表中添加节 5841001 如何在报表中移动节的顺序 5851002 如何在报表中合并节 5851003 如何在报表中册除节 5851004 如何在报表中显示与隐藏节 5861005 如何设置多列样式报表 5861006 如何设置报表中节的高度 5871007 如何设置报表的摘要信息 5871008 如何设置报表的打印日期间 58721.2 报表格式化类对象技巧 5881009 如何在报表中使用文本对象 5881010 如何移动对象操作 5881011 如何对齐多个对象 5891012 如何使用公式字段 5891013 如何在报表中使用线 5901014 如何在报表中使用方框 59021.3 报表数据排序与分组技巧 5911015 如何排序报表数据 5911016 如何报表数据分组 5911017 如何报表中筛选数据 5921018 如何对分组报表中的页码进行设置 59221.4 报表的应用技巧 5931019 如何在水晶报表中使用交叉表 5931020 如何在水晶报表中使用子报表 5941021 如何动态显示子报表 5961022 如何删除子报表 5971023 如何在报表中计算百分比 59721.5 Windows打印控件应用技巧 5991024 如何使用PrintDocument控件打印窗体数据 5991025 如何使用PrintPreviewContronl控件预览 5991026 使用PrintPreviewDialog对话框 6001027 如何使用PrintDialog对话框打印 6011028 如何使用PageSetupDialog对话框设置页面 6011029 如何使用PrintDocument控件打印文本文件 602第22章 C#高级应用开发 60522.1 线程的使用 6061030 如何开始一个线程 6061031 如何结束一个线程 6061032 如何使线程休眠 6061033 如何挂起一个线程 6061034 如何判断线程的状态 6061035 如何实现线程的同步 6071036 如何避免死锁 60722.2 .NET 2.0的新特性 6071037 如何使用泛型 6071038 如何使用匿名方法 6081039 如何使用迭代器 6091040 如何使用分部类 61022.3 C#WebService 6101041 建立SQL Server返回数据集WebService 6101042 利用WebService传送图片 61122.4 文件监视 6111043 如何监视文件的创建 6111044 如何监视文件的改变 6121045 如何监视文件的重命名 6121046 如何监视文件的删除 61322.5 C#高级应用 6131047 如何将聊天程序做成Windows服务 6131048 COM+服务解决同访问大量数据并发性 6151049 COM+服务实现银行转账系统 6171050 如何用Remoting技术传送文件 6191051 大规模数据访问缓解服务器压力 620第23章 硬件及相关开发技术 62323.1 语音卡、IC卡、神龙卡的使用 6241052 利用语音卡拨

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧