php5.5中ecshop提示Only variables should be passed by reference

 更新时间:2016年11月25日 17:37  点击:2037
php5.5升级了很多功能的同时也去除了不少功能了,小编在使用ecshop提示Only variables should be passed by reference错误了,下文就来和各位一起看解决办法。

php大家用的版本不断提高,Ecshop没有来得及修改那么及时。

Ecshop安装出现

Only variables should be passed by reference

5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了

 代码如下 复制代码

 $tag_sel = array_shift(explode(' ', $tag));

改成:

 $tag_arr = explode(' ', $tag);  $tag_sel = array_shift($tag_arr);

(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值

修改

 代码如下 复制代码

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead...?
cls_template.php

 $out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";

json只能使用utf-8编码来进行操作,否则就会返回null或空字符串了,下面提供一个非常简单的办法供大家参考。

原因分析

其它的json_decode($str)返回NULL的一些原因:
1.$str只能UTF-8编码
2.元素最后不能有逗号(与php的array不同)
3.元素不能使用单引号
4.元素值中间不能有空格和\n,必须替换

在用PHP JSON处理符合标准的GBK编码内容时会返回null,将内容从GBK转换为UTF8再处理正常:

 代码如下 复制代码


$jsonp = mb_convert_encoding($jsonp, "gbk", "utf-8");
//或
$jsonp = iconv('gbk','utf-8',$jsonp)

数据丢失对于小编来讲是个头痛的问题了,因为小编碰到表单提交大量数据发生丢失问题也是这几天了,但不是时尚而有时会丢失了,这个问题非常难解决,下面整理了一些解决办法,希望可以帮助到各位。

网上找了一堆,php.ini 的post_max_size和upload_max_filesize都设置了很大的值,没用,nginx的client_max_body_size 500m;加到了那么大的值,也没用。
最后终于google到办法:原来PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量,实在无语。
后来查看php这一部分源码看到这句代码:

 代码如下 复制代码

if (++count > PG(max_input_vars)) {
                 php_error_docref(NULL TSRMLS_CC, E_WARNING, "Input variables exceeded %ld. To increase the limit change max_input_vars in     php.ini.", PG(max_input_vars));
                 return;
}

猛然间想起来,php5.3.10在解决hash冲突受攻击时,增加了一个配置指令max_input_vars。php.ini中增加这个指令的值即可。

php 表单提交长文章数据丢失问题解决方法

该值默认情况下是1000 , 不能满足有1000个以上输入项的需求,所以得在php.ini 里面加上更大的值如:
max_input_vars = 5000

最近经常有人问如何有效的学习Drupal,所以小编就邀请国内在Drupal界比较知名的专家,让他们来告诉我们怎么样有效的学习Drupal,以下是小编整理的问答及答案。

问:请教各位关于drupal整个学习的一个过程?
“在学习一样新鲜事物的时候,往往会发现其中好多方面或是分支知识储备不够,然后转去学习别的知识点。比较困惑,就想请教各位关于drupal是一个怎么样的学习过程?

目标:能够完成普通的企业站和一些简单需求的网站。”


以下是各位在Drupal有一定影响力的Drupaler的回答:


——————————分隔符————————————–

于志成 喜欢折腾,爱好技术,宅,认真,懒

“首先要看你如何定位你的学习目标,比如你的目标是做简单的网站,最好时间就不要花在诸如研究Drupal各个知识点是如何实现上。
你需要学的是:
1. Drupal的基本术语,比如node, content type, user, user role, permission, taxonomy, cck/field, module, theme, views, template, menu等等,就不一一列举了。
2. 然后,你需要学会使用内置模块,通过配置,根据需求,实现网站的基本数据结构,包括几个内容类型来容纳数据,几级菜单来做导航,几个分类和标签来标记内容
3. 在理解主题机制的基础上,讲各个页面theme成想要的样子
4. 如果默认的列表满足不了全部需求,你可能需要理解和使用Views模块
5. 如果还需要一些其他的功能,你需要学会利用Drupal官网的模块库资源,找到自己需要的功能模块。

以上是学习Drupal制作简单网站的一般流程,如果每一个步骤你都能做的很好,你就能学会80%要学的Drupal知识,但花费的时间只占你整个Drupal学习时间的20%。

但如果你想成为一名Drupal高手,你需要花费80%的时间,去把那20%的晦涩难懂的Drupal底层理论,各个重量级模块的扩展,各个模块之间的配合,各种最佳实践融汇贯通。”

——————————分隔符————————————–

幽灵 幽灵古堡

谢邀,个人认为根据目标水平不同,可以分为不同阶段:

简单建站:要达到这个水平并不难,熟悉一些常用模块,能够下载需要的模块或主题并将其安装在目标网站上,熟悉一些drupal的术语,如content type,taxonomy等。

高级建站:达到这个水平,需要付出一些努力,常用模块基本上要做到随需随用,能够根据需求确定模块的使用,至少能在需要的时候找到解决问题的方法,即使是利用网络资源;能够进行简单的定制,对drupal的实现方式有一定的理解,能依照drupal的标准完成需求。

简单开发:根据需求定制模块和主题,这需要至少会php、js、html、css,可以不必精通每一种,但至少精通其中以两种,这里分模块开发和主 题开发,不同方向需要的技能也各不同,功能开发者需要会php,并且熟悉drupal核心以及常用模块的API,并能熟练应用;主题定制者至少要会 html和css,并且熟悉drupal的主题机制,能够对模板进行覆写,并且需要的时候要能在template.php中进行一些定制修改。

高级开发:要达到这个水平,需要不懈的努力,不管是主题开发还是模块开发,都要求能依据drupal的代码标准,制作出主题或者模块,模块和主题相互之间的交叉地带也都横沟搞定,模块内自带的模板文件和样式表并提供覆写机制,主题内的处理过程等等。
    补充:除此之外,高级点的还会涉及到多人协作开发,这里相关的软件工程知识也成了必须,版本控制等等一系列技能也需要掌握。

以上愚见,望指正。


——————————分隔符————————————–

yangbo

就达成你所提的目标,学drupal theme机制即可。

首先理解一下几点:

Drupal所有输出,要通过theme;
theme根据一个theme的“注册表”,调用相应的输出函数输出;
这个“注册表”是可以更改的。更改的方法为:定义一个特定命名模式的函数,drupal术语为hook。

以上三点为深入浅出故,从简叙述,但依次大意,再配合详细文档,理解drupal的theme机制不难。

如果想玩drupal玩的好,建议:

阅读drupal源代码,弄懂一个请求过来,到返回结果(一个页面),drupal经历了哪些步骤,干了哪些事,原理弄懂了自然“变化神通,游戏无碍”;
理解open source的理念,按open source的理念去参与drupal社区。

——————————分隔符————————————–

流云 爱生活,爱Drupal

就说我自己,刚毕业时就用了drupal,就是从用开始的,一开始是偏向主题前端开发, 因为普通站点主要就是用第三方的模块搭功能,主要是主题前端要定制的较多,持续了有半年左右我才开始真正的像模块开发靠拢。架构方面的经验也是通过项目的 积累积攒的,所以同意一些朋友所说的,有项目实践才是最重要的,否则你自己学了那么多也不知道到底怎么用。

刚巧我们公司最近有新人加入,以前都没接触过drupal,我去给他们培训。因为我们不是要做项目外包,而是直接维护开发产品。所以主要培训方向是模块开发,不需要去考虑项目需求和架构层面的。

计划是大概1-2周时间讲完下面的培训内容:

面内容的组成:页面,区域,区块,节点,内容类型,字段,用户,分类,菜单,评论,钩子,事件,动作,rules,主题模版系统,views,常用模块,系统常用配置,表单,常用API,Drupal执行流程

完了就直接上来跟着开发实践。到时候看看效果如何。

大家如果有什么建议也可跟我说说,谢谢。

——————————分隔符————————————–

赵高欣 我的博客 http://www.drupal001.com

Drupal的学习,志成兄总结的比较到位。

就个人体会,任何开发工具和语言的学习都要从实践中提高,理论的学习很简单也比较快。

此外就是从最简单的地方入手,比如drupal,你先要安装一个用用,装几个简单的模块试试,再就是做一个小项目,看如何实现。

比如,刚开始我就用drupal做了一个自己用的简单网站,翻译英文笑话的网站,做得过程虽然有时很多用的都不对,但是做完之后确实大体了解了很多Drupal的核心理念。

因此就是先用,再就是一个一个模块的慢慢来。/**有时一个模块就是一个新的技术领域**/,并不是一个模块的知识面能涵盖的。比如SEO模块,那么你得有seo的知识,并不是模块有多难,而是你没有SEO的知识,还有GoogleAnalytics, 你对GA要有所了解,等等,不一一列举。

最后说一下更新的问题,Drupal我觉得算是更新比较慢的了,大版本更新很慢,小版本基本就可以忽略,因为大多都是bugfix或者小调整,基本不会花费学习成本的。

大多开源软件,更新都是比较慢的,但是更新都是有学习成本的,这个是不可避免的。简单的说,就是活到老学到老吧。^_^

附带一张Drupal学习曲线图。


drupal学习曲线图

———————————分隔符————————————–

老葛 《实战Drupal》

很多时候,学习Drupal都是和实际项目联系到一起的,临时抱佛脚,

专门学习Drupal、研究Drupal的少之又少。

没有了实际项目,很多人也就离开Drupal了。


———————————分隔符————————————–

分头诗人 http://www.drupalla.com

每个人的学习方式不同。分享一下我的学习方式。

在决定学Drupal后,当时正好有一个种子展会的网站要做。也不知道哪里来的勇气,直接就用Drupal做了。网站要一个月完成,那个时候我还没 接触过Drupal,而且当时的学习氛围不好,问一个问题可能半天没人回答,中文文档资料有价值的也不多,我英语水平也很次,关键的是网站不但使用 Drupal,还涉及到flash builder建立的flash 预订展厅功能,flash builder也是一知半解,所以当时做出这个决定,我想我是疯了。

在如此巨大的压力下,也只能硬着头皮去做,打开金山词霸不停翻译,不停搜索,居然给我在一个月内完成了。虽然自我感觉比较粗糙。但客户也收货了。在 这个粗糙的案例完成后,Drupal一个月入门了。一个月有了第一个作品。接下来的过程也没那么的痛苦。借着金山词霸看了数本Drupal书籍,在这过程 中发现自己英文阅读能力居然提升了不少。哈。。。学会了Drupal、学会了flash builder、加强了英文、还有钱收,一举四得。。

总结了一个快速但高压的学习方式,就是小项目实践中学习。当然,实践过程还是有一些技巧的。下面是我的做法:

1,我是先debug 了一片Drupal。然后看了一片Drupal的数据库结构。对Drupal整个框架有一个比较大体的认识。

2,找一本相对完整的书看完。当时看的是一本英文书,边看边翻译,足足用了3天看完。。可以有视频的话更好。之前也有在空余时间看了一个系列的老视 频,但看视频更吃力,因为是英文的视频,也没字幕,无法金山词霸。不过如果有中文视频的,就很不错的资源,可以更通俗易懂,毕竟视频教学比较直接。从这个 步骤过程中,可以了解到Drupal的一些基本概念。

3,有上面两步的基础后,大概用4天时间,慢点的一周也可以搞定,接下来别犹豫,马上实践。不用再去常规的学习,没必要。在实践中会让你了解 theme,module,hook,views,form,field,rules,events,node,development,API等等各种 各样的更深入资料,而且实践中学到的,会更深刻,更容易记住。

最近在工作中小组到一个cookie跨域设置的问题,然后就一些知识点进步了梳理,然后到网上搜索这方面的资料。本来这些都是一些基础知识,但是网上很多资料参差不齐,有的错误的文章来被转了很多次,所以我自己通过测试来整理这些问题。

第一个:cookie的setDomain属性到底能不能设置成当前应用程序所在的域之外的域名。比如我当前应用的域名是:www.test1.com,那么我在当前的应用里设置cookie的Domain为".test2.com",会有什么效果?浏览器会不会接受服务器返回来的cookie?假如浏览器真的接受了服务端返回的cookie,那么浏览器下次真的访问www.test2.com时到底会不会把之前的cookie给带上?

现在我写了两个web程序,每个web程序都有一个servlet,同时修改host文件,第一个应用的域名是:www.test1.com,第二个域名是:www.test2.com。并且使用火狐狸和IE10来做测试,测试过程如下:

1)首先在www.test1.com的程序中设置cookie的domain为“.test2.com”,访问该应用,在这种情况下IE和火狐狸的浏览器都会接受cookie,而且其Domain很明确是.test2.com,这里就说明cookie是可以写到浏览器里的,而不是很多地方说的被忽略云云。但是如果再次访问的时候,无论是访问www.test1.com或者是www.test2.com都不会把这个cookie带过去。这就验证了cookiede setDomain这个方法是不能设置当前应用所在域之外的域名的,之前看到很多文章说的结论是在www.test1.com的应用中设置cookie的domain为www.test2.com,则访问www.test2.com时就能在test2.com的应用中取到该cookie,这完全是不负责任的扯淡,那种情形只适合共同根域名的情况。辩证想一想都不可能,否则我就能操纵百度或者阿里的网站来读取我们自己定义的cookie?

2)现在我们设置www.test1.com的域名为自己,那么如果我们在www.test1.com的网页中使用Iframe嵌入www.test2.com的应用,那么会是什么结果?

首先我们访问了www.test1.com,这个时候www.test1.com和www.test2.com的cookie都写到浏览器里了,无论是在IE还是在火狐狸里都是如此,那么再次访问www.test1.com的时候,IE和火狐狸这个时候不同的地方就显示出来了。这个时候IE只会把www.test1.com的cookie带上,而不会带www.test2.com的cookie的(也就是说在www.test2.com的应用里是拿不到cookie的),而且这个时候你再次专门访问www.test2.com也不会拿到之前明明已经写入到浏览器里www.test2.com域名下的cookie。而如果在火狐狸里,则www.test1.com的应用中会取到www.test1.com的cookie,而且无论是iframe内嵌或者直接访问www.test2.com的应用里都会拿到自己域名下的cookie。这种情况使用<img>和<script>标签获取cookie是一样的道理。这样看来IE10的安全级别更高。

3)如果我们非要www.test1.com中利用iframe内嵌www.test2.com的方式来将test2.com域名下的cookie带过去给www.test2.com服务应用,那该怎么办?

这个非常简单,设置www.test2.com的head,比如response.setHeader设置P3P。关于P3P协议网上资料一大堆,大家可以自己看看。这里要注意,我们在www.test1.com使用iframe嵌入www.test2.com的应用,则www.test1.com设置的cookie就是通常意义的第一方cookie,而www.test2.com的cookie就是常说的第三方cookie,我们要设置P3P是要在第3方的程序中设置,这个很多资料里也没有说明白。其实就是www.test2.com的服务端和浏览器协商,让浏览器允许其携带上cookie给服务端。一旦突破这点,再结合referer首部属性就能获取用户的浏览习惯和喜好,像经常购买书籍、电子产品等。比如:A网站嵌入了B网站的一个页面,并且B网站设置了P3P,那么当用户访问A网站的时候会顺便访问B网站,这个时候B网站就随机生成一个ID,将这个ID写入到cookie,并将这个id和referer信息存入自己的数据库。下次,无论是C网站或者其他网站内嵌了B,被用户访问了,也或者是用户又访问A,都会顺便访问B网站并且将referer和id存入数据库,如果用户用的是同一个浏览器并且从来不清理cookie,这样cookie中记录的id就不变,每次访问就会把B的cookie带上,B网站根据cookie中的id和多次存入数据库的referer就能知道你都登录了哪些网站。因为referer的链接说明了所有问题。这样就可以做到对这个人的跟踪和分析。就好比我把我的眼线放在100商店,你访问各个商店时,他们就把你的购买什么的情况告诉我,天长日久我就知道你喜欢买什么了,不知道这个例子是否准确。

暂时先写到这里吧,这个问题也是首次稍微深入探索下,后边根据进展再补充吧,如果有错误请读者一定指正不胜感激。总之,这种基础知识是设计框架的基石,必须要搞清楚。否则,寝食难安、芒刺在背。

[!--infotagslink--]

相关文章

  • Ecshop提示Only variables should be passed by reference in错误

    在安装好ecshop软件之后我们打开首页时提示Only variables should be passed by reference in错误了,碰到这个问题是什么原因呢?下面我们就一起来看看解决办法吧。...2016-11-25
  • php错误提示 open_basedir restriction in effect 解决

    今天在帮助一个朋友配置一台服务器时发现网站配置好了缓存目录读写不成功,在打开错误时发现提示 Warning: file_exists() [function.file-exists]: open_basedir restr...2016-11-25
  • 解决Antd Table表头加Icon和气泡提示的坑

    这篇文章主要介绍了解决Antd Table表头加Icon和气泡提示的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • mysql提示Changed limits: max_open_files: 2048 max_connections: 1910 table_cache: 64的解决

    在windows下安装Mysql系统日志出现max_open_files: 2048 max_connections: 510 table_cache: 764 类似错误是因为 max_connections 最大连接数和max_open_files、table_cache 不匹配。适当的降低max_connections 或调...2014-05-31
  • 详解pycharm的python包opencv(cv2)无代码提示问题的解决

    这篇文章主要介绍了详解pycharm的python包opencv(cv2)无代码提示问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-29
  • js滑动提示效果代码分享

    这篇文章主要为大家分享了js滑动提示效果代码,实现方法简单,感兴趣的小伙伴们可以参考一下...2016-03-12
  • JavaScript实现输入框(密码框)出现提示语

    有时候我们需要在登陆表单有一些提示语言,比如“请输入用户名”和“请输入密码”等语言,通过本文给大家介绍JavaScript实现输入框(密码框)出现提示语的相关知识,对js实现输入框提示相关知识感兴趣的朋友一起学习吧...2016-01-14
  • 原生JS实现登录框邮箱提示

    这篇文章主要为大家详细介绍了原生JS实现登录框邮箱提示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-18
  • Notice:undefined index ..错误提示解决方法

    这句是在php开发中会碰的一些问题,看这提示我们都知道是变量未定义,那么下面来解决Notice:undefined index方法, 一,这个因为是变量未定义我们只要找到相关的位置加...2016-11-25
  • photoshop提示暂存盘已满怎么办?ps提示暂存盘已满如何解决

    photoshop提示暂存盘已满怎么办呢?有一些设计在使用ps打开或处理图片时提示暂存盘已满了,那么此问题要如何解决呢?下面和一聚教程小编一起来看看吧。 第一步、我们...2016-09-14
  • jQuery文字提示与图片提示效果实现方法

    这篇文章主要介绍了jQuery文字提示与图片提示效果实现方法,涉及jQuery针对鼠标事件的响应与页面元素动态操作相关技巧,需要的朋友可以参考下...2016-07-06
  • Element Tooltip 文字提示的使用示例

    这篇文章主要介绍了Element Tooltip 文字提示的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-26
  • Gridview的链接和删除点击提示的问题探讨

    Gridview的链接和删除点击提示有利于提醒用户确认下操作是否正确,以免造成不必要的损失,感兴趣的朋友可以参考下,希望对你有所帮助...2021-09-22
  • nodejs利用readline提示输入内容实例代码

    这篇文章主要给大家介绍了关于nodejs利用readline提示输入内容的相关资料,Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流,需要的朋友可以参考下...2021-07-15
  • php错误提示:Call-time pass-by-reference has been deprecated

    今天在写引用时突然出现了Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, mo...2016-11-25
  • javascript仿百度输入框提示自动下拉补全

    这篇文章主要介绍了javascript仿百度输入框提示自动下拉补全的相关资料,需要的朋友可以参考下...2016-01-08
  • 分享十条实用的Swift小提示

    是时候使用易入手又全面的Swif语言为iOS和mac OS X做应用开发了,下面这篇文章主要给大家分享介绍了十条实用的Swift小提示的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧...2020-06-30
  • vue如何在用户要关闭当前网页时弹出提示的实现

    这篇文章主要介绍了vue如何在用户要关闭当前网页时弹出提示的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-01
  • .NET使用js制作百度搜索下拉提示效果(不是局部刷新)实现思路

    搞了个不是局部刷新的百度搜索框下拉提示效果大致思路:前台放一个input标签,然后当该标签内的值输入有变化的时候,调用后台代码查询 符合条件的数据绑定ListBox,感兴趣的朋友可以了解下...2021-09-22
  • VC6.0代码自动提示 VC6.0在win7环境下代码提示智能化

    作为程序猿的你,是否已经喜欢或习惯依赖IDE开发环境呢,有了IDE环境,即使你想不起方法全名,只要知道某个前缀,或哪怕在提示列表中,一一查询,也可以找到自己想找的方法或属性...2020-04-25