分类文档:PHP 3篇

干货分享4:防止下载/提交数据不完全
2018年08月13日 09:16

简述:有了这一功能,用户提交留言时,再也不用按Ctrl+A、Ctrl+C来防止发送失败而丢失。

在过去开发的项目里,有些部分用户需要提交、或修改数据,偶尔有时候会因为服务器响应慢而导致文字下载不完全、提交数据不完全或丢失。在新项目里,我想到了一个新办法:

1. 防止文字下载不完全的方案:
用户需要编辑文章时,在<textarea></textarea>标签1中下载的服务器的文字部分,用PHP的strlen函数,获取该文字的长度值。该页面,建立一个AJAX,并建立另外一个<form>,内含<textarea></textarea>标签2,用户打开页面,该AJAX会让网页自动提交标签2的文字内容,由服务器来判断标签1、标签2的strlen()是否一致,如果一致则下载完全。

之所以这样做,而不在客户端用JavaScript的length,是因为全角字符,JavaScript会识别为长度1;PHP会识别为长度2(ANSI编码),或长度3(UTF-8编码)。

2. 防止提交数据不完全的方案:
在<form>里,建立一个隐藏的<input>,用来获取<textarea></textarea>的最后几个字符,同时,在<textarea>标签里用onkeyup=……来自动改变这个<input>的值。提交后,在服务器端进行对比,如果这个<input>与<textarea>提交的数据的最后一段字符相同,则说明提交成功。

3. 防止提交后找不到服务器的方案:
要提交时,在客户端的JavaScript写入Cookies数据;提交成功后,在服务器端清除这个Cookies。

虽然这3个步骤比原先复杂了好多,但是对于一个重要的项目,会有很好的用户体验。

固定链接 | 发表评论(0) | Trackback(0)

干货分享1,调试:新机安装PHP+NoSQL
2018年08月06日 08:41

Linux的VPS,OVZ自带Apache。系统越老,往往效率越高,所以我选用版本最老的CentOS 5。因为官方已经抛弃CentOS 5,安装软件时总会提示Eg. Invalid release.txt,所以每次安装软件前必须更换CentOS-Base.repo文件,现在还能正常使用,它位于/etc/yum.repos.d/CentOS-Base.repo。服务器上的这个默认文件已经彻底作废,可以从网上搜索一个可用的文件替换上。

首先,无需运行软件更新(即yum update)。

1. OVZ的CentOS 5,在重新系统后或新机这样安装Apache+PHP+NoSQL:

yum -y install php && service httpd restart

只需这一步即可,默认直接支持Rewrite。

2. KVM的CentOS 5,在重新系统后或新机这样安装Apache+PHP+NoSQL:

yum -y install httpd && yum -y install php && service httpd restart

只需这一步即可,默认直接支持Rewrite。

3. Ubuntu系统暂时不多调试,因为默认没有Apache、不支持Rewrite。这里给出我已经多次的调试记录:

以Ubuntu 12为例:

apt-get -y update && apt-get -y install apache2 && apt-get -y install php5

Ubuntu系统的Rewrite配置麻烦一点,可以在网上搜索到。

固定链接 | 发表评论(1) | Trackback(1)

PHP与JavaScript的包含的一点区别与相同
2017年08月22日 18:55

PHP的包含使用include()函数,JavaScript的包含使用<script src=***.js></script>或<script src=***.php></script>等形式。

在设置网页过期时间方面,PHP主程序中如果有多个被包含的文件,只要在一个文件中设定过期时间即可;而JavaScript的包含,则所有的被包含的文件,都需要设定过期时间,当然,这些被包含的.js文件中,常更新的文件可以不用设定过期时间或者设定为时间较短,较常更新的文件的过期时间可以设定为时间较短。因为,PHP与JavaScript的包含文件的这个区别,JavaScript程序可以写在一个.js文件中,扩展名改为.php,将这个.php的JS文件的过期时间设置得长一些,可加快网站的速度,节省流量。

PHP的include()函数,如果include文件里面还有include()函数,无论被包含了多少层,其变量都是处于相同的“层级”,可以直接调用。JavaScript也是这样,刚在IE和Firefox下做了测试,均可正常调用。前些天一段JavaScript程序因为这个问题出错,现已修正。

固定链接 | 发表评论(0) | Trackback(0)

Copyright © 2017-2018 blog.emxel.com 版权所有 Powered by Arsue