找回密码  立即注册

扫一扫,访问微社区

查看: 5285|回复: 4

[注意] 论坛发帖错误

[复制链接]

29

主题

271

帖子

1408

积分

金牌会员

Rank: 6Rank: 6

积分
1408
发表于 2006-8-15 00:04:18 | 显示全部楼层 |阅读模式
我一直使用微软的IE和腾讯的TT浏览器,最近几个月来论坛的时候经常遇到如下图所示的错误: [upload=jpg]uploadImages/200681423482470841.jpg[/upload] 每当这样的时候,就发不了新帖,也不能回帖,只能看帖子。若尝试发帖就会返回一个错误页面说有服务器内部错误(HTTP 500)。 后来我用火狐浏览器来论坛,这个错误就消失了,正确状态如下: [upload=jpg]uploadImages/200681423514432782.jpg[/upload] 可惜火狐的兼容性不够好,发帖的时候上传照片有问题。不过用过火狐之后再用IE或TT就都没错了。 我在网上查了一下关于这个错误的解释,拷贝如下,希望老农总版主或是谈总版主找相关人员解决一下。我想也会有其他网友有这种情况发不了言吧。 ==================================================================   经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTD头信息中,增加了 HTTP_X_FORWARDED_????信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址:   下面是2个例子,用于说明缓存兼容性应用的设计原则:   '对于一个需要服务器名的地址的ASP应用:不要直接引用HTTP_HOST/SERVER_NAME,判断一下是否有HTTP_X_FORWARDED_SERVER    function getHostName () dim hostName as String = "" hostName = Request.ServerVariables("HTTP_HOST") if not isDBNull(Request.ServerVariables("HTTP_X_FORWARDED_HOST")) then if len(trim(Request.ServerVariables("HTTP_X_FORWARDED_HOST"))) > 0 then hostName = Request.ServerVariables("HTTP_X_FORWARDED_HOST") end if end if return hostNmae   end function //对于一个需要记录客户端IP的PHP应用:不要直接引用REMOTE_ADDR,而是要使用HTTP_X_FORWARDED_FOR,   function getUserIP (){ $user_ip = $_SERVER["REMOTE_ADDR"]; if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { $user_ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } }   注意:HTTP_X_FORWARDED_FOR如果经过了多个中间代理服务器,有何能是逗号分割的多个地址, 比如:200.28.7.155,200.10.225.77 unknown,219.101.137.3 因此在很多旧的数据库设计中(比如BBS)往往用来记录客户端地址的字段被设置成20个字节就显得过小了。   经常见到类似以下的错误信息:      Microsoft JET Database Engine 错误 '80040e57' 字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据。   /inc/char.asp,行236   原因就是在设计客户端访问地址时,相关用户IP字段大小最好要设计到50个字节以上,当然经过3层以上代理的几率也非常小
一切贤圣皆以无为法而有差别。
回复

使用道具 举报

534

主题

2480

帖子

63万

积分

论坛元老

Rank: 8Rank: 8

积分
630767
发表于 2006-8-15 12:33:44 | 显示全部楼层
谢谢无为太极。 我们网站建设于2001年前后,这个程序后来一直极少调整, 我今年本来想和谈笑一起升级一下论坛的, 但实验了几次都没成功。 希望论坛中懂网站编程的朋友们都能够帮忙出点主意。
承传开宗立派之绝学,为武术界培养一代宗师。
回复 支持 反对

使用道具 举报

22

主题

394

帖子

3248

积分

论坛元老

Rank: 8Rank: 8

积分
3248
发表于 2006-8-15 13:51:59 | 显示全部楼层
无为太极真是热心人! 我不懂,只好灌个水:)
秋色入林红黯淡,月光穿竹翠玲珑!
回复 支持 反对

使用道具 举报

1

主题

354

帖子

1328

积分

金牌会员

Rank: 6Rank: 6

积分
1328
发表于 2006-8-15 18:33:05 | 显示全部楼层
路过~~
一杯茶,品人生沉浮;平常心,容世界万千!
回复 支持 反对

使用道具 举报

29

主题

271

帖子

1408

积分

金牌会员

Rank: 6Rank: 6

积分
1408
 楼主| 发表于 2006-8-16 03:24:03 | 显示全部楼层
如果单就这个问题来说,解决起来不难,上面文中已经剖析了原因,具体解决办法如下: 1、登陆论坛服务器上的数据库。 2、定位用来保存客户端IP地址的那个字段。 3、把这个字段的长度改大(建议64个字节长)。 完成上面三步之后问题就应该解决了,不需要停止,重启动任何程序。 我长期从事的是网络底层模块的开发,在项目管理中也经常涉及到网站应用的相关内容。所以大概的情形都清楚,但实际动起手来就显得笨手笨脚了。很多毕业一两年的计算机专业学生都对WEB应用很熟悉,解决我们目前这个问题轻而易举,看看能不能就近找到一个。
一切贤圣皆以无为法而有差别。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

   
 
 
陈家沟太极拳版权所有 Copyrights (C) chenjiagou.net All Rights Reserved. 技术支持:温州三创网络
豫ICP备16002235号 焦公网安备 41082502000222
快速回复 返回顶部 返回列表