win2003服务器中asp代码的验证码显示不了,怎么回事?急!!!

jie2002 2008-09-10 07:50:28
网站是asp写的.
代码没动过.
系统是win2003.
可能就打了补丁
哪位知道是什么回事?
...全文
1342 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
时光如水 2009-05-11
  • 打赏
  • 举报
回复
1楼的正确
bnnhyy6 2008-09-10
  • 打赏
  • 举报
回复
顶了~~~~~~~
bnnhyy6 2008-09-10
  • 打赏
  • 举报
回复
顶了~~~~~~~
hebo2005 2008-09-10
  • 打赏
  • 举报
回复
以下网上搜索来的
=============================================================================
全解站长论坛windows 2003系统中验证码不能显示问题
前几天在站长论坛下载了windows sever 2003的系统版本。
测试良精等网站后台图片显示验证码时出错。
综合整理了处理方法,给大家分享一下。
根据不同的用户,可能情况不一样,但三种方法可以全面解决图片验证码问题。

用站长论坛的系统,可以考虑直接制作注册表文件,然后修改IIS6的配置。
方法在下面详细说明参考。

一、修改注册表,显示xbm格式的验证码
新建2k3.txt文件,复制下列代码并保存。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Security]
"BlockXBM"=dword:00000000
然后将2k3.txt文件改为:2k3.reg 双击打开导入注册表,重新打开浏览器即可。

或手动修改注册表:
点击“开始”→“运行”,在运行窗口中输入“regedit"(不含引号),点击“确定”按钮,定位到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Security",在右面窗口空白处点击鼠标右键,新建一个"DWOED值"。将该“新建的值”命名为"BlockXBM"(不含引号)。
验证码不能显示是你的2k3系统问题。
然后鼠标右键点击"BlockXBM"项,修改此键值为8个0,如下图所示。点击“确定”按钮保存之重新启动电脑,使注册表生效,即可显示验证码。
为什么XP SP2会默认不显示验证码呢?原来微软公司在XP SP2里面默认不显示XBM图形格式。
X-Bitmap(XBM)是一种古老但通用的图像文件格式,它与现在的许多Web浏览器都兼容。X-Windows图形界面(UNIX和Linux常用的GUI)的C代码库xlib中有一个组件专门描述了它的规范。XBM图形的实质上是使用16进制数组来表示二进制图像的C源代码文件。
XBM格式本来是为存储单色的系统位图而设计的,比如图标和鼠标指针。X-Bitmap的实用程序包括动态生成的图、页面计数器、老式图形图标、以及统计图表。在上世纪九十年代早期,美国超级计算应用中心(NCSA)在伊利诺斯大学开发第一个被广泛使用的Web浏览器,名为Mosaic。这个浏览器的图形支持来自很多开放源码代码库,其中就包括xlib。因此,导致今天的许多浏览器能够处理XBM图形。
Mosaic项目后来成为了Netscape浏览器的开发基础。微软也借用了一部分Mosaic代码来创建Internet Explorer。微软继而在网络信息服务器(IIS)中将XBM作为一个MIME类型注册而提供本地支持,并且在现有所有版本的Internet Explorer中将其作为一种可支持的图像。
从一个程序员的角度来看,JPEG或GIF与XBM有着极大的不同。这两种文件格式都在位级别上操作并使用了压缩算法。它们可以支持很大的颜色深度范围。创建这些动态Web图形的唯一方法是使用服务器端的脚本,比如GD.pm和CGI/Perl脚本的结合,或者通过System.Drawing名字空间访问ASP.NET中的图形设计接口类库(GDI+)。
XBM创建起来很有程序性。每个位都被一一指定,而结果图形被限制为两色(黑色和白色)。X-Bitmap并不是必须服务器端脚本,可以在客户端用JavaScript实时创建它们。
另外,一些Windows操作系统用户安装程序,往往将安装程序默认安装到系统盘,使得系统盘文件臃肿,导致硬盘页面缓存空间不够,系统越来越慢。网管不妨在注册表中将其程序默认安装路径改为其他盘符。

二、修改ie设置,显示java生成的验证码
点击工具--internet选项--安全--自定义级别--察看脚本那一栏--里面有java小程序的脚本和活动脚本如果是禁用点成启用。


