2018年01月的文档 14篇:     本月文档索引

感慨:机会
2018年08月14日 06:31

很多机会都是自己发现和创造的,抓住了机会就会受益终身。往往很多机会的时效很短,错过了就很难弥补,过了这个村就没有这个店。

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

干货分享2的后续:VPS发邮件
2018年08月13日 19:09

本文接《干货分享2:调试 - VPS发邮件显示“由root@localhost.localdomain代发”彻底解决》,当时调试了整整2天才完成。这两天又经过了很多的测试,取得了意外的进展。

用“干货分享2”建立的VPS邮件发送平台,没有经过SMTP验证,发件人、代发人名称一致,在国内的邮箱我测试了QQ邮箱、网易、新浪邮箱,都能收到,且只显示发件人,没有显示代发人。Gmail则直接进入垃圾箱,但也只显示发件人,不显示代发人。可能极少人用这个方法,因为这个方法是我测试中无意发现的,所以国内邮箱的开发者还没有遇到这种情形,是属于“漏洞”。但我的VPS发邮件,是用于发送注册的验证码,这是重要邮件。

(其实原计划是想通过验证SMTP来发邮件,但是所有的方法都无效。)

之后,同一VPS,每隔一段时间发送,都能100%发送。然后我测试每隔1分钟,甚至时间更短,也能发送。这说明,我的VPS可能没有对邮件的发送频率做出限制。

前两天的测试中,总是同一VPS、同一收件人,只能收到第一封信,后面再次发间隔几小时也收不到,当时误以为是VPS被限制了。其实,当时的收件人是用的腾讯企业邮箱,腾讯企业邮箱会这样拒收。收件人换成了国内的免费邮箱,能顺利发送,正好解决了一个重大的问题。

此方法发送邮件,网易、新浪免费邮箱接收最快,在5秒内,QQ免费邮箱约15秒左右才收到。

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

安卓2.3.5能否用微信?
2018年08月13日 15:12

有网友问安卓2.3.5有哪个版本的微信能用?在一年多以前,安卓2.3.X还能运行微信5.X。但如今,安卓2.3.X已经完全不可能运行微信了。并不是硬件不支持,而是微信抛弃了这些用户。在五六年前,安卓2.3是当时的主流、最高版本系统。如今,微信的安装包越做越大。

为什么安卓2.3.X不能运行微信了?即使安装了微信5.X,会无法登录新用户,除非这台手机以前曾经登录过某个号码,就可以正常登录。例如现在的微信6.2、微信6.3.13,登录新用户时都会提示版本过低,无法登录,这是一年半以前的微信最高版本,解决的办法是先给手机安装微信6.5.3,登录之后,再重新安装微信6.2或6.3.13。在2013年的主流手机里,在安卓4.1.2系统下,现在运行微信6.2比微信6.3.13快大约30%,它们的区别是微信6.2不支持发朋友圈时分组,朋友圈分组是从微信6.3.13开始的。
手机刷机后,微信的用户信息会彻底丢失,需要再用微信6.5.3重新登录一次。

能登录新用户的微信最低版本是6.5.3,这个版本是2016年12月推出的。现在微信限制老版本的很多功能,微信版本低于6.5.3无法登录新用户。

微信6.5.3不能在安卓2.3.X安装,会提示解析包错误,因此安卓2.3.X已经彻底无法使用微信了。当然,现在大多数的主流APP,已经无法在安卓2.3.X上安装,会提示解析包错误。

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

欢迎与本博客交换友情链接
2018年08月13日 12:25

友情链接规则:
1. 仅限个人博客,原创文章,技术类、日记类优先。
2. 请先做好本站链接,样式:每天启航
3. 博客开通满半年,文章满50篇。

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

干货分享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)

阿福卡能否作为主号?
2018年08月12日 08:58

有网友这样提问。

