当前位置:  编程技术>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")); 
?> 

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3