Dec
20
做校赛的报名系统,插入队伍的时候要考虑队名是否重复,于是想到了使用MySQL的正则表达式。
以前虽然一直知道MySQL有正则表达式,但是因为有LIKE在,所以一直还不需要用它。
正好这次有了机会,就去试试吧。
MySQL的关键字 REGEXP 允许在SQL语句中匹配忽略大小写的POSIX正则表达式。
其实MySQL的文档里面写得非常详细了,给出了很多的例子,可以在这里看到
http://dev.mysql.com/doc/refman/5.1/zh/regexp.html
这里主要是记录一下在PHP里面还需要进行怎样的处理:
其实很简单,两个函数:
1。preg_quote()
转义正则表达式中的特殊字符,详情参见 http://cn.php.net/preg_quote
这本来是PHP为PCRE的正则表达式准备的,不过这里也是可以用的。
2。mysql_real_escape_string()
这个函数是用来转义特殊的SQL字符,同时也可以防止SQL注入攻击。
PHP文档的说明为:
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
它有一个兄弟,mysql_escape_string(),不过不能针对当前字符集进行处理,所以不够安全
另外如果使用mysqli的话,也可以使用mysqli_real_escape_string()。
综合起来就是这样:
$team_name = mysql_real_escape_string(preg_quote($team_name));
$query = " SELECT * FROM `teams` WHERE `team_name` REGEXP '{$team_name}' ";
然后再ooxx地去查询吧。。。
以前虽然一直知道MySQL有正则表达式,但是因为有LIKE在,所以一直还不需要用它。
正好这次有了机会,就去试试吧。
MySQL的关键字 REGEXP 允许在SQL语句中匹配忽略大小写的POSIX正则表达式。
其实MySQL的文档里面写得非常详细了,给出了很多的例子,可以在这里看到
http://dev.mysql.com/doc/refman/5.1/zh/regexp.html
这里主要是记录一下在PHP里面还需要进行怎样的处理:
其实很简单,两个函数:
1。preg_quote()
转义正则表达式中的特殊字符,详情参见 http://cn.php.net/preg_quote
这本来是PHP为PCRE的正则表达式准备的,不过这里也是可以用的。
2。mysql_real_escape_string()
这个函数是用来转义特殊的SQL字符,同时也可以防止SQL注入攻击。
PHP文档的说明为:
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
它有一个兄弟,mysql_escape_string(),不过不能针对当前字符集进行处理,所以不够安全
另外如果使用mysqli的话,也可以使用mysqli_real_escape_string()。
综合起来就是这样:
$team_name = mysql_real_escape_string(preg_quote($team_name));
$query = " SELECT * FROM `teams` WHERE `team_name` REGEXP '{$team_name}' ";
然后再ooxx地去查询吧。。。
Dec
2
zz自。。。忘了记出处。。作者,我对不起你=.=
Javascript中window.location对象的使用
window.location对象:
location提供了关于当前打开窗口或者特定框架的url信息。一个多框架的窗口对象在location属性显示的是父窗口的URL,每个框架也有一个与之相伴的location对象。
hash属性:hash标注是一个url很好的习惯用法,它指定浏览器到一个位于文档中的anchor位置,相当于一个书签儿。
host属性:描述渔歌url的主机名和端口,只有端口号是url的一个明确部分时,值中才包括端口号。
Javascript中window.location对象的使用
window.location对象:
location提供了关于当前打开窗口或者特定框架的url信息。一个多框架的窗口对象在location属性显示的是父窗口的URL,每个框架也有一个与之相伴的location对象。
hash属性:hash标注是一个url很好的习惯用法,它指定浏览器到一个位于文档中的anchor位置,相当于一个书签儿。
host属性:描述渔歌url的主机名和端口,只有端口号是url的一个明确部分时,值中才包括端口号。
Nov
30
为whucc写的,顺手贴出来吧。困死我了。
->想要学习网页制作?最基础的非HTML莫属了。
~HTML,Hyper Text Markup Language(超文本标记语言),用一组组被中括号括起来的标签来指示文本的格式,比如标签<i>和</i>之间的内容会显示为斜体,<center>和<center>标签中的内容会居中显示等。通过编写HTML代码,就能够初步让浏览器显示出你想要的效果了。
->很难看? 当然,只有单纯的HTML代码的网页通常是非常难看的,这时候你就需要学习CSS。
~Cascading Style Sheet(层叠式样式表),可以让你的网页变得非常漂亮,比如插入a:{hover:red;}就可以让你页面上的链接在鼠标悬停的时候显示为红色。
->自己写太麻烦?用DreamWeaver阿
~HTML和CSS代码当然可以用诸如DreamWeaver和FrontPage这样的网页制作软件来自动完成,它们会生成更加专业的界面以及符合标准的代码,但是如果你没掌握自己如何编写HTML/CSS的话,你的网页制作能力基本上就仅限与此了——即使只是想做一个简单的投票页面都没门。
->网页是做好了,但是每次要修改都好麻烦阿 —— 那就学习动态网页制作把!
->想要学习网页制作?最基础的非HTML莫属了。
~HTML,Hyper Text Markup Language(超文本标记语言),用一组组被中括号括起来的标签来指示文本的格式,比如标签<i>和</i>之间的内容会显示为斜体,<center>和<center>标签中的内容会居中显示等。通过编写HTML代码,就能够初步让浏览器显示出你想要的效果了。
->很难看? 当然,只有单纯的HTML代码的网页通常是非常难看的,这时候你就需要学习CSS。
~Cascading Style Sheet(层叠式样式表),可以让你的网页变得非常漂亮,比如插入a:{hover:red;}就可以让你页面上的链接在鼠标悬停的时候显示为红色。
->自己写太麻烦?用DreamWeaver阿
~HTML和CSS代码当然可以用诸如DreamWeaver和FrontPage这样的网页制作软件来自动完成,它们会生成更加专业的界面以及符合标准的代码,但是如果你没掌握自己如何编写HTML/CSS的话,你的网页制作能力基本上就仅限与此了——即使只是想做一个简单的投票页面都没门。
->网页是做好了,但是每次要修改都好麻烦阿 —— 那就学习动态网页制作把!
Nov
18
whu的校园网可谓ooxx啊。
官方的锐捷.exe确实可以上,不过限制多多——多网卡,代理
——连vmware的虚拟网卡都不放过,直接提示你环境冲突,逼你下线。
都是为了赚钱啊。不过上有政策下有对策,是吧。
我手头上有个传说中的patch,貌似对v2.51有效,但是有人又说不行。
好吧,我用Ubuntu,诶,貌似有个针对linux的xrgsu啊,很不错嘛
唯一的问题就是,它总是连不上,嗯。
不怕,咱们还有大牛们,开发了一个superstar,很赞
虽然还有些不够完善的地方
不过后来felicia大牛改进为newstar
再后来,嗯,某牛又些了一个GTK的UI,很好很强大。
于是在Ubuntu下面万事OK了,只是windows下面苦了一些xdjm们。
不过不怕,还是有大牛
不仅早先有大牛吧libpcap移植到了windows下面(winpcap)
而且还有小牛把superstar修改以后在windows下面编译成功了
也就是说,windows下面也可以用superstar了,超赞。
不过咋运行捏。。。
好吧,我废话说完了,开始正题:
官方的锐捷.exe确实可以上,不过限制多多——多网卡,代理
——连vmware的虚拟网卡都不放过,直接提示你环境冲突,逼你下线。
都是为了赚钱啊。不过上有政策下有对策,是吧。
我手头上有个传说中的patch,貌似对v2.51有效,但是有人又说不行。
好吧,我用Ubuntu,诶,貌似有个针对linux的xrgsu啊,很不错嘛
唯一的问题就是,它总是连不上,嗯。
不怕,咱们还有大牛们,开发了一个superstar,很赞
虽然还有些不够完善的地方
不过后来felicia大牛改进为newstar
再后来,嗯,某牛又些了一个GTK的UI,很好很强大。
于是在Ubuntu下面万事OK了,只是windows下面苦了一些xdjm们。
不过不怕,还是有大牛
不仅早先有大牛吧libpcap移植到了windows下面(winpcap)
而且还有小牛把superstar修改以后在windows下面编译成功了
也就是说,windows下面也可以用superstar了,超赞。
不过咋运行捏。。。
好吧,我废话说完了,开始正题:
Nov
16
通过调用下面这个函数,可以提取出url的GET里面的各个变量的值。
不是很完善(如果STR里面有RegExp的特殊字符就会出问题哦),但是够用了:)
比如 a.php?a=123&b=345
$_GET("a")就会返回123,$_GET("b")就会返回345
不是很完善(如果STR里面有RegExp的特殊字符就会出问题哦),但是够用了:)
比如 a.php?a=123&b=345
$_GET("a")就会返回123,$_GET("b")就会返回345
alert($_GET("a"));
function $_GET(str){
var reg = new RegExp("[&?]"+str+"=([^\&]*)(&|$)", "gi" );
var ck = reg.exec(window.location.search);
try{if(ck[1]==null || typeof(ck[1])=="undefine") return null;
}catch(e){ return null; }
return ck[1];
}
function $_GET(str){
var reg = new RegExp("[&?]"+str+"=([^\&]*)(&|$)", "gi" );
var ck = reg.exec(window.location.search);
try{if(ck[1]==null || typeof(ck[1])=="undefine") return null;
}catch(e){ return null; }
return ck[1];
}
Nov
16
早上用proxy_ajp的时候,总是出现
刚刚翻了一下apache的error log
发现有这么一句话:
然后上网搜了一下,原来是这个原因:
zz from http://rimuhosting.com/mod_jk2_and_mod_proxy_ajp.jsp
也就是说只要打开 /etc/apache2/mods-enabled/proxy.conf,然后修改Deny From all为 Deny From none 就OK了!!!
天。。。。。。。。
引用
403 Forbidden
You don't have permission to ooxx/ooxx
You don't have permission to ooxx/ooxx
刚刚翻了一下apache的error log
发现有这么一句话:
引用
[Sun Nov 16 08:44:13 2008] [error] [client 127.0.0.1] client denied by server configuration: proxy:ajp://localhost:8009/oak/
然后上网搜了一下,原来是这个原因:
zz from http://rimuhosting.com/mod_jk2_and_mod_proxy_ajp.jsp
引用
If you get an error in the Apache error log like
client denied by server configuration: proxy:ajp://127.0.0.1:8009/tomcat
then you may need to enable Proxying. e.g. on Ubuntu/Debian systems change the Proxy * setting from Deny all to Deny none in /etc/apache2/mods-enabled/proxy.conf
client denied by server configuration: proxy:ajp://127.0.0.1:8009/tomcat
then you may need to enable Proxying. e.g. on Ubuntu/Debian systems change the Proxy * setting from Deny all to Deny none in /etc/apache2/mods-enabled/proxy.conf
也就是说只要打开 /etc/apache2/mods-enabled/proxy.conf,然后修改Deny From all为 Deny From none 就OK了!!!
天。。。。。。。。
Nov
15
----
20081117补注:不对头。。每天的数据就根本没有存进去了,囧啊。。
---
一年的时间过去了,Felix's Blog的访问量从0涨到了23w,很不错。
不过里面恐怕大部分是来自于baidu和google,还有微软的spider
所以一直很想把它们的访问屏蔽了,不记录到访问量里面去。
前些天试了一下,发现bo-blog代码比较乱,找不到是什么地方进行的修改
今天详细看了一下find的用法,终于找到了源码
$ cd blog
$ find ./ -type f -name "*.php" -exec grep "\{\$blog_prefix\}history" "{}" \; -print
于是就找到了这个文件: global.php
大概在280行有个函数 savehistory
我在里面添加了如下一段代码:
不知道效果怎么样,看看今天的访问量吧^^
20081117补注:不对头。。每天的数据就根本没有存进去了,囧啊。。
---
一年的时间过去了,Felix's Blog的访问量从0涨到了23w,很不错。
不过里面恐怕大部分是来自于baidu和google,还有微软的spider
所以一直很想把它们的访问屏蔽了,不记录到访问量里面去。
前些天试了一下,发现bo-blog代码比较乱,找不到是什么地方进行的修改
今天详细看了一下find的用法,终于找到了源码
$ cd blog
$ find ./ -type f -name "*.php" -exec grep "\{\$blog_prefix\}history" "{}" \; -print
于是就找到了这个文件: global.php
大概在280行有个函数 savehistory
我在里面添加了如下一段代码:
//对搜索引擎不增加visit的数量 By Felix021
$UA = strtolower($_SERVER['HTTP_USER_AGENT']);
if(!(strpos($UA, 'baidu') === false && strpos($UA, 'google') === false
&& strpos($UA, 'yahoo') === false && strpos($UA, 'microsoft') === false
&& strpos($UA, 'msnbot') === false && strpos($UA, 'yodao') === false))
return;
$UA = strtolower($_SERVER['HTTP_USER_AGENT']);
if(!(strpos($UA, 'baidu') === false && strpos($UA, 'google') === false
&& strpos($UA, 'yahoo') === false && strpos($UA, 'microsoft') === false
&& strpos($UA, 'msnbot') === false && strpos($UA, 'yodao') === false))
return;
不知道效果怎么样,看看今天的访问量吧^^
Oct
29
安装了exim,测试一下,gmail成功收到邮件。
telnet localhost 25
下面是转贴的,如何通过telnet方式连接到smtp/pop服务器进行邮件的收发:
telnet localhost 25
引用
helo felix021
mail from: felix021@felix021-laptop
rcpt to: felix021[at]gmail.com
data
subject: test
line 1
line 2
.
mail from: felix021@felix021-laptop
rcpt to: felix021[at]gmail.com
data
subject: test
line 1
line 2
.
下面是转贴的,如何通过telnet方式连接到smtp/pop服务器进行邮件的收发: