在centOS里面输入pwd即可显示当前路径-_-#
Written by 小锋 on 08-12-13 12:59 AM
在centOS里面输入pwd即可显示当前路径-_-#
Written by 小锋 on 08-12-13 12:36 AM
一般数字索引用section,常用来循环显示所取得的数据库多维结果数组,关联索引用foreach。
如果只是一维数组,直接{$数组.下标}就可取值,没必要循环取。
$uu[ 'kaixin ']= "我的最大三定律肤色地方 ";
$uu[ 'io ']= "111色地方 ";
$uu[ 'i2o ']= "111111111色地方 ";
$smarty-> assign( "StieInfo ",$uu);
这种情况用foreach
tpl:
-------------
{foreach item=value key=key from=$StieInfo}
{$key} : {$value}
{/foreach}
Written by 小锋 on 08-12-12 9:36 PM
在linux里面操作 最基本的东西 而且经常用的东西 哈打包命令
» 阅读全文
Written by 小锋 on 08-12-12 2:59 PM
竟然发现字符串直接去对比日期会犯错误结果-_-@
- PHP里没有内置的日期比较函数,不过处理一下格式还是可以比较的,代码如下:
- $date2=”2007-1-20″;
- $date=”2006-1-1″;
- if(date(”Y-m-d”,strtotime($date))>date(”Y-m-d”,strtotime($date2))){
- echo “Y”;
- }
- else{
- echo “N”;
- }
Written by 小锋 on 08-12-12 10:23 AM
tar cvfz dow.tar.gz xx/* --exclude xx/admin --exclude xx/css --exclude xx/images --exclude xx/uploads
成功排除了xx目录下面的admin css images uploads
Written by 小锋 on 08-12-11 9:11 PM
mkdir- p
可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
比如
mkdir -p /data/web/jackfeng/abc/dfg
就会自动建立 jackfeng目录下面的abc下面的dfg
Written by 小锋 on 08-12-10 11:33 AM
chmod -R 777 ./
Written by 小锋 on 08-12-10 9:48 AM
页面只输出了 汉字没有header的话 在ie里面有可能会输出乱码。所以得要用header定义一下
- <?php
- header('Content-Type: text/html; charset=UTF-8');
- echo "编码测试";
- ?>
Written by 小锋 on 08-12-09 5:24 PM
MySQL分表优化试验 有兴趣的可以看看
» 阅读全文
Written by 小锋 on 08-12-08 8:46 PM
昨天我举了个用 PHPRPC 实现 Ajax 级联下拉菜单 的例子,那个例子中我们重点要演示的是用 PHPRPC 实现 Ajax 效果是多么的简单。今天我们这个例子主要演示用 PHPRPC 内置的安全加密机制来实现安全登录是多么简单。当然它同样可以用于密码设置、其它关键保密数据的传输等领域。
这个例子比昨天的例子还要简单,先来看服务器端:
- <?php
- function login($username, $password) {
- if (($username == "root") && ($password == "admin")) {
- $_SESSION['user'] = "root";
- return true;
- }
- $_SESSION['user'] = null;
- return false;
- }
- require_once("phprpc_server.php");
- new phprpc_server(array('login'));
- ?>
这段代码太简单了,我不需要多说什么大家也能够看明白。不过大家会发现,在 login 函数中我用了 $_SESSION 变量,但是并没有在什么位置上写 session_start(),原因在于建立加密连接时,已经自动调用了 session_start(),因此不需要再单独写 session_start() 了。为了验证它是否生效,我们在后面的另一个页面中(admin.php),将判断这里设置的 $_SESSION 变量,并根据它来报告登录成功或者没成功跳回到登录页面。
那再来看看客户端,客户端我们将 JavaScript 跟 HTML 分离了,先来看看 html 页面。
- <html>
- <head>
- <script type="text/javascript" src="phprpc_client.js"></script>
- <script type="text/javascript" src="login.js"></script>
- </head>
- <body>
- <div align="center">
- 帐号:<input type="text" id="username" />
- 密码:<input type="password" id="password" />
- <input type="button" value="登录" id="loginbtn" />
- </div>
- </body>
- </html>
这个页面很简单,只是设置好了表单输入框和按钮,所有的处理都是在 login.js 中完成的。不过需要注意的是这里的 phprpc_client.js 是 full 压缩版本,因为我们需要用到它的加密传输功能。我们来看看 login.js 是怎么写的。
- // 创建 phprpc 客户端对象 rpc
- phprpc_client.create('rpc');
- // 初始化带有加密连接的 rpc 服务,第二个参数表示是否创建加密连接
- rpc.use_service('rpc.php', true);
- // 登录函数
- function login() {
- // 如果加密连接已经初始化完毕,则验证用户名密码
- if (rpc.ready) {
- // 获取用户输入的用户名和密码
- var username = document.getElementById('username').value;
- var password = document.getElementById('password').value;
- // 设置远程过程调用为单向加密,
- // 即传递的参数是加密的,但返回结果不加密
- rpc.encrypt = 1;
- // 调用远程过程验证用户名密码是否正确,并设置回调函数。
- rpc.login(username, password, function (result) {
- // 如果返回结果正确,则转到登录后的页面
- if (result === true) {
- window.location.replace('admin.php');
- }
- // 否则提示用户名密码不正确
- else {
- alert('用户名密码不正确!');
- }
- });
- }
- // 如果连接尚未初始化完毕,则等待 100 毫秒后重试。
- else {
- window.setTimeout('login();', 100);
- }
- }
- window.onload = function () {
- document.getElementById('loginbtn').onclick = login;
- }
大家会发现除了在调用 use_service 时,设置了第二个参数为 true 外,还在调用服务器端的 login 函数前,设置了 rpc.encrypt 的值为 1,这里 1 表示单向加密传输,单向加密传输是指调用的参数会以加密的方式传给服务器,但是返回的结果不加密(如果参数是引用参数的话,参数返回时也是加密的)。如果 rpc.encrypt 的值为 0,则表示不加密;如果是 2,则表示双向加密。
这里因为只有用户名和密码是敏感数据,需要保证它在传递给服务器时不被截获(即使截获也是加密的内容,无法破解),但返回的结果成功还是不成功并不是什么需要保密的数据,所以可以不加密。因此这里选择了单向加密传输。
大家也不必担心密钥是否会被截获,因为密钥是通过密钥交换算法,在服务器端和客户端(浏览器端)随机同步生成的,但没有经过网络传输,在网络上传输的是生成同步密钥的相关信息,但是只获取到这些信息是不足以算出密钥的,因此可以保证密钥的安全性。而加密算法本身也是一个强加密算法,密钥长度是 128 位,在没有密钥的情况下采用穷举法也是无法破解的。
大家会发现登录成功后,我们转向了 admin.php 页面,下面是这个页面的一个简单的例子:
- <?php
- session_start();
- if ($_SESSION['user'] == 'root') {
- echo "登录成功!";
- }
- else {
- header("Location: index.html");
- }
- ?>
这里需要自己 sestion_start() 一下了,之后就可以验证 $_SESSION[’user’] 是否设置了。
通过 PHPRPC,你不再需要为 Ajax 程序中数据的安全性而头痛,也不必为回话支持而苦恼,这一切 PHPRPC 都已经帮你自动完成了,你只需要关注具体的事务就可以了。用 PHPRPC 来做 Ajax 安全编程,就是这么简单!