当前位置: 编程技术>php
本页文章导读:
▪php多键值cookie操作的例子 在php中,cookie默认不能保存在数组中。
报错如下:
Warning: setcookie() expects parameter 2 to be string, array given in
但是PHP可以把同名且后面以[]结尾的cookie解析为数组。
分享二个实现cookie存数组的方.........
▪php session操作类(附实例) 一个不错的php session类,将session保存在数据库中,供大家参考。
1,php session类
<?php
/*
* session类
* by www.
*/
class Session {
//构造函数
public function __construct(){
session_set_save_.........
▪php 加密、解密类与调用实例 本节分享的这个加密与解密类,支持二种加密方式,base_64encode与enc加密,并附有解密函数。
代码:
<?php
/**
* 功能:php加密与解密类
* 可用于加密、解密 cookie值或Url参数
* 编辑:www.
*.........
[1]php多键值cookie操作的例子
来源: 互联网 发布时间: 2013-12-24
在php中,cookie默认不能保存在数组中。
报错如下:
Warning: setcookie() expects parameter 2 to be string, array given in
但是PHP可以把同名且后面以[]结尾的cookie解析为数组。
分享二个实现cookie存数组的方法。
方法一:先用serialize序列化数组,再存入COOKIE,读出来时用unserialize得到原来的数组。
<?php //存入 $arr = array(1,2,3); $arr_str = serialize($arr); setcookie("a",$arr_str); //取出 $arr_str = $_COOKIE['a']; $arr = unserialize($arr_str);
方法二:设定多键值cookie,注意必须给键值
<?php $arr = array(1,2,3); setcookie("a[0]", $arr[0]); setcookie("a[1]", $arr[1]); setcookie("a[2]", $arr[2]);
结果:数组所有元素都存到了。
数组长度 :3
Array ( [0] => 1 [1] => 2 [2] => 3 )
错误的写法:
<?php $arr = array(1,2,3); setcookie("a[]", $arr[0]); setcookie("a[]", $arr[1]); setcookie("a[]", $arr[2]);
结果:只存了最后一个元素
数组长度 :1
Array ( [0] => 3 )
[2]php session操作类(附实例)
来源: 互联网 发布时间: 2013-12-24
一个不错的php session类,将session保存在数据库中,供大家参考。
1,php session类
<?php /* * session类 * by www. */ class Session { //构造函数 public function __construct(){ session_set_save_handler(array(&$this, 'open'),array(&$this, 'close'),array(&$this, 'read'),array(&$this, 'write'), array(&$this, 'destroy'),array(&$this, 'clean')); session_start(); } //打开数据库连接 public function open() { $this->mysql = mysql_connect('localhost', 'root', 'mysql'); $bSeldb = mysql_select_db('sudhir', $this->mysql); if (!$bSeldb) { die ('Can\'t use Database : ' . mysql_error()); } } //写session public function write($id, $data) { $access = time(); $id = mysql_real_escape_string($id); $access = mysql_real_escape_string($access); $data = mysql_real_escape_string($data); $sql = "REPLACE INTO sessions VALUES ('$id', '$access', '$data')"; return mysql_query($sql, $this->mysql) or die(mysql_error()); } //读session public function read($id) { $id = mysql_real_escape_string($id); $sql = "SELECT data FROM sessions WHERE id = '$id'"; if ($result = mysql_query($sql, $this->mysql)) { if (mysql_num_rows($result)) { $record = mysql_fetch_assoc($result); return $record['data']; } } return ''; } //销毁session public function destroy($id) { $id = mysql_real_escape_string($id); $sql = "DELETE FROM sessions WHERE id = '$id'"; return mysql_query($sql, $this->mysql); } //清除session public function clean($max) { $old = time() - $max; $old = mysql_real_escape_string($old); $sql = "DELETE FROM sessions WHERE access < '$old'"; return mysql_query($sql, $this->mysql); } //关闭数据库连接 public function close() { mysql_close($this->mysql); } } ?>
2,调用示例:
<?php //调用session类 require_once "session.php"; $oSession = new Session(); print_r($_SESSION); // First $_SESSION['hi'] = ""; // Comment this Once sessoin is set $_SESSION['test'] = "www."; // Comment this Once sessoin is set ?>
[3]php 加密、解密类与调用实例
来源: 互联网 发布时间: 2013-12-24
本节分享的这个加密与解密类,支持二种加密方式,base_64encode与enc加密,并附有解密函数。
代码:
<?php /** * 功能:php加密与解密类 * 可用于加密、解密 cookie值或Url参数 * 编辑:www. */ class Encryption { /** * 设置一个难以猜测的加密种子 * * @access public */ var $skey = "-_-donthackit-_-"; /** * 安全加密URL或cookie值 * * @access public */ public function safe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data; } /** * 解密URL或Cookie值 * * @access public */ public function safe_b64decode($string) { $data = str_replace(array('-','_'),array('+','/'),$string); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr('====', $mod4); } return base64_decode($data); } /** * 以下加密方法需要mcrypt库 * * @access public */ public function enc($value){ if(!$value){return false;} $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv); return trim($this->safe_b64encode($crypttext)); } /** * 以下解密方法需要mcrypt库 * * @access public */ public function dec($value){ if(!$value){return false;} $crypttext = $this->safe_b64decode($value); $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv); return trim($decrypttext); } } ?>
调用示例:
<?php /** * 加密与解密数据,包括URL或cookie值等 * 示例参考 */ require_once "Encryption.class.php"; $oEncryption = new Encryption; echo "加 密: ".$oEncryption->enc("sudhir"); echo "<br/>"; echo "解 密: ".$oEncryption->dec($oEncryption->enc("sudhir")); ?>
最新技术文章: