易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP程序员最易犯10种错误


1.不转意html entities
一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转意。
echo $_GET['usename'] ;
这个例子有可能输出:
<scrīpt>/*更改admin密码的脚本或设置cookie的脚本*/</scrīpt>
这是一个明显的安全隐患,除非你保证你的用户都正确的输入。
如何修复 :
我们需要将"< ",">","and" 等转换成正确的HTML表示(< , >', and "),函数htmlspecialchars 和 htmlentities()正是干这个活的。
正确的方法:
echo htmlspecialchars($_GET['username'], ENT_QUOTES);

2. 不转意SQL输入
我曾经在一篇文章中最简单的防止sql注入的方法(php+mysql中)讨论过这个问题并给出了一个简单的方法。有人对我说,他们已经在php.ini
中将magic_quotes设置为On,所以不必担心这个问题,但是不是所有的输入都是从$_GET, $_POST或 $_COOKIE中的得到的!
如何修复:
和在最简单的防止sql注入的方法(php+mysql中)中一样我还是推荐使用mysql_real_escape_string()函数
正确做法:
<?php
$sql = "UPDATE users SET
name='.mysql_real_escape_string($name).'
WHERE id='.mysql_real_escape_string ($id).'";
mysql_query($sql);
?>


3.错误的使用HTTP-header 相关的函数: header(), session_start(), setcookie()
遇到过这个警告吗?"warning: Cannot add header information - headers already sent [....]
每次从服务器下载一个网页的时候,服务器的输出都分成两个部分:头部和正文。
头部包含了一些非可视的数据,例如cookie。头部总是先到达。正文部分包括可视的html,图片等数据。
如果output_buffering设置为Off,所有的HTTP-header相关的函数必须在有输出之前调用。问题在于你在一个环境中开发,而在部
署到另一个环境中去的时候,output_buffering的设置可能不一样。结果转向停止了,cookie和session都没有正确的设
置........。
如何修复:
确保在输出之前调用http-header相关的函数,并且令output_buffering = Off


4. Require 或 include 的文件使用不安全的数据
再次强调:不要相信不是你自己显式声明的数据。不要 Include 或 require 从$_GET, $_POST 或 $_COOKIE 中得到的文件。
例如:
index.php
<?
//including header, config, database connection, etc
include(


相关文档:

PHP 支持画图函数的编译方法

首先检查一下的安装包:
 rpm -q gd
 rpm -q
jpegsrc
 rpm -q libpng
 rpm -q zlib
 rpm -q freetype
如果以上的安装包没有,请自行安装,其实要只要gd 和libpn 相关的包即可,其他的为了支持其他图形格式而已。
(以下的安装步骤为整理自网络文章)
1.安装zlib
tar zxvf zlib-1.2.2. ......

php+mysql乱码问题

问题描述:
从php界面insert数据到mysql,只能输入偶数个汉字不能输入奇数个汉字,输入奇数个汉字后报“Data too long for column ”错误,并没有更改数据库数据。到数据库查看,发现汉字都是乱码。但是php界面显示汉字正常(当然显示的都是偶数个汉字,奇数个汉字都没有写入数据库)。
解决思路:
1.更改my.i ......

尝试用Gearman实现分布式处理(PHP)

本文需要你已对Gearman有个大致了解,如果不知该东东是何物,请参考之前一篇转帖日志《Gearman - 分布式远程过程处理框架》
顺便再推荐两篇参考文章
http://hi.baidu.com/thinkinginlamp/blog/item/ff49972b9e7378f3e6cd40aa.html
(学学Gearman)
http://www.ibm.com/developerworks/cn/opensource/os-php-gearman/ind ......

PHP5 读取Google 天气预报 XML

Google为全球主要城市提供了统一的天气预报数据存储格式,那就是XML。所有的开发者都可以利用自己喜欢的语言来解析XML获取所需城市的天气预报,本文将介绍利用PHP来获取我所在城市济南的天气预报。
原文见本人网站【PHP探路者】
原文链接:
PHP5 读取Google 天气预报XML API ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号