手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2010年04月14日的文章

HTTP_HOST与SERVER_NAME

看到网上有篇文章,说是$_SERVER变量中的HTTP_HOST与SERVER_NAME不一样,打开网址后HTTP_HOST是全域名,而SERVER_NAME会显示根域名。
但是我采用了phpinfo看了一下,HTTP_HOST和SERVER_NAME是相同值,而并非是所说的不一样。
代码如下:

PHP代码
  1. <?php
  2. phpinfo();  

上面这段简单的代码里会显示$_SERVER变量的内容,搜索一下,HTTP_HOST与SERVER_NAME是一样的,都是www.neatstudio.com,当然这时候,我的路径是http://www.neatstudio.com/info.php,于是我尝试用http://neatstudio.com/info.php访问时,这两个值还是一样,当然都变成了neatstudio.com。

于是我翻开了手册想看看是怎么回事,为什么会有人说不一样。
手册上这么说:

'SERVER_NAME'

The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.

'HTTP_HOST'

Contents of the Host: header from the current request, if there is one.

看了上面的解释也基本上可以断定它基本是一样的,除非同一台服务器只有一个网站,但SERVER_NAME却与HOST不一样,或许会出现不同值。如果是虚拟主机,默认会以虚拟主机的值为准。为了测试,我在本地做了一个测试。
在hosts文件里加了127.0.0.1 www.neatcn.com 127.0.0.1 neatcn.com对应两个域名【强制在本地指定,否则会到使用域名真实IP】
然后在virtual host里,更换不同的ServerName 为neatcn.com和www.neatcn.com,但结果,都是根据访问路径来的,不管使用何种域名,HTTP_HOST和SERVER_NAME都是一致的,与访问路径中的hostname一致。
再对应一下那篇文章 ,由此基本可以鉴定那是一个SEO的文章,因为他在同一篇文章里介绍了两个域名还都不一致。唉。。。SEO沦落到如此地步了,刚开始看到的时候,我本来以为很激动的,我想着以后取根域名就方便了。不需要象现在还要根据不同的域名根来取根域名。。。

Tags: http_host, server_name, seo

两个比较常用的MySQL时间函数

这是来自iOrange.cc的文章,主要就讲了两个可能会被常用的时间函数。内容如下:

按时间搜索数据在mysql里应该是用的比较频繁的了。

iOrange系统里的时间都是按:xxxx-xx-xx xx:xx:xx这种格式存放的,大多数时候这个都没问题,但是,当你想使用其他格式来显示数据时就悲剧了,例如你想显示成 10/04/01 21:20 这种就很悲剧-__-,所以强烈建议保存时间戳的时候尽量存储一个UNIX时间戳,这样以后就方便很多了^_^

回归正题,第一个时间函数是:UNIX_TIMESTAMP,这个函数可以将xxxx-xx-xx xx:xx:xx这种格式的时间转换成一个unix时间戳格式的数字。例如下面那条语句:
update bookposts set lastpost = UNIX_TIMESTAMP(createdate) 这样就能将createdate字段上的时间更新到lastpost上去了。

第二个函数则跟第一个刚好相反:FROM_UNIXTIME,这个函数可以将一个UNIX时间戳转换成xxxx-xx-xx xx:xx:xx这种格式。用法大致如下:
SELECT COUNT(*) AS `newmembers` FROM `cdb_members` WHERE FROM_UNIXTIME(regdate, ‘%Y-%m-%d’) = ‘2010-04-01′”

--EOF--
不过,个人认为还是采用:xxxx-xx-xx xx:xx:xx比较好,这是因为,时间戳和这种日期格式在数据库里存储所占的字节都是一样的,而日期格式却没有1970~2038年这个限制。在计算时间区间的时候,用Between和and时,对于日期格式会更加方便,而时间戳则需要多计算一次。

参考:

1.Mysql时间函数 http://neatstudio.com/show-443-1.shtml

2.用TIMESTAMP类型取代INT和DATETIME[转] http://neatstudio.com/show-150-1.shtml

3.精通MYSQL数据库——连载八 http://neatstudio.com/show-263-1.shtml

 

Tags: from_unixtime, unix_timestamp

netbeans 与 encoding support

Netbeans是我最近常用的编辑器,开源免费跨平台是我选择它的主要原因之一,但是让我郁闷的是,他不能在编辑时按照文件自身的编码来打开,这让我很郁闷,相反editplus还能够自动识别ansi和utf8而根据相应的编码来打开呢。

当然一般情况下,这是很正常的,创建一个project的时候指定编码就足够了。可是大家都知道的dz嘛。为了让自己的程序适合所有的编码,就把文件全部用ansi来处理,然后语言包采用相应的编码,这样,创建一个新的版本就十分方便。只是这样的前提是,所有的代码中不能出现其他编码,只能用GBK,并且不能有UTF8的输出。

于是就有我现在的问题,一半项目是uTF8,一半是GBK,整合在了同一个project里了,打开的时候就经常看到乱码。而所谓的插件encoding support,其实早就集成在系统里了,因为以前的版本不能默认指定编码的。现在的是可以指定项目,但不能指定项目里单独的某个文件。

郁闷 ,不得已了,下载ZendStudio了,因为ZS打开项目中文件的时候,可以右键,选择按指定编码打开。这,让我很方便的在一个项目中处理多种不同编码的文件。

这能怪谁呢?唉。

Tags: netbeans, encoding

微软:定期更改密码没用 或浪费时间金钱

CNBETA上的文章 ,http://www.cnbeta.com/articles/108569.htm

微软日前公布的一项调查结果显示,定期更换密码并不能将黑客拒之门外,反而是浪费时间和金钱。
当前,许多企业IT部门强制员工定期更改密码,以作 为安全策略之一。这不但让员工感到反感,更让网络管理员感到头痛。

但微软日前公布的一项调查结果显示,这样做根本起不到实际作用。微软指出,黑客获得用户登录密码后,会立刻发动攻击,而不会等上几周时间,让用 户更改后再发动攻击。这就好比,一个小偷捡到一把钥匙后,不去立刻开门,而是等着房主把锁头更换掉。

微软称,定期更换密码就是在浪费时间,也就是在浪费金钱。如果美国有2亿成年网民,薪水按最低工资的2倍计算,每天一分钟,一年的总产值相当于160亿美元。
--EOF--
真没想到,微软会做这样的调查,记得SERVER版会每隔120左右提示你更改密码。因为他可以为用户设一下密码有效周期,以强制管理员更改密码。殊不知这样一改,对于系统管理员来说,又是一件非常痛苦的事情。如果管理一台两台服务器,还能够被接受,如果管理几十台服务器,这样的日子真是没法过了。

光改改密码,就是一天时间被浪费了。而事实上被攻击时并不是因为密码的原因,往往都是系统漏洞,难道不是?

Tags: 密码