如果号码好一点,当主卡完全没问题。我就用133阿福卡+139移动为主卡。阿福卡2代无法订阅500M流量。阿福卡2代不适合上网,如果不怕麻烦,每天APP签到能获得10M流量。
我习惯带2个手机。上网的话,可以再办张上网的卡,比如阿福简单卡15元月租(2G),或者19元6G的那种。

如果是像1333333XXXX(秦皇岛),1331000XX8X(上海),1330333XXXX(张家口),133+区号,1336666XXXX(北京)这样的号,无论是什么套餐,必须做主号。

河北阿福卡2代之所以没有开发出相应的优惠流量包,可能是电信疏忽,或者不想管这个套餐。到营业厅要求加流量,可能答复需要变更到19元,39元,59元的套餐。

阿福卡对我个人来说,是珍宝。因为能本地本网免费,另外通话费0.1元已经优惠到底(优惠到快要爆表),以前我的电信卡套餐是市话0.25。和飞信+阿福卡也能每月免费打100分钟,但是很少用。

对于运营商的现状,会鼓励用户用39元以上的流量套餐,所以双卡也是不得已的选择。像我平时用WIFI较多,上网偶尔用一下,北京ifree每月的30M免费流量(一年不清零)还足够用。
阿福卡如果每天签到,每年有3.6G流量,数量也是相当可观的,可惜流量只是当月有效。

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

干货分享3:防止重复提交的新方案
2018年08月11日 08:45

新项目的用户注册,需要严格防止重复提交,因为重复提交会导致相应的数据错误。昨天突然出现灵感,提交后,让程序判断需要写入的数据库文件的最后修改时间,如果距离现在的时间在3-5秒内,则不写入数据,这是运行在服务器端的程序部分。

服务器端以前我的设计方案是,注册时如果重复提交,会提示“已被注册”,这带来的问题,会让注册者误以为被别人注册过。这个新方案,解决了这个问题。

客户端,以前我的方案是自己想的办法:submit的按钮建立一组<div></div>标签1,然后编写一个和submit样子完全一样的button按钮,button按钮也建立一组<div></div>标签2,标签2用<div style=display:none>来隐藏这个button按钮。当提交后,让submit的按钮的div标签1的display为none(即隐藏),同时让标签2的button去掉隐藏。

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

新增“程序设计”的分类
2018年08月10日 08:20

程序都是根据方案而编写。很多时候,为了解决一个问题,需要想很多的办法,这就是程序设计。在不同的语言,不同的平台,都可以用相同的方案。比如我在开发中,同样的功能,有时候在PHP里实现,有时在Shell编程里实现,有时在JavaScript里实现。

有时不具体到哪个语言,或者只提出方案、办法的时候,这些博客收录在这个新的目录“程序设计”里。

地址是 http://blog.emxel.com/category/program/

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

干货分享2:调试 - VPS发邮件显示“由root@localhost.localdomain代发”彻底解决
2018年08月07日 09:35

因为新项目中需要向用户自动发送验证电子邮件,所以很需要服务器发邮件的功能。

调试了整整2天,搜索了网上的大量文章,大部分都没有效果。今天在想办法的无意当中,解决了这个问题,所以特此作为干货分享。这2天在调试中,无论如何修改hostname,@后面始终是localhost.localdomain。昨天发现国外的客服邮件的发件人,会显示“由abc@serverabc.com代发”,感觉非常酷。(本次的调试结果,无意中连“由***代发”都没有了,纯属无心插柳柳成荫。)

测试环境,是干净的CentOS 5新机,已安装PHP,新机的配置方法如这一篇。本次测试用的是OVZ,因为默认直接支持sendmail,无需任何配置。

测试中,我发现代发人有时是root@localhost.localdomain,有时是apache@localhost.localdomain。后来发现,这是因为root的用户名,是我用shell命令直接发邮件,会显示“由root@localhost.localdomain代发”。而我用php的exec()函数调用shell命令,来运行VPS上的sendmail,会显示“由apache@localhost.localdomain代发”。

