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}
Filed under: PHP
0 Comments
2668 Views
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”;
- }
Filed under: PHP
0 Comments
2365 Views
Written by 小锋 on 08-12-10 9:48 AM
页面只输出了 汉字没有header的话 在ie里面有可能会输出乱码。所以得要用header定义一下
- <?php
- header('Content-Type: text/html; charset=UTF-8');
- echo "编码测试";
- ?>
Filed under: PHP
2 Comments
7294 Views
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_client.create('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('用户名密码不正确!');
- }
- });
- }
-
- 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 安全编程,就是这么简单!
Filed under: PHP
0 Comments
2674 Views
Written by 小锋 on 08-11-28 9:38 AM
找了好几个检测email地址的函数 只有下面这个接近完美!
- function checkEmail($str)
- {
- if (eregi("^[0-9a-z][_.0-9a-z-]{0,31}@([0-9a-z][0-9a-z-]{0,30}[0-9a-z]\.){1,4}[a-z]{2,4}$", $str))
- return true;
- else
- return false;
- }
Filed under: PHP
0 Comments
2177 Views
Written by 小锋 on 08-11-24 10:37 AM
先用phpinfo();找出你的php.ini配置文件所在 然后打开编辑
搜索extension=php_mcrypt.dll把前面的;给去掉
修改完毕 就重启apache或者iis
Filed under: PHP
0 Comments
2168 Views
Written by 小锋 on 08-11-21 6:51 PM
Filed under: PHP
2 Comments
2539 Views
Written by 小锋 on 08-11-20 5:39 PM
php删除目录 复制目录 判断目录是否为空~~~~~~~~
» 阅读全文
Filed under: PHP
1 Comments
2982 Views
Written by 小锋 on 08-11-17 5:57 PM
php中判断一个字符串包含另一个字符串的方法
- $name = "001x.gif";
- $pan = "x";
- $con = explode($pan,$name);
- if (count($con)>1):
- echo $name."中包含".$pan;
- else:
- echo $name."中没有包含".$pan;
- endif;
Filed under: PHP
3 Comments
2642 Views
Written by 小锋 on 08-11-14 2:39 PM
- date("Y.m",strtotime("-31 days"))
Filed under: PHP
44 Comments
5487 Views