完美解决Felix的LBS wap插件中文问题...

[ 2007-10-18 22:15:27 | 作者: 生活笔谈 ]
标签 标签 : Wap 风来西林

【调整阅览字体大小】: | |

=========================
插件名称:完美解决Felix的LBS wap插件中文问题...
插件修改:风来西林 (版权所有)
作者主页http://www.exgods.com/
=========================

因为我的用户名是中文,用wap一直登陆不了blog..这个问题困扰了我很久...以前曾发过一篇wap插件传递中文错误解决方案,虽然解决了传递问题,但还是登陆不了blog...研究了很久都没进展,最后只能搁在一边了...

事隔一年,今天我又测试了下wap插件,终于发现了真正的问题所在(以前的研究方向性错误 ), 原来是手机写cookie的速度(冲突)问题...

Felixsrc_wap.asp文件中登陆时这样写cookie的:
if(input["act"]=="login"){
 if(loggedin){
 // If user is already logged in
 response.Redirect("wap.asp");
 }else{
 var tHashKey=func.SHA1(func.randomStr(6)+func.getDateTimeString());
 var arrUpdate={ "user_IP": getIP(),
 "user_hashKey": tHashKey,
 "user_LastVisit": new Date() };
 var tmpA=connBlog.query("SELECT TOP 1 user_id,user_name,user_password,user_salt,user_groupid FROM [blog_User] WHERE user_name='"+decodeURI(input["username"])+"' AND user_salt<>''");
 if(tmpA){
 tmpA=tmpA[0];
 if(tmpA["user_password"]==func.SHA1(input["password"]+tmpA["user_salt"])){
 var tDate=new Date();
 tDate.setTime(tDate.getTime()+cookieDays*864E5);
 connBlog.update("[blog_User]", arrUpdate,"user_ID="+tmpA["user_id"]);
 Response.Cookies("wap_login")=tmpA["user_name"]+","+tmpA["user_id"]+","+tmpA["user_groupid"]+","+tHashKey;
 Response.Cookies("wap_login").Expires=tDate.getVarDate();
 Response.Redirect("wap.asp");
 }else{
 Response.Cookies("wap_login")="";
 outputMessage(func.HTMLEncode(lang["login_fail"]));
 }
 }else{
 Response.Cookies("wap_login")="";
 outputMessage(func.HTMLEncode(lang["user_not_found"])+decodeURI(input["username"]));

 }
 }
}
关键点在于
Response.Cookies("wap_login").Expires=tDate.getVarDate();
Response.Redirect("wap.asp");
没有等cookie写入就跳转wap.asp页面处理别的了,在电脑的游览器则不会出现这种问题...
我猜想可能和手机游览器的处理机制有关,写cookie和跳转发生冲突,Redirect优先级高吧...
最后我去除Redirect跳转,并输出一张页面,上面放了个链接转到wap.asp上..

代码如下:
wap.asp最后添加
<%
//User have logined
function haveLogined(){
wapHeader(func.HTMLEncode(theCache.settings["blogTitle"]));%>
<p align="center"><b>-- <%=func.HTMLEncode(theCache.settings["blogTitle"])%> --</b></p>
<p align="center"><%=func.HTMLEncode(lang["user_haslogin"])%></p>
<p align="center"><a href="wap.asp"><%=func.HTMLEncode(lang["back"])%></a></p>
<%
response.End();
}%>

source/src_wap.asp中找到
Response.Redirect("wap.asp");
替换为
haveLogined();

lang/blog.asp中添加
t["user_haslogin"]="Welcome,You have logined";

返回顶部

评论Feed 评论Feed: http://lbs.goeswell.cn/fans/feed.asp?q=comment&id=165
UTF-8 Encoding 引用链接: 点击查看引用链接

浏览模式: 显示全部 | 评论: 1 | 引用: 0 | 排序 | 浏览: 3593
引用 Hatton*
[ 2013-05-09 14:30:23 ]
That's the perfect insight in a thared like this.

发表
表情图标
[smile] [confused] [cool] [cry]
[eek] [angry] [wink] [sweat]
[lol] [stun] [razz] [redface]
[rolleyes] [sad] [yes] [no]
[heart] [star] [music] [idea]
UBB代码
转换链接
表情图标
悄悄话
用户名:   密码:   注册? 验证码 * 请输入验证码