于是想到通过建立用户,然后更改Apache所在的用户,就可以顺利更换@前的用户名。步骤为:

步骤1. shell命令:

adduser yourabc && passwd yourabc

注:这里的yourabc,是您要新建的用户,它就是将要在@前显示的名称,例如我的用户名是webshu,输入这样的shell命令:adduser webshu && passwd webshu

然后会提示输入此用户的密码。

步骤2. 更改Apache的用户组,下载/etc/httpd/conf/httpd.conf文件,在本地修改后上传。此文件是Apache的配置文件,用户文本工具打开,找到这2行:

User apache
Group apache

把apache改成为您的名字,例如:
User yourabc
Group yourabc

步骤3. 查看主机名、添加在127.0.0.1这一行,这一步非常重要,如果没有这一步,发邮件会很慢。

shell命令:

hostname

下载/etc/hosts文件,用文本工具编辑,然后上传。

大约在第3行,会看到自己的主机IP,IP后面跟着一个名字,实际这个就是主机名,和刚才的hostname命令后显示的名称是一样的。找到第1行,也就是127.0.0.1这一行,原有的localhost.localdomain localhost这些保留,在最后的localhost加一个空格,再加上现在的主机名。例如我的主机默认的主机名是server81,添加后的效果如:

127.0.0.1 localhost.localdomain localhost server81
# Auto-generated hostname. Please do not remove this comment.
104.223.255.255 server81

步骤4:更改主机名,这一步非常重要,会显示@后面的域名。

shell命令:

hostname yourdm.com

此步骤在重启Apache后会立即生效,但是重启系统后会失效。永久更改主机的方法请在百度上搜索,然后调试,我经过测试多次,更改/etc/sysconfig/network文件,暂无法实现永久更改。

步骤5. 重启Apache,shell命令:

service httpd restart

测试:

前面已经安装PHP。默认的PHP路径为/var/www/html,在/var/www/html目录下建立一个1.php。1.php写入这样的语句:

<?exec('echo -e "Subject: biao ti\nTo: abc@abc.com\nFrom: yourabc@yourdm.com\nMessage text" | sendmail -t');?>OK!

附:上述这个exec()函数里的sendmail命令直接发邮件,单是这一项,前两天查找资料、调试所花的时间不低于8小时,最后才成功,这几乎是唯一正确的写法。因为别的写法,无法发送成功,或者会让有的邮箱拒收、或者进入垃圾邮箱。
而且,此写法是直接调用CentOS原生的sendmail,无需额外安装mailx。

步骤6. 此步骤可省略。如果不能发送,可以尝试配置/etc/mail.rc这个文件,添加SMTP信息,具体可以在网上搜索一下。我发现里面的发件人名称、密码是可以任意填写的,但是SMTP地址必须是个存在的域名。

10秒钟后查看自己的abc@abc.com邮箱,此时很惊叹,因为现在连“由***代发”都没有了,发件人直接显示yourabc@yourdm.com。虽然CentOS系统里复杂的原理暂时无法得知,但是已经实现了非常酷的功能。请注意,步骤2、步骤4,实际上是在分别修改yourabc、yourdm.com。步骤5编写的PHP文件,From后面的发件人地址,必须与此相同,就不会显示“由***代发”,而且对方能够正常查收,且不会进入垃圾邮件箱。一旦不同,可能会拒收,或者直接进入垃圾邮件箱,有时也能正常查收。至此,已经解决了一个很大的问题。

但是,新的问题又出现了。在隔几分钟后,尝试更改这个1.php文件,发送给别的地址,或者同个地址,发现同个地址需要间隔很长时间才能再次发送;或者需要间隔很长时间才能发给别的地址。很可能是这个VPS空间做了限制,限制发送邮件的数量,这个解决不了,只能更换配置更高的VPS了,毕竟我的测试机是一年几美元的空间。

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

干货分享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)

| (共2页)

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