编程技巧 - 文章列表
-
任意字符集下正常显示网页
通常情况下,我们的网页要指定一个编码字符集,如 GB2312、UTF-8、ISO-8859-1 等,这样我们就可以在网页上显示我们指定编码的文字了。但是我们很可能会遇到这种情况,那就是我们可能希望在 ISO-8859-1 编码的网页上显示汉字,或者在 GB2312 编码的网页上显示韩文等。当然一种解决办法就是我们不用 ISO-8859-1 或者 GB2312 编码,而统统都采用 UTF-8 编码,这样我们只要在这种编码下,就可以混合显示各国文字了,这是现在很多网站采用的方法。\n而我这里所说的并非上面这种方法,因为上面这种方法必须要指定字符集为 UTF-8 才可以,一旦用户手工指定为其他字符集
-
一个完整、安全的用户登录系统
在使用PHP编程的时候,我有一个习惯,不太喜欢使用现成的库文件,例如PHPLib或者其它类似的库,在这个系统中,我也打算自己写一个库文件,它需要处理认证、确认email,更新帐号(密码,email)等事情。 为了在保证该系统安全的同时,不会加重我现有数据库的负担。因此这个新的系统要依赖cookies。这确实是一个两难的选择,因为如果只是设置一个用户名的cookie,是很不安全的,这行不通,但从数据库的负担考虑,我也不能加入一个简单的无序码而交由我的数据库来进行验证。\n 解决的方法是同时设置两个cookie,一个是用户名的cookie,一个是无序码的cookie。这个无序码实际上是由用户名和
-
PHP与SQL注入攻击
SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。下面来谈谈SQL注入攻击是如何实现的,又如何防范。\n 看这个例子:// supposed inputname = “ilia’; DELETE FROM users;”;mysql_query(“SELECT * FROM users WHERE name=’{name}’”); 很明显最后数据库执行的命令是:SELECT * FROM users WHERE nam
-
PHP的十个高级技巧(中)
(作者:张文芹编译 ) 三、文件是我们的朋友 无论你在开发的网站规模的大小,都应该意识到代码重用的重要性,无论这些代码是HTML、还是PHP代码。例如,你必须至少每年改变一次包含版权信息的页脚,如果你的网站含有1000个页面,每年修改一次也是个很烦人的事儿。 在PHP中,至少有几个函数可以帮助你实现代码重用的目的,所使用的函数取决于你所重用的代码,主要的函数有: * include() and include_once() * require() and require_once() include()函数包
-
PHP中常见的session问题
1,如何设置长生命期的session ? 将 session.cookie_lifetime ,session.gc_maxlifetime 的时间设置长一点。\n2,为什么初始化session的时候报错?a,检查session文件的存储路径,路径是否对,操作权限是否够b,检查session初始化之前是否有html 内容输出\n3,客户端在禁止使用cookie的时候,session会有影响吗?当客户端的cookie拒绝使用的情况下。将会带来很多的一些的不方便:php 会自动在页面的链接和表单等地方添加sessionId参数。以保证会话的继续,但是这个时候,在一个浏览器上多次手工输入一样地址,s
-
PHP中的正则表达式
综述 \n正则表达式是一种可以用于模式匹配和替换的强有力的工具。正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。\n如何使用基本模式匹配?\n 模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符重复出现,或表示上下文。我们先看一些正则表达式中的特殊字符。\n特殊字符”^”用来匹配以指定字符串开头的字符串。例如:\n
-
PHP界的大事:zend已经可以破解
10月4日,国内有一家名为清风工作室的网站推出一款名为deZender的软件,据他们说“deZender可以反编译被zend编译过的所有 PHP代码,由deZender产生的PHP源代码同原始文件相比,在源代码级有超过95%以上的一致率,除极少数特殊情况外,无需经过任何修改,即能正确运行并实现与原始文件完全相同的功能。deZender能100%地还原PHP的变量名、函数名、类名、属性名、方法名,甚至函数的参数名。” 这个消息引起了众多php爱好者的关注,到目前为止,已经有上百个朋友在他们论坛提供了代码让他们破解,虽然到现在还不能完美破解,但破解的结果还是让很多人吃惊,所有用zend enco
-
PHP学习:Smarty的分页实现
Smarty中的分页有很多方法。 1。使用Smarty的分页插件,如Pager,pagnition,sliding_page等,不过感觉都不是太好,几乎都有一些Bug。 有兴趣试用和自己去改进的朋友可以看看:http://smarty.php.net/contribs/plugins/view.php/function.pager.phphttp://www.phpinsider.com/smarty-forum/viewtopic.php?t=2327http://www.phpinsider.com/smarty-forum/viewtopic.php?t=1604 2。使用分页类库
-
PHP的十个高级技巧(下)
(作者:张文芹编译) 六、动态图像的创建 只要安装一些第三方的库文件并具有一定的几何知识,就可以利用PHP来创建和处理图像了。事实上,这不需要太多的几何知识,因为我大学没有毕业,仍然可以利用PHP创建图像。 在使用基本的图像创建函数之前,需要安装GD库文件。如果要使用与JPEG有关的图像创建函数,还需要安装jpeg-6b,如果要在图像中使用Type 1型字体,则必须安装t1lib。 在建立图像创建环境之前,还需要作一些准备工作。首先,安装t1lib;其次安装jpeg-6b,然后再安装GD库文件。在安装时一定要按这里给定的顺序进行安装,因为在编译GD
-
PHP中session详解
综述 Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。 一般来说,在网站上某一个页面中的变量(指服务器端变量,下同)是不能在下一页中用的,有了session就好办了。session中注册的变量可以作为全局变量使用。这样我们就可以将session用于用户身份认证,程序状态记录,页面之间参数传递。 在PHP3版本中是如何实现session的? php3本身是没有实现session功能的,我们只有用其他的方法来实现,这其中最有名的要算phpli