{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量。例如,直接在模板中访问页面请求变量、获取访问模板时的时间邮戳、直接访问PHP中的常量、从配置文件中读取变量等。该保留变量中的部分访问介绍如下。1.在模板中访问页面请求变量我们可以在PHP脚本中,通过超级全局数组$_GET、$_POST、$_REQUEST获取在客户端以不同方法
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快
今天把自己的程序放到Linux上,本来以为可以正常运行了,结果问题接踵而至,首先是验证码显示不了,验证码显示不了说说解决思路:1:检查在生成的验证码的程序是否使用了未定义的变量,一切使用了未定义的变量的全部都会死翘翘 2:在输出验证码时输出不因该输出的,tab等等那些看不到特殊符号,这些都会死翘翘接着好了,解决验证码了,接下来我想写一段文章,点击编辑按钮,结果跳出来的是登录框,不可思议,因为这个编
Example 14.41. register modifier plugin<?php // let's map PHP's stripslashes function to a Smarty modifier. $smarty->registerPlugin("modifier","ss", "stripslashes"); ?> In the template, us
$options = array( CURLOPT_URL => $url, CURLOPT_COOKIEFILE => $cookie_path, #获取cookie存入文件路径 #好像和CURLOPT_FOLLOWLOCATION不能同时开启(未验证 CURLOPT_COOKIEJAR => $cookie_path, #从文
这两个函数都可以快速查找到指定元素中的值,比自己写的循环和判断来得更加高效以后查找数组的值就是用这两个函数吧,当然如果判读的数组元素只有一两个而已就自己写都方便header("Content-Type:text/html;charset=utf-8"); $a=array( array('name'=>'hah','sex'=>'女','age'=>19),
URL攻击:顾名思义,就是利用URL来进行攻击,攻击方式就是更改地址栏中的$_GET的参数,另外进行一些必要的猜测,比如以下面的URL为例:http://www.myfreax.com/category.php?category=mysql3攻击者可以了更改后面的参数mysql3的数值,进行猜测,或者结合一些其它的手段,我所知道有两个个Linux发行版专做攻击工具的,和测试的,非常强大,都是基于u
将百度的ueditor整合进自己的项目时,发现图片上传不了,提示:网络连接错误,请检查配置后重试,一时没有找到解决方法于是上网百度一下,这个提示的问题原因是N多的,只能自己分析了,我想应该是url的错误,于是我就打开chrome的控制台看了一下,原来是真的是url的错误,导致图片不能上传,
<?php session_start(); $gd=gd_info(); if (!$gd['FreeType Support']){ exit('该服务不支持gdlib'); } //文件头... header("Content-type: p_w_picpath/png"); //创建真彩色白纸 $im =
session缓存方式分类session_cache_limiter,它是session在客户端的缓存方式,有nocache,private,private_no_expire,public这几种。cache是属于浏览器的特性,它决定你浏览网页的缓存方式,没有缓存的情况会使你按浏览的“后退”键时提示要你更新连接,之前的内容就没有了,比如你填入的表单信息,都被丢失。通过header("Cache-C
当使用Ajax返回josn数据时,首先要确定你的三者字符编码是否一致,这三者包括:数据库,程序编码,浏览器编码,不一致可能会导致别人都难以理解的问题,并且在输出到浏览器时保证不会乱码以下示例;这是在数据库获取数据,然后格式化成json数据进行传输,不必要去阅读这段代码重点不在这里,在数据库获取到数据时建议先把数组print_r()输出到浏览器一下;以保证不会乱码,存在乱码格式化成json后将会出现
当你接收到用户输入数据,并且你确定你想要的数据只是一种类型时,那么就将用户的输入的数据强制转换为一种你确定的类型数据,防止用户输入一些垃圾数据,以保证数据库和网站的安全以下示例:/** * 获取当前页 */ public function getcurrPage(){ $this->currenPage=(isset
php错误的提示如下:Catchable fatal error: Object of class Paging could not be converted to string错误语句而且如果你用zendstudio的还不提示错误:$article=$this->db->selectArrs('select blog_article.*,blog_class.name from b
1.OOP思想与理论 其实我不知道在这里提OOP思想会不会是一种再炒蛋炒饭的行为,但是还是说说自己的理解。 OOP即Object-Oriented Programming,是面向对象程序设计的意思。 如果像我一样是学C出身的朋友,刚开始接触的时候可能觉得有点新奇;而没有泡在C这样面向过程的语言经验的朋友可能就觉得自然而然就这样子了——这应该就是传说中的可塑性强的意思了^_^。 OO(面向对象)的思
的:我要找出当前路径的目录和文件;目录结构如下 [1.png] php代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php define('ROOTPAHT', $_SERVER['DOCUMENT_ROOT']); if (is_dir(ROOTPATH)){ $fp=opendir(ROOTPATH); if ($fp){ while ($file=readdir($fp)){ //echo ROOTPATH.$file.'<br />'; //echo $file.'<
作为一个维护网站的人来说,做得最多的是安全,出问题时要能迅速解决问题,但是在这么多问题安全的问题是很难马上解决,因为对于一个黑客来说他们总是攻击完后总是留个后门以便日后再来,往往这个就是最隐蔽的,要做好安全防范是很有必要的
PHP 5.3 以上版本,使用pthreads PHP扩展,可以使PHP真正地支持多线程。多线程在处理重复性的循环任务,能够大大缩短程序执行时间。 我之前的文章中说过,大多数网站的性能瓶颈不在PHP服务器上,因为它可以简单地通过横向增加服务器或CPU核数来轻松应对(对于各种云主机,增加VPS或CPU核数就更方便了,直接以备份镜像增加VPS,连操作系统、环境都不用安装配置),而是在于MySQL数据库。如果用 MySQL 数据库,一条联合查询的SQL,也许就可以处理完业务逻辑,但是,遇到大量并发请求,就歇菜了。如果用 NoSQL 数据库,也许需要十次查询,才能处理完同样地业务逻辑,但每次查询都比 MySQL 要快,十次循环NoSQL查询也许比一次MySQL联合查询更快,应对几万次/秒的查询完全没问题。如果加上PHP多线程,通过十个线程同时查询NoSQL,返回结果汇总输出,速度就要更快了。我们实际的APP产品中,调用一个通过用户喜好实时推荐商品的PHP接口,PHP需要对BigSea NoSQL数据库发起500~1000次查询,来实时算出用户的个性喜好商品数据,PHP多线程的作用非常明
http://www.myfreax.com/admin/news/search/3/首部 public function search (){ $start=$this->uri->segment(5, 0); $keyword=$this->uri->segment(4, 0); echo $keywordd //%E9%A6%96%E9%83%A8 将会是输出的是escape加密过的字符串,需要这个字符解密, $limit=3; if ($this->input->get('name', TRUE)) { $keyword=$this->input->get('name', TRUE); echo $keyword; }
1 2 3 4 5 6 7 public function search($keyword){ $this->db->like('title', $keyword); $query = $this->db->get('article'); echo $this->db->last_query(); #输出最后的sql句 $res=$query->result_array(); return $res; } 这个对于调试非常有用
使用cli(命令行)方式执行php程序,方便调试php程序首先把php的执行文件加入的bash的环境 vi /etc/profile #找到第54行左右 PATH=$PATH:/usr/local/php/bin/php #加上这个语句:注意自己的php路径 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL #在这句前面加 #保存后使它生效 source /etc/profile #测试 <?php echo 'www.myfreax.com'; ?> #错误的程序测试 <?php echo 'www.myfreax.comn' echo QQ群:151327334 ?> 将会出现提示 记得上次,我的朋友的网站在Windows下一切正常输出,但是到Linux服务器,打开浏览器后,什么也没有输出,一片空白;然后我叫他关闭selinux iptables试试,但还是老样子,把我的朋友搞到愁死,找不
针对PHP的网站主要存在下面几种攻击方式: 1、命令注入(Command Injection) 2、eval注入(Eval Injection) 3、客户端脚本攻击(Script Insertion) 4、跨网站脚本攻击(Cross Site Scripting, XSS) 5、SQL注入攻击(SQL injection) 6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF) 7、Session 会话劫持(Session Hijacking) 8、Session 固定攻击(Session Fixation)
由于安装插件之前没有搞清楚这个BCS插件做什么用的,导致自己的wordpress站点不能上传图片下面是wordpress提示的错误 在这幅图里看不出任何的提示,就只是知道http出错而已,我想既然上传不了图片,就打开firebug进行调试 www.myfreax.com
关于http httpds ifame 的问题
dedecms 后台不能上传图片的原因很多了,但是这两个是很难发现,而且在本地测试还很正常,当初我想不来为什么上传不了图片,只好暂时使用ftp直接上传到空间,然后再使用在线浏览,选择图片加入,即使加入有时还会生成不了缩略图,,以下只说明两个原因: 1:主机空间商使用了反向代理服务器,导致上生成不了缩略图,这个只是针对使用的是远程图片那种,类似下面这种
现在在公司里主要是玩连个东西,一个是dedecms一个就是Ecshop了,总体来说Ecshop比dedecms容易修改得多,dedecms有时修改起来找不到函数在那里,甚至都不知道dedecms是从那里赋值给模板的,可能不够熟悉,即使不熟悉也好,但还是Ecshop修改起来简单多了
dedecms中的ckeditor编辑器换成百度ueditor编辑器
这个函数很适合在表单中使用,按照以前做法当我们的表单中很多类似这样的输入框的时候我们就不得不写很多$_POST['xxx']这样的代码,这些代码很多时我们还很难找到那个与那个input输入框对应,看着头都大了,的带来不少麻烦,而这个函数很巧妙的将input输入框的name属性结合,让我们很快就可以找到对应的输入框和更改
以下针对Linux服务器 2:先给所有文件给予777最高权限 1 chmod 777 -R 你网站目录 3:接着把iptables 关掉 1 service iptables stop 4:关掉selinux:只是暂时关掉 1 enforcing=0 5:如果可以上传了就检查selinux配置是否正确,怎么检查我不多说了,以后再写,还是不可以就检查程序 我怀疑给我的虚拟主机,问题是出在权限或者selinux上
大家一般都是用$_SERVER['SERVER_ADDR']获取IP地址,其实这只是我们在没有考虑过程序在复杂环境的网络环境而写出来的,使用$_SERVER['SERVER_ADDR']获取的IP地址是中间没有代理服务器时才可以获取正确的IP地址,那什么是环境有代理服务器的环境,如下图
8:增强session的安全,使用随机函数产生session_id,并带上基于当前时间微秒数的唯一id,经md5加密,使用客户端的ip地址,$_SERVER['HTTP_USER_AGENT'])作为密钥,再经过crc32函数产生一个32位字符串作为基础,使session安全得到增强,如果用户ip地址或者客户端发生变化,这个session就会失效,重新为客户端创建一个新的session
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号