Javascript

让图片自适应大小的方法

No Comments 15 October 2006

昨天在和动漫网站开发人员的交流中发现一个问题,就是新闻详细页面中的图片不会自适应大小,这其实是一个非常常见的问题,目前我所知的解决办法有以下几种:
1. 用后台程序自动生成缩略图
2. 用css调用expression控制图片溢出后的大小;

http://www.blog.edu.cn/user1/7987/archives/2006/1440861.shtml

3. 用js写函数控制图片溢出后的大小;
其中后两种都是javascript在起作用,但是工作原理不同,css中调用expression可以解决这个问题,但是解决得不好,因为如果页面中图片一多,expression中的语句会不断被调用,非常耗费客户端内存,容易导致浏览器假死;而直接用javascript,在页面onload的时候就可以轻松解决这个问题,而且只调用一次,比起expression真是好得太多,程序很简单,下面是个简单的例子,我假设这个页面图片宽度不能超过200px,而实际图片宽度是550px:

  1. <script>
  2. function initImage(){
  3. var images=document.getElementsByTagName("IMG");
  4. for(i=0;i<images.length;i++){
  5.     if(images[i].offsetWidth>500){
  6.       imageRate=images[i].offsetWidth/images[i].offsetHeight;
  7.       images[i].style.width="500"+"px";
  8.       images[i].style.height=500/imageRate+"px";
  9.       }
  10.    }
  11. }
  12. </script>
  13. <body onload="initImage()">
  14. <img src="http://218.57.200.19/zmx/ziran/zhiwu/huazhiyu/5.jpg" />
  15. <a href="http://218.57.200.19/zmx/ziran/zhiwu/huazhiyu/5.jpg">查看原图</a>
  16. </body>

 

Life

博客“时光倒转”1天

No Comments 12 October 2006

晚上我想帮qq从MSN SPACE转移到我空间的子目录里面去,可是发现pjblog在我的子目录里却呈现出主目录的首页数据,我想应该是缓存引起的吧,于是我就进到子目录的系统里初始化了所有数据………………
当我看到子目录里的系统变正常以后,非常开心地进入到了主目录,我疯了……………………………
页面配置信息全没有了……………………………………………………………………

幸好我blog前天备份了一下主目录,否则我就完了,我就不会有操办这个blog的信心了……..

不过还是损失了两天来的访问记录、两天来的评论和留言,在这里和大家说对不起了,而且损失了今天下午发的一篇日志《用js+flash打造图片切换效果》,网站这种东西很多,就不详细写了,链接到一个热心朋友那边去吧,
http://www.angere.net/blog/article.asp?id=29

 

Music & Movie

张靓颖《The One》

No Comments 11 October 2006


去年的夏天我曾经说,张靓颖是在用灵魂在唱歌,因为她的歌声可以直接拨动我的心弦。
听了这么多年的欧美音乐和国内流行音乐,我变得麻木,无论是谁发片,我都不曾这样激动,坐在办公室的椅子上颤抖,如同去年夏天她用海豚音颤抖我一样。

试听地址:
http://d.sogou.com/sogou_phb/detail_star.jsp?alplid=4517

专辑简介:
《The One》唯一挚爱张靓颖首张个人大碟完整歌曲串烧
⊙ 《The One》横空出世
在此之前,张靓颖已经发行了首张EP《Jane.爱》和翻唱专辑《我爱邓丽君》,无论从专业品质及市场流行度来讲含金量都很高,一上市便受到热烈追捧。而《天下无双》、《我用所有报答爱》这样令人震撼的国际化专业演绎,更是让谭盾体会到了中国新一代流行乐歌手的实力,谭盾曾以“温暖如晚霞般的声音”来形容张靓颖的嗓音。近日随着《夜宴》的热映,张靓颖所演绎《我用所有报答爱》更被观众认为是本片最大的亮点。
2006年7月,张靓颖远渡重洋来到美国,拉开新专辑录制的序幕。张靓颖在美国的一个多月时间里,华谊公司不惜花费百万为张靓颖录制了三首英文歌曲,而与张靓颖合作的词曲作者、乐手、录音师、制作人全部是美国芝加哥的顶级音乐人,录音棚也是全芝加哥规模和档次最高的。
2006年9月初,张靓颖新专辑中的三首新歌正式露面,便迅速成为各大音乐网站下载和试听的榜首,令各界看好和关注的重要原因,则是张靓颖的歌曲吸引到的不仅仅是“凉粉”,而是喜欢听流行情歌的更广泛人群。不打“偶像牌”,这一定位极大的区别了同期发片的其他年轻女歌手。
⊙ 《The One》介绍
《The One》的中文歌部分由新加坡制作人李偲菘、李伟菘,联手内地金牌制作人郭亮共同担当,整张专辑将以一种情感路线为主轴,多样的曲式在不同制作人的操刀下,呈现了张靓颖在演唱功力上的多元化与深度。在问及合作的歌手中,李伟菘表示张靓颖是和他最“来电”的内地歌手,这次的合作感觉还不过瘾,他透露自己已经写好了几首新歌,这次来不及放进张靓颖的首张专辑,但张靓颖看了非常喜欢,已相约收录进她的第二张专辑。据华谊兄弟音乐公司透露,马上要推出新专辑的张靓颖现在很“抢手”,近期各大媒体已经展开一场“公主争夺战”,希望抢先买断或得到“海豚公主”张靓颖最新大碟的歌曲以及活动主办权。《The One》中的英文歌《GIRL OF YOUR DREAMS》更是被法国著名刊物《嘉人》杂志花重金购得首发权。据悉在10月份将还有包括《时尚》在内的三家国际知名时尚杂志花巨资给张靓颖拍摄专辑照片,并送单曲CD。
⊙ 《The One》我们共同的期待
9月12日,华谊兄弟音乐公司宣布将张靓颖新专辑中的中文歌曲《个人秘密》完整版,放到各大门户、音乐网站免费试听。同时,华谊首次公布了专辑所有歌曲的名字。
9月21日,在新浪歌会张靓颖专场上,张靓颖首次现场演绎了《个人秘密》、《身体语言》和《GIRL OF YOUR DREAMS》三首新歌。
10月11日,张靓颖首张音乐大碟《The One》将正式盛大登场,同时这一天将是她本人的生日,可谓双喜临门。
10月18日,张靓颖将在北京举行《The One》规模宏大的发片首唱会。
曲目:
1.
个人秘密
2.
这该死的爱
3.
如果爱下去
4.
想你,零点零一分
5.
木脑壳
6.
Midnight,Goodnight
7.
身体语言
8.
Take It Like A Man
9.
Can't Take It Back
10.
Girl Of Your Dreams

 