三、修改iis设置,显示asp调用父路径语句生成.bmp格式的验证码
在II6里面右键单击所在目录 点击属性对话框里的“主目录”并打开“主目录”界面下的“配置”,打开应用程序配置后,里面有选项,打开它可以看到“父路径”启用“父路径”。
jie2002 2008-09-10
  • 打赏
  • 举报
回复
验证码程序
<!--#include file="canvas.asp"-->
<%

Dim objCanvas
Dim PointX,PointY,PointColor
Dim iTemp
Dim SafeCode
Dim R,G,B,cc,kk
cc=57
kk=20
SafeCode = ""
Session("SafeCode365") = ""

BGColor = "FFFFFF"

R = Mid(BGColor,1,2)
G = Mid(BGColor,3,2)
B = Mid(BGColor,5,2)



R = DecHex(R)
G = DecHex(G)
B = DecHex(B)

Set objCanvas = New Canvas

objCanvas.GlobalColourTable(0) = RGB(255,255,255) ' White
objCanvas.GlobalColourTable(1) = RGB(0,0,0) ' Black
objCanvas.GlobalColourTable(2) = RGB(255,0,0) ' Red
objCanvas.GlobalColourTable(3) = RGB(0,255,0) ' Green
objCanvas.GlobalColourTable(4) = RGB(0,0,255) ' Blue
objCanvas.GlobalColourTable(5) = RGB(128,0,0)
objCanvas.GlobalColourTable(6) = RGB(0,128,0)
objCanvas.GlobalColourTable(7) = RGB(0,0,128)
objCanvas.GlobalColourTable(8) = RGB(158,158,100)
objCanvas.GlobalColourTable(9) = RGB(0,128,128)
objCanvas.GlobalColourTable(10) = RGB(128,0,128)
objCanvas.GlobalColourTable(11) = RGB(R,G,B)

objCanvas.BackgroundColourIndex = 8

objCanvas.Resize cc,kk,false


Randomize timer
SafeCode = cint(8999*Rnd+1000)

For iTemp = 0 To 100
Randomize timer
PointX = Int(Rnd * cc)
PointY = Int(Rnd * kk)
PointColor = Int(Rnd * 5)+5
objCanvas.ForegroundColourIndex = PointColor
objCanvas.Line PointX,PointY,PointX,PointY

next

objCanvas.ForegroundColourIndex = 1
objCanvas.Line 1,1,cc,1
objCanvas.Line 1,kk,1,1
objCanvas.Line 1,kk,cc,kk
objCanvas.Line cc,1,cc,kk

Session("SafeCode365") = SafeCode+1
dim sc,sk
Randomize timer
sc = cint(1*Rnd)
sk = cint(1*Rnd)
objCanvas.DrawTextWE sc,sk,SafeCode
objCanvas.Write




Function DecHex (HStr)

Dim Result
Dim i,L

Result = 0


L = Len(Hstr)


For i = L-1 To 0 Step -1

Result = Result + (16 ^ i)*GetDecBit(Mid(HStr,i+1,1))

Next

DecHex = Result

End Function

Function GetDecBit (HStr)

Dim Result
Dim R(16)
Dim i

Result = 0

R(0) = "0"
R(1) = "1"
R(2) = "2"
R(3) = "3"
R(4) = "4"
R(5) = "5"
R(6) = "6"
R(7) = "7"
R(8) = "8"
R(9) = "9"
R(10) = "A"
R(11) = "B"
R(12) = "C"
R(13) = "D"
R(14) = "E"
R(15) = "F"

For i = 0 To 15

if HStr=R(i) Then Result = i : Exit For

Next

GetDecBit = Result

End Function
%>
jie2002 2008-09-10
  • 打赏
  • 举报
回复
不是这个原因.
我是这样设置的.
以前都好好的.
就今天早上发现验证码不行了.
kanji 2008-09-10
  • 打赏
  • 举报
回复
为何在win 2003系统下无法显示验证码???
打开IIS管理器--打开网站属性对话框--主目录--配置--选项--默认ASP语言,这里应该设为
VBScript。在WIN2003中,可能这里的设置是“JavaScript”,请改成VBScript。并要勾选“启用父路径
”。
http://www.yinrg.com/Article/2007/09/18/166.html

参考一下吧,看看是不是同一种情况

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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