Category Archives: 编程

升级到ASP.NET 4.0后JS报错的解决办法

升级到ASP.NET4.0之后, 有同事打开HRM就报JS错误. Debug进去会看到错误停留在 但是为什么其他同事都是正常的呢? 查看登录页面的源代码之后, 发现一个特殊的标签: <div class=”aspNetHidden”> 搜索之后,  看到了这个页面http://msdn.microsoft.com/en-us/library/s57a598e.aspx 原来ASP.NET4.0为了更好的遵循html标准, 删除了form的name属性, 所以登录时这个脚本报错. 解决办法有两个: 1.       把document.Login.txtPassword改成document.getElementById(“txtPassword”) 2.       开启ASP.NET4.0中的渲染兼容模式(web.config): controlRenderingCompatibilityVersion=”3.5″ 第一种是一劳永逸的写法, 改写不标准的js代码. 但是工作量很大, 也需要额外的测试工作. 第二种就比较偷懒了, 让IIS仍然以ASP.NET3.5的渲染模式输出页面. 这样仍然会保留form的name属性 看下来, ASP.NET4.0比较3.5 做了2点改动(对我们工程来说): 1.       3.5会给table和img增加一个border=”0”属性. 4.0认为border应该是css控制的, 所以不自动增加这个属性 2.       3.5会给form一个id和name. 4.0只会给id, 而删除name属性 更多的改动请参考上面的链接. 建议: HRM里面员工列表, … Continue reading

Share
Posted in 编程 | Leave a comment

IIS 7.5 (Windows 2008) 上运行ASP.NET 4.0程序报404错误的解决办法

起因 周四我拿到一台Windows 2008的虚拟机,准备在上面部署一个ASP.NET站点。 我把本地的站点编译好之后,删除了所有的.cs文件,然后传到虚拟机上。 虚拟机上IIS版本是7.5,安装了.Net Framework 4.0,在IIS中开启了对ASP.NET 的支持。按理说就能运行HRM了。 但是运行时,IE提示404错误,也就是找不到网页。这可奇怪了,明明存在的页面,为什么找不到呢? 尝试 我试着打开一个xml文件,打开了。又把default.aspx改名为default.html,也能打开,为什么偏偏default.aspx提示404呢? 此时打开IIS的Log文件,看不出任何异常。 2011-05-22 04:29:23 ::1 GET /hrp/ – 80 – ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 404 0 0 7656 彻底没辙了。 于是乎,google一下,看看其他人遇到过类似的问题吗。还真有,不过他们的解决办法都不适合我。 无意中发现 无意中发现,原来IIS7可以装一个叫Tracing的服务。 装好之后,选择需要跟踪的站点,点击图中右下角所示的Failed Request Tracing… 开启跟踪,并设定日志目录。 再次尝试打开aspx文件,然后查看日志。 逐步查看日志内容,会发现一个叫GENERAL RESPONSE ENTITY BUFFER的节,内容跟我们看到的404页面差不多。 真正原因 … Continue reading

Share
Posted in 编程 | Leave a comment

WordPress及插件不能自动升级的解决办法

WordPress提示你有插件需要更新的时候, 点击自动更新按钮, 但是会让你填写FTP信息. 这是因为Wordpress在判断权限时发生了问题, 它会判断/wp-admin/update.php这个文件的owner是不是当前的apache进程, 如果是就能更新(更新时还是需要相应文件夹和文件的权限), 如果不是就提示你输入FTP信息. 所以如果可能的话, 修改这个文件的owner为apache进程即可. chown www-data.www-data ./wp-admin/update.php

Share
Posted in 编程 | Tagged , , | Leave a comment

PHP substr 截取 UTF8字符串乱码的解决

PHP的substr方法可以按照字节来截取字符串, 对于英文来说是没问题的. 因为一个英文字符只占一个字节. 但是对于截取UTF8编码的中文就会存在问题. 比如: var $str = ‘我爱twitter哈哈’; echo substr($str, 0, 1); 就会出现一个乱字符, 因为在php中, utf8编码的中文是占3个字节, 单单只取一个字节肯定是不行啦. 如果: echo substr($str, 0, 3)就会出现”我” echo substr($str, 0, 9) 会出现”我爱twi” 在中英文混排的时候, 这个函数就显得无能为力了. google了一下, 发现很多人写了替代方法, 比如自己去实现一个substr, 里面写循环. 这样肯定效率低下, 直接用substr的复杂度是1, 而自己写循环, 复杂度就是n了. 后来找到了Wikipedia的条目, 发现原来3字节的utf8编码是有规律的. 一个非英文字符的3-bytes … Continue reading

