今天解决一问题,拿出来分享

上一篇 / 下一篇  2007-04-15 15:23:25

查看( 9599 ) / 评论( 32 )
其实最后的方法是很简单,但是还是折腾了我半天.

目的:一静态页要在用户登录和没登录的不同状态显示不同信息.
实现方法肯定是用js了.写了一js取cookie 的方法getCookie(name)
通过"
var u = getCookie(name);
if (u) {
    x.innerHTML = u;
} else {

}

方法实现一些信息不同显示
x.innerHTML = u;
目的就是在一处显示u这个cookie得到的信息,问题就出在这里
这个cookie是通过php setcookie设置的,结果js取出的中文是乱码,页面为utf-8
想了几点不是方法,如url编码都不行,最好想到我用js取,那也用js设置cookie不就好了,最好写一js的setCookie 函数
代码大致如下
<?php
setcookie();//一些其它cookie
echo '<scrīpt>setCookie ('xxx','中文')</scrīpt>';//要js取的cookie
?>

最后解决方法很简单,但是一直没有想到,我想对大家有帮助吧

明天帖出js代码


function getCookieVal(offset) {
    var 
endstr document.cookie.indexOf (";"offset);
    if(
endstr == -1) {
        
endstr document.cookie.length;
    }
    return 
unescape(document.cookie.substring(offsetendstr));
}
function 
getCookie(name) {
    var 
arg name "=";
    var 
alen arg.length;
    var 
clen document.cookie.length;
    var 
0;
    var 
0;
    while(
clen) {
        
alen;    
        if(
document.cookie.substring(ij) == arg)
            return 
getCookieVal(j);
        
document.cookie.indexOf(" "i) + 1;
        if(
== 0)
            break;
    }  
    return 
null;
}
function 
deleteCookie(name) {
    var 
exp = new Date();  
    var 
cval getCookie(name);  
    
exp.setTime(exp.getTime() - 1);  
    
document.cookie name "=" cval "; expires=" exp.toGMTString();
}
var 
gCookieExpDays 80;
function 
setCookie(namevalue) {
    var 
argv setCookie.arguments;
    var 
argc setCookie.arguments.length;
    var 
exp = (argc 2) ? argv[2] : gCookieExpDays;
    var 
path = (argc 3) ? argv[3] : null;
    var 
domain = (argc 4) ? argv[4] : null;
    var 
secure = (argc 5) ? argv[5] : false;
    var 
expires = new Date();
    
deleteCookie(name);
    
expires.setTime(expires.getTime() + (exp*24*60*60*1000));
    
document.cookie name "=" value +
        
"; expires=" expires.toGMTString() +
        ((
domain == null) ? "" : ("; domain=" domain)) +
        ((
path == null) ? "" : ("; path=" path)) +
        ((
secure == true) ? "; secure" "");
}


TAG:

♂visam√ぃ的PHP之路 visam 发布于2007-04-13 09:05:47
志凡 大哥 果然 强悍啊。。。。帮你顶了。。。
ZiNY Studio ZiNYon! 发布于2007-04-13 09:20:33
不错 又学习了
志凡的个人空间 dzjzmj 发布于2007-04-13 23:52:14
忙了一天,忘了来帖代码,下次
志凡的个人空间 dzjzmj 发布于2007-04-15 14:20:20

niohe的个人空间 niohe 发布于2007-04-15 17:12:17
js取cookie 支持!
旷野深呼吸 jidixuelang 发布于2007-04-15 21:15:09
好东西 谢谢无私分享
PHPChina 我的成长之路 寶貝豬豬 发布于2007-04-15 23:19:41
好啊
辉老大的地盘 leehui1983 发布于2007-04-16 16:59:56

志凡的个人空间 dzjzmj 发布于2007-04-16 21:01:54
感谢支持
xlight的个人空间 xlight 发布于2007-04-18 20:04:08
嘎嘎  
北方狼 zhoulei 发布于2007-04-20 15:03:49
支持
还在学习jing 多看看你们写的东西。
jayeeliu发布于2007-04-21 22:12:59
好啊

正在学习javascript

多看些代码怎么的很有帮助
wwwfk的个人空间 wwwfk 发布于2007-04-24 20:42:47
这个有用哦,支持哦
PHP驿站 lin_chaoqi 发布于2007-05-21 15:52:33
在一本名叫征服Ajax的书中看到过,是不是抄你的呀?
志凡的个人空间 dzjzmj 发布于2007-05-22 21:59:29
没看过这书
地瓜 phpboy 发布于2007-05-28 21:30:25

QUOTE:

原帖由 lin_chaoqi 于 2007-5-21 15:52 发表
在一本名叫征服Ajax的书中看到过,是不是抄你的呀?
:lol ;P
laopi的个人空间 laopi 发布于2007-06-03 12:26:50
js 羡慕啊
arxccv的个人空间 arxccv 发布于2007-06-15 20:25:49
把PHP设置的COOKES复制到JS需要设置的COOKES中去..
志凡的个人空间 dzjzmj 发布于2007-06-15 23:18:36
楼上在说什么?
yustar的个人空间 yustar 发布于2007-06-17 00:24:53
收藏!
我来说两句

(可选)

Open Toolbar