随笔分类 - php
php 用户ip的获取
摘要:$_SERVER 这个变量我很喜欢,里面有很多服务器和用户的配置、资料。特别是在获取用户ip 的时候直接$_SERVER['REMOTE_ADDR'] 就可以或许,但这是没有使用 反向代理服务器的情况,使用反向代理服务器之后,得到的不是用户的ip ,是反向代理服务器的ip,为了得到用户的真实ip,以nginx为例,可以添加header 头信息X-Forwarded-For,这样通过$_SERVER['HTTP_X_FORWARDED_FOR'] 得到的就是用户的真实ip
阅读全文
sql 注入的防范(一)
摘要:为了保证程序的健壮性,我们必须对用户输入的数据做有效性验证,防止用户恶意提交数据。关于防止 sql 注入 我主要从三个方面入手:1、确认为正整数的,强制转化为int,$id =$_GET('id'):$_GET('id'):1;2,文本类型。若magic_quotes_gpc开启,就不出处理,否则,addslashes 一下,在不判断magic_quotes_gpc 是否开启的情况下,就转义,会造成文本内多次出现“\”,3,对于一些边界值的处理比如 负数,或者0,等等,超出范围的情况下,要指定默认值,防止拼接后语句出现错误。4,变量要加引号,不要图省事
阅读全文
我的php 页面调试 白屏方法
摘要:有的时候项目在测试环境运行的挺好,但是一到线上就出来白屏。白屏比较令人头疼。下面是的我的解决思路。如果php 页面出现白屏,把error_reporting 设置为E_ALL,一般可以把错误显示出来,但是有的时候不是那么的管用。我一般遵循以下步骤。1,首先搜索出配置文件,把配置文件中的error_reporting 都改为E_ALL ,防止配置文件中设置把手动改的覆盖掉2,如果还是不管用,就只能首页,一步,一步的在 页面中添加 echo "text",看看哪的 内容没有echo出来,说明哪的方法执行有问题。3,进入执行有问题的方法,看看是不是 有@ 符号,把错误给忽略了,有
阅读全文
取消转义 stripcslashes 的一个特点
摘要:stripcslashes 可以去除addslashes 添加的斜线,如果没有调用addslashes,结果会怎么样呢。 1 if(get_magic_quotes_gpc()){ 2 $str = stripcslashes($str); 3 //$str = addslashes($str); 4 echo "on <br/>"; 5 }else{ 6 echo "off <br/>"; 7 $str = stripcslashes($str); 8 //$str = addslashes($str); 9 }10 echo
阅读全文
Call-time pass-by-reference has been deprecated 的问题解决
摘要:最近配置一项目,结果处出现空页面。把error_reporting 打开,结果显示的是Call-time pass-by-reference has been deprecatedallow_call_time_pass_reference指的是在函数调用时参数被按照引用传递时是否发出警告。把php.ini 中的allow_call_time_pass_reference 改为true。也不管用,一查文档,在5.4已经移除了,知道把php 换为5.3的版本,问题解决。看来不能盲目更新新版本啊。
阅读全文
textarea 换行内容同的保存 与展示
摘要:text area中 如果保存了换行的内容,在页面上直接echo 出来,换行效果会丢失,查了很多资料,原因在于textarea 中的换行用的"\n",并且在不同环境下,略有不同,变成了"\r\n",一般大家给出的思路是在存到数据库中之前,先把"\n" ,替换为"<br/>",在需要编辑的时候在替换回去。其实我发现用不找这么麻烦,php 有内置的函数nl2br() 官方解释为在字符串所有新行之前插入 HTML 换行标记。所以存入数据库的过程不用人工干预,照样存,在取出来之后再用nl2br过滤一下,解决问题
阅读全文
windows 下 ci 框架 命令行模式(cli)的使用
摘要:由于项目需要需要导出部分数据,利用cli 模式可以很好的避免http超时的问题,可是ci的框架入口做了限制,总是失败。查了很多资料总算解决了。操作系统win7 x64wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24 。首先1配置 php 的环境变量右键 点击 计算机(就是xp下的我的电脑)打开 系统面板,点击 “高级系统设置” ,在“高级”选项卡下点击“环境变量”,在下面的“系统变量(s)” 内查找Path,选中 点击编辑,在变量值后追加php 的路径 ,注意各个路径之间是用分号“;”隔离的,wamp 环境下是“X:\wamp\bin\ph...
阅读全文
isset 判断为POST信息是否为空 (笔记,持续更新)
摘要:isset()对于数组中为NULL的值不会返回TRUE,但是array_key_exists()会返回true。在post 信息中判断某个键是否有值得时候使用isset();
阅读全文
php 日期处理(不断更新)
摘要:取得一周,一月以前的时间$t = strtotime('-1 week');$t = strtotime('-1 month'); $time = date("Y-m-d H:i:s" ,$t);
阅读全文
php中实现中文字符串的反转
摘要:php中内置的函数strrev()只能反转英文的字符,在反转中文字符的时候因为编码的问题就会产生乱码。因此只能自定义函数来实现了。思路如下1、将utf8编码的中文字符逐个读出放到数组中。2、将数组反转。3、将反转后的数组拼接为字符串,返回代码如下: 1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 /* 4 此函数的作用是反转中文字符串 5 mb_strlen() 获取字符的长度 6 mb_substr() 获取字符的单个元素 7 krsort() 按照键值逆序排序数组 8 ...
阅读全文
浙公网安备 33010602011771号