Big Bug Ban

兴趣 践行 创新

Archive for 10月, 2011

一段代码说优化[php]

 

这是原始代码

  1. <?
  2.        echo “Hello “.$_GET[‘name’].“!”;
  3. ?> 

这段代码是大体没有问题的,但是存在一些细节

1.       开头使用<?    没有使用<?php  不规范如果php.ini里面没有开启的话  此段代码将无法执行

2.       $_GET[‘name’]没有做前置判断是否存在。如果url里面没有这个参数。用户进来很有可能看到报警信息,不友好

3.       “(双引号)和'(单引号)的区别是单引号不会对里面的内容进行匹配转义。

比如

  1. $a=‘123’;
  2. echo ‘a$a’;

会输出a$a而非a123。

在上面的代码中不需要进行这种操作,所以用'(单引号)更好,解释器不再检测变量替换,速度更快

4.        这段代码的目的是打印出字符串。字符串中间的连接符可以改为,(逗号)   让echo顺序打印,不再执行字符串的连接操作

5.        输出没有转义,存在跨站漏洞,忘了,呵呵。 感谢老大指正~(@见素

最后的代码如下

  1. <?php
  2.      if(isset($_GET[‘name’])) echo Hello ,htmlspecialchars($_GET[‘name’]),!;
  3. ?> 

Written by princehaku

10月 29th, 2011 at 4:50 下午