2015/1/26
MySQL没有检索出数据,得到的数据类型是什么?
是Null。
然后我将这个值赋给页面中的某个隐藏表单字段,再在JS文件中得到这个隐藏表单的值,那么这个值就是一个空字符串。
2015/3/13
我使用$.post()方法,请求某个跨域数据,结果报错。原因是因为JS不能跨域请求。可以使用代理,也就是说,让JS把请求参数发送给PHP端,然后PHP端发送请求。 HTML控制页面刷新: 设定每10s自动刷新,
<meta http-equiv="refresh" CONTENT="10" />
设定5s后自动跳转,
<meta http-equiv="refresh" CONTENT="5;URL=myUrl" />
其余可参见
2015/3/16
获取IP,THINKPHP框架将获得的IP使用函数ip2long
函数转换成了整数形式,但有时,得到的返回值为负数,所以应该再使用sprintf("%u",ip2long($ipV4_dotted_address))
转换成正整数。
可以对这样的正整数使用ping命令,可以使用浏览器访问这个地址。
我想起上学时,学的C语言中的printf函数,我一直不理解最后那个f是干什么使的,现在我理解了,f的意思就是 format(或者 formatted),同时,函数spriintf的第一个字母代表string,因为sprintf函数返回的是格式化后的字符串,而prinrf返回的是格式化后的格式化后的字符串的长度。
WINDOWS自带步骤记录器:
windows键+R,输入psr.exe。在WINDOWS附件中可以找到。
2015/3/17
存储11位手机号需要什么类型的字段?
回答这个问题,首先,INT(M)表示什么,官方文档:
M indicates the maximum display width for integer types.
然后,参考这个贴子
也就是说,对于INT(M)来说,M没什么用。
INT类型是4字节,无符号的话,最大存储值为4294967295(2的8次方减1)。
而有的手机号,比如18500521857大于4294967295,这就不行了(我的这个字段没有写UNSIGNED,所以存进去成了2147483647)。
那么,使用char(11)来存储。
LINUX中,.gz的文件扩展名是必须写的,要不然解压缩时,报错。
同理,也不能gunzip XX。
gzip a mv a.gz a gzip a gunzip a.gz mv a a.gz gunzip a.gz
这一段命令是可以的。
2015/3/25
PHP数组相等:
==运算符,对于关联数组,元素(键值对)数目相同且相同的键对应相同的值时,返回true,元素的先后顺序可以不同,元素的值的类型也可以不同。对===运算符,元素的值的类型相同且元素(键值对)顺序才返回true。
2015/3/31
今天重新配置一遍WAMP环境。要配置vhost。把过程记录一下:
首先,在Apache的配置文件httpd中,将
LoadModule vhost_alias_module modules/mod_vhost_alias.so
和
Include conf/extra/httpd-vhosts.conf
的注释去掉。
第二,在ext/httpd-vhosts中按照例子写入。注意两点:
-
DocumentRoot "D:\WAMP\wamp\www\web"
给出的是目录,不是入口文件,且最后一级目录下不能加\。 -
ServerName www.myizhangcai.com
必须写www.要不然访问报错。
2015/4/1
今天试验了 一下GitHub,网上看了很多文档,说的很不清晰,后来找到这个。然后妈妈再也不用因为我自学GitHub费劲而操心了。
2015/4/3
<meta http-equiv="refresh" content="0.1;url=./PagesV4.0/req_front_page_pay_1.php">
可以在0.1秒后引入文件。
关于php.ini。在WAMP环境下,有两个php.ini。一个在Apache文件夹下,一个在PHP文件夹下。管事儿的是Apache下的。
2015/4/13
引入JS脚本:
<script type="text/javascript" src="__URL__" />
<script type="text/javascript" src="__URL__" />
结果发现第一个能引入,第二个引不进来,用浏览器产看源代码,发现,第二个的src并非是一个连接。思索良久。
后来发现,是因为<script>标签不是自闭合标签,必须写成<script></script>
2015/4/15
遇到这么一个问题,建表字段如何写实现MySQL数据库添加一个字段默认值是当前时间戳?
2015/4/20
一组input,name="product_id[]"。在JS端,选择这些DOM元素时,这样写:
$('[name="product_id\[\]"]');
然而这个表单传递到了PHP端,打印出来的$_POST为:
'product_id' =>
array
(
0 => '7',
1 => '8' ,
2 => '9'
)
那么我估计,将name属性均为product_id[]的input表单字段的值,组成数组,给出数字索引,这个工作是由PHP自动完成的。
然后再次实验,把这组input的name属性均赋值为product_id,最后PHP端打印$_POST,得到 'product_id' => 9,也就是说,后面的值覆盖了前面的值。
2015/4/20
这样的HTML代码:
<a href="javascript:#nogo">点击</a>
结果发现点击完了,报错,
点击进去,只有"#nogo"的提示。
修改成这样,
<a href="javascript:void(0)">点击</a>
,
或者
<a href="#nogo">点击</a>
即可。
这个#nogo还是当年上学的时候老师教的。
WINDOWS 命令行切换至D盘
cd D:/
或者cd D:
都不行。
直接输入D:
就行,但是D:/
不行。
2015/4/23
如何让sublime Text 2支持GBK编码?
File->Reopen with Encoding列表里面没有GBK。
网上找到的过程,实现后,将其列出:
-
Ctrl + ~
打开控制台 - 将这里得到的命令行粘贴进控制台,回车
- 成功后重启sublime Text
- 此时,Preferences菜单应该有了Package Control菜单项,说明Package Control插件安装成功
- 点击上述菜单项,在得到的输入框中输入Install Package,或者,在
Ctrl + Shift + p
得到的输入框中输入Install Package,待repositories下载完成后,在得到的列表中搜索“CovertToUTF8”,点击安装。成功后出现说明文档
至此,sublime Text即可支持GBK编码了。
但是这个支持方式令我很费解,在File->Reopen with Encoding列表中依然没有GBK这个菜单项。打开一个GBK编码的文件,编辑器自动切换成GBK编码显示文件内容(都能看见这个切换过程,文件刚打开瞬间,是乱码的,然后下一瞬间,就正确显示了),编辑后修改的内容也是以GBK编码保存。那编辑器怎么知道当前文件是GBK编码?还有,此时,即使你在File->Reopen with Encoding列表中选择UTF-8也没用,文件依然是以GBK编码显示和保存的。
2015/5/11
先写一下前两天的总结:
首先是分页问题,使用普通的当前页数和LIMIT子句会产生BUG,比如数据是按照插入时间倒叙排列,当前是第一页,我又插入一条数据,然后请求第二页,这是,第一页最后一条数据又会最为第二页第一条数据被服务器返回。解决办法是再增加一个参数,是一个标识符,标志当前页第一条或者最后一条数据,然后请求这条数据之前的多少条或者之后的多少条。
然后是写注册页面时的思路总结。注意前端JS格式验证和后端服务器数据验证分开。点击注册时,发生两个Ajax验证,但因为是异步,Ajax还没有返回数据,代码执行流程就过去了,不行,于是我曾设计使用$.ajax同步,发现还是不行,最后只能在一个验证成功的回调函数中,再写第二个Ajax验证,然后在这个Ajax的成功回调中,提交表单。具体代码见本地文件夹(以后放到GitHub上)。
最后是JS提示并跳转的问题,为避免乱码,我先是使用了
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
标签,但有时候还是会出现乱码,后来,使用
header("Content-type: text/html; charset=utf-8");
解决问题。
2015/6/4
JS中为元素绑定事件处理程序有三种方法:
- HTML级;
- DOM0级;
- DOM2级。
2015/8/25
VMware Fusionan安装虚拟机的问题
在Mac下安装CentOS操作系统。