Life

终于有了自己的测试服务器

No Comments 10 October 2006

今天上午收到转职为web开发后的最好消息—杨总给我搞了台电信的DL380服务器。
哦也,终于要结束“寄人机下”的痛苦了……….
争取今天结束沸点官网的数据结构搭建,50个mysql table,我这辈子难以释怀的东西….
然后下班前把输入法的皮肤CMS移植到新测试机上。
fighting~!

p.s:最近关注设计类的东西比较少,但是不等于不关注,我打算近期开始设计一个音乐播放器的UI,玩票一把。

 

LAMP

PHP防SQL注入的方法

3 Comments 09 October 2006

SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。下面来谈谈SQL注入攻击是如何实现的,又如何防范。
看这个例子:

  1. // supposed input
  2. $name = “ilia’; Delete FROM users;”;
  3. mysql_query(Select * FROM users Where name=’{$name}’”);

很明显最后数据库执行的命令是:

  1. Select * FROM users Where name=ilia; Delete FROM users

这就给数据库带来了灾难性的后果–所有记录都被删除了。不过如果你使用的数据库是MySQL,那么还好,mysql_query()函数不允许直接执行这样的操作(不能单行进行多个语句操作),所以你可以放心。如果你使用的数据库是SQLite或者PostgreSQL,支持这样的语句,那么就将面临灭顶之灾了。

上面提到,SQL注入主要是提交不安全的数据给数据库来达到攻击目的。为了防止SQL注入攻击,PHP自带一个功能可以对输入的字符串进行处理,可以在较底层对输入进行安全上的初步处理,也即Magic Quotes。(php.ini magic_quotes_gpc)。如果magic_quotes_gpc选项启用,那么输入的字符串中的单引号,双引号和其它一些字符前将会被自动加上反斜杠\。

但Magic Quotes并不是一个很通用的解决方案,没能屏蔽所有有潜在危险的字符,并且在许多服务器上Magic Quotes并没有被启用。所以,我们还需要使用其它多种方法来防止SQL注入。许多数据库本身就提供这种输入数据处理功能。例如PHP的MySQL操作函数中有一个叫mysql_real_escape_string()的函数,可将特殊字符和可能引起数据库操作出错的字符转义。

看这段代码:

  1. //如果Magic Quotes功用启用
  2. if (get_magic_quotes_gpc()) {
  3. $name = stripslashes($name);
  4. }else{
  5. $name = mysql_real_escape_string($name);
  6. }
  7.  
  8. mysql_query(Select * FROM users Where name=’{$name}’”);

注意,在我们使用数据库所带的功能之前要判断一下Magic Quotes是否打开,就像上例中那样,否则两次重复处理就会出错。如果MQ已启用,我们要把加上的去掉才得到真实数据。除了对以上字符串形式的数据进行预处理之外,储存Binary数据到数据库中时,也要注意进行预处理。否则数据可能与数据库自身的存储格式相冲突,引起数据库崩溃,数据记录丢失,甚至丢失整个库的数据。有些数据库如PostgreSQL,提供一个专门用来编码二进制数据的函数pg_escape_bytea(),它可以对数据进行类似于Base64那样的编码。

如:

  1. // for plain-text data use:
  2. pg_escape_string($regular_strings);
  3.  
  4. // for binary data use:
  5. pg_escape_bytea($binary_data);

另一种情况下,我们也要采用这样的机制。那就是数据库系统本身不支持的多字节语言如中文,日语等。其中有些的ASCII范围和二进制数据的范围重叠。不过对数据进行编码将有可能导致像LIKE abc% 这样的查询语句失效。

 

Page 3 of 41234

© 2006 Satellite Of Love. Powered by Wordpress.

Photo Edition, originally Daily Edition.