Share
Posted in 编程 | Tagged , | 4 Comments

How to: Implement Dynamic Route in CakePHP

I’ve found a method to implement Dynamic Route in CakePHP. If we develop a CMS program using CakePHP, we often let people to define their menu code. The menu code basically is the URL path. For example: An admin create … Continue reading

Share
Posted in 编程 | Tagged , , , | 2 Comments

WordPress不能在别人评论后给我发送邮件的解决办法

这是一个非常诡异的问题. 遇到问题后, 我google了一下. 发现有些人遇到了和我类似的问题. 但是他们的问题原因仅仅是服务器不支持php的mail函数, 他们只需要安装wp mail smtp组件就可以发送了. 而我确定我的服务器支持mail函数. 我对于php还是新手, 还不知道怎么在windows上测试php的mail函数. 所以就只能在本地把文件改改, 然后上传到服务器上做发送邮件测试. WordPress调用的是PHPMailer组件发送邮件, 经过几个小时的调试之后, 我发现问题的原因在于2点: 1. PHPMailer的Sender属性为空. 这个属性为空将直接导致不会发送任何邮件. 2. PHPMail的MailSend方法中是这么调用mail函数的: $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); 我注意到如果把$this->EncodeHeader($this->SecureHeader($this->Subject))替换成固定的字符串, 并且将Sender属性设置为我的email地址, WordPress就可以给我发送评论邮件了. 关于字符编码的问题我不是很懂, 大概看看这个EncodeHeader函数, 没看懂. $this->Subject的内容是”[想当摄影师的程序员] Comment: “Symbian S60 V3系统不破解也能提升权限”” 如果直接用var_dump($this->EncodeHeader($this->SecureHeader($this->Subject))), … Continue reading

Share
Posted in 编程 | 2 Comments

CakePHP报500错误的解决方法

我把CakePHP做的网站传到主机上, 发现只有首页能打开. 点其他链接都报500错误. 在看不到日志的情况下问题出现的可能性是多种多样的. 后来google一下, 发现有人遇到过类似的问题, 解决方法是换个主机……. 不信邪. 首页能打开就说明我的配置没错, CakePHP是能正常运行的. 可能问题出现在URL的Rewrite上, 于是我尝试使用/index.php?url=service (注: service是controller的名字)来打开, 可以打开. 更加证实了CakePHP是没问题的想法. 于是我就修改了.htaccess. 原来内容是 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 我改成 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule … Continue reading

Share
Posted in 编程 | Leave a comment

Javascript 排序问题

我们买了个web表格控件, 点击表头可以排序的, 对于英文没问题, 是按照英文字母顺序排的, 但是中文就乱了. 不按拼音顺序, 也不按笔画顺序. 后来在网上找了一下, 发现Javascript的sort方法对于中文是按照内码来排的. 如果想让其按拼音来排, 需要用localCompare 原始顺序是: 猪zhu-1,我wo-2,啊a-3,你ni-4,他ta-5,地di-6 Javascript本身的sort排序后是: 他ta-5,你ni-4,啊a-3,地di-6,我wo-2,猪zhu-1 按照拼音排序结果是: 啊a-3,地di-6,你ni-4,他ta-5,我wo-2,猪zhu-1 具体请看代码 HTML+Cheetah语言: Javascript 排序问题 <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=“http://www.w3.org/1999/xhtml”> <head> <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8″ /> <title>Sort Test</title> </head> … Continue reading

Share
Posted in 编程 | Tagged , , , | 2 Comments

在BlueHost上安装Subversion

一开始是按照Bluehost论坛上的方法来安装, 但是发现无法支持http, https协议, 又按照半瓶墨水的方法来安装, 这次支持http协议了, 但是依然不支持https. 后来google了一下, 经过多次摸索, 终于安装成功, 下面分享经验. cd ~ mkdir install mkdir src cd src #下载 wget http://subversion.tigris.org/downloads/subversion-1.6.4.tar.gz wget http://subversion.tigris.org/downloads/subversion-deps-1.6.4.tar.gz wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz tar xzvf openssl-0.9.8k.tar.gz tar xzvf subversion-deps-1.6.4.tar.gz mv subversion-1.6.4 deps tar xzvf subversion-1.6.4.tar.gz #编译OpenSSL cd openssl-0.9.8k … Continue reading

Share
Posted in 操作系统, 编程 | Tagged , , , , | 7 Comments

封装YUI Table

以前做Research的时候用C#把YUI的Table封装了起来. 这里是代码, 仅供参考.

Share
Posted in 编程 | 1 Comment