今天 海边的卡夫卡 留言和EMAIL: 我新换了域名,用的是安家的空间,他们更换了ip,然后我就登录不上blog了!到后台关闭安全登陆后,就好了!这是什么原因呢?
最后终于解决了这个问题,不过没有弄清楚原理,有些东西记录一下
1、服务商更换IP www.shengfang.org
我一直无法访问BLOG,但是XF告诉我他可以,所以我用代理终于也访问上了,不过我查询域名信息也还是旧IP,不知道什么原因,我这里PING也是如此,如果FTP改用新IP就可以。我估计由于服务商的DNS服务器也更换了IP地址,所以出现我这里的DNS服务器没有及时更新,导致解析失败。
TTL(Time To Live)设定,以秒为单位,这里定义为86400秒,也就是一天。每一个DNS服务器都有缓存非本地域名信息的功能,TTL指出了解析结果在缓存中保留的时间。平时你可能注意到了,第一次访问某个站点可能需要较长的时间才能打开,接下来再访问时就快一点,这就是DNS缓存功能的作用,它减少了第二次解析域名到IP地址的时间。
2、测试过程 www.shengfang.org
注册了两个用户 A AA/B BB
1、我用A AA 登录,OK
2、 注册B,登录,提示密码 错误
3、然而输入B AA登录,OK
看来好像是COOKIE的原因
返回主页,退出A用户,再次登录 B BB,OK!
3、解决
但是XF仍然不行,我用管理员帐号在主页登陆时,提示登陆成功,但3秒后跳转到主页还是没有登陆过的,就是不能进行文章编辑等管理功能,我到后台登陆的时候,就是登陆不上去!
由于无法实际测试,所以提出几个方法:
1、你恢复默认模板试一试
2、清空IE的COOKIE之类的东西,全部改为默认设置
3、数据备份,再重新上传BLOG
最后,这回好了!我把cookie都删除了!然后就好了!!是不是前后两个cookie里的路径不一样,因为我换了域名?
4、COOKIE
想找一个原因,就要看看COOKIE文件找了半天,发现一个 F:\Documents and Settings\shengfang\Application Data\Mozilla\Firefox\Profiles\dd3auli3.default cookies.txt signons.txt
看了一下内容:# HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file! Do not edit.
# To delete cookies, use the Cookie Manager.
www.shengfang.org FALSE /blog/ FALSE
看不出什么门道,不过好像是 Firefox 保存的,又想找IE的,原来如此:
WIN98:NETSCAPE 将所有的 COOKIES 保存在“COOKIES.TXT”文件中。它存放在“C:\PROGRAMFILES\NETSCAPE\USERS\”目录下。IE则将它存放在“C:\WINDOWS\COOKIES
”目录下,在 COOKIES 目录中每个TXT文件都是一个网站发给你的COOKIE。典型的COOKIES文件是这样的,“ONLINE.GUARDIAN.CO.UK.FALSE\FALSE 886375601 APACHEMIKE 28869348593811960”。
WINXP:利用IE的“文件→导入和导出”向导将登录信息通过Cookies导出保存 # Internet Explorer cookie file, exported for Netscape browsers.
也就是说,其实可以不清空全部COOKIE,把cookie导出来,然后手工查找,删除有问题,再重新导入,应该是可行的。 不过仍然觉得没有什么问题。 www.shengfang.org
5、setcookie BO-BLOG PHP代码
setcookie("nowuserid","",time()-3600);
setcookie("nowuserpassword","",time()-3600);
setcookie("nowuserid",$usrname,time()+$expire);
setcookie("nowuserpassword",md5($usrpassword),time()+$expire);
$securedcode=md5(getrandom().time());
setcookie("nowsecuredcode",$securedcode,time()+$expire);
$securewhole=explode("&line;",$usertemp);
$securewhole[13]=$securedcode;
function getrandom(){ //闅忔満鏁扮敓鎴?
for ($i=0; $i<4; $i++) {
if (($i%2)==1) $rand.=chr(rand(65,90));
else $rand.=chr(rand(97,122));
}
return $rand;
} www.shengfang.org
不过securedcode 也就两个地方有 $securedcode, $unused2,$unused3,$unused4,$unused5)=explode("&line;",$usertemp); $securedcode感觉应该是那个安全验证,也没有什么大不了的地方
按照这样的话,就算换了域名,写入COOKIE的也是两个单独的记录,分别域名而已
PHP用SetCookie函数来设置Cookie。必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数。
SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下:
int SetCookie(string name, string value, int expire, string path, string domain, int secure);
除了name之外所有的参数都是可选的。value,path,domain三个参数可以用空字符串代换,表示没有设置;expire 和 secure两个参数是数值型的,可以用0表示。expire参数是一个标准的Unix时间标记,可以用time()或mktime()函数取得,以秒为单位。secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输。
当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因。
PHP对Cookie的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一样,特别简单。
比如设置一个名为MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$myCookie,这个变量的值就是Cookie的值。数组同样适用。另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组。
6、乱码问题
由于这两天不能访问,所以今天早上FTP下载所有的文件备份,为了找COOK问题,不断编辑,结果发现大部分中文汉字乱码,我还以为是我编辑器不支持UTF-8,用了EDITPLUS/ULRTAEDIT/EMEDITOR,通通乱码,莫名其妙,记得BO-BLOG推荐EDITPLUS,我正好刚刚升级,又重新安装了旧版本2.12,结果仍然如此。
最后发现,我直接从安装包解压出来的PHP文件就可以打开显示正常?!难道UNIX FTP 来还要问题?我用文本方式下载的,不知道是不是这个原因。
支持带UTF-8标记/不带UTF-8标记的文件 这里Byte Order Mark翻译为标记/文件头/标签 参数选择-文件-里面设置“支持不带有UTF-8文件头的UTF-8文件”,我这里翻译标签为UTF-8文件头,如果复选该项,应该是保存为不带标签的Utf-8,如果不复选,应该是保存成带有BOM的UTF-8。这样就可以打开带签名的UTF-8文件,并且可以正常编辑,但是又不能打开不带签名的了,想要打开不带签名的还需要改回来...不过虽然有点麻烦,但是总算能用了