-
cookie的删除与过期时间 通过前面的章节,我们了解了设置cookie的函数,但是我们却发现php中没有删除Cookie的函数,在PHP中删除cookie也是采用setcookie函数来实现。 setcookie('test', '', time()-1); 可以看到将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的。之所以这么设计是因为cookie是通过HTTP的标头来传递的,客户端根据服务端返回的Set-Cookie段来进行cookie的设置,如果删除cookie需要使用新的Del-Cookie来实现,则HTTP头就会变得复杂,实际上仅通过Set-Cookie就可以简单明了的实现Cookie的设置、更新与删除。 了解原理以后,我们也可以直接通过header来删除cookie。 header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1)); 这里用到了gmdate,用来生成格林威治标准时间,以便排除时差的影响。 任务 删除test的cookie值。 index.php <?php setcookie('test', time()); //在这里试着删除test的cookie值 var_dump($_COOKIE);查看全部
-
设置cookie PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个: name( Cookie名)可以通过$_COOKIE['name'] 进行访问 value(Cookie的值) expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效 path(有效路径)如果路径设置为'/',则整个网站都有效 domain(有效域)默认整个域名都有效,如果设置了'www.imooc.com',则只在www子域中有效 $value = 'test'; setcookie("TestCookie", $value); setcookie("TestCookie", $value, time()+3600); //有效期一小时 setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //设置路径与域 PHP中还有一个设置Cookie的函数setrawcookie,setrawcookie跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。 setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365); 因为Cookie是通过HTTP标头进行设置的,所以也可以直接使用header方法进行设置。 header("Set-Cookie:cookie_name=value"); 任务 使用setcookie设置一个名为test,值为$value的Cookie。如果在这执行没有显示效果,可以试试自己配置PHP环境,写两个页面,第一个页面写入cookie,第二个页面输出cookie。 index.php <?php $value = time(); //在这里设置一个名为test的Cookie if (isset($_COOKIE['test'])) { echo 'success'; } 本节编程练习不计算学习进度,请电脑登录imooc.com操作查看全部
-
方法就是在类中的function,很多时候我们分不清方法与函数有什么差别,在面向过程的程序设计中function叫做函数,在面向对象中function则被称之为方法。
同属性一样,类的方法也具有public,protected 以及 private 的访问控制。
访问控制的关键字代表的意义为:
public:公开的
protected:受保护的
private:私有的我们可以这样定义方法:
class Car { public function getName() { return '汽车'; } } $car = new Car(); echo $car->getName();
使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。
class Car { public static function getName() { return '汽车'; } } echo Car::getName(); //结果为“汽车”
查看全部 -
在类中定义的变量称之为属性,通常属性跟数据库中的字段有一定的关联,因此也可以称作“字段”。属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成。属性的变量可以设置初始化的默认值,默认值必须是常量。
访问控制的关键字代表的意义为:
public:公开的
protected:受保护的
private:私有的默认都为public,外部可以访问。一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。
受保护的属性与私有属性不允许外部调用,在类的成员方法内部是可以调用的。
查看全部 -
php 属性的重载
通过__set __get __isset __unset 分别实现对不存在的属性的赋值、读取、判断属性是否设置、销毁属性;
__call 实现方法的重载,
例:
class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } } } $car = new Car(); $car->speedUp(); //调用不存在的方法会使用重载 echo $car->speed;
查看全部 -
__construct() 构造函数 在对象初始化的时候执行;
如果在子类中定义了 __construct()函数,则不会调用父级的构造函数,如果需要调用,需要使用 parent::__contruct();
__destruct() 析构函数 在对象销毁的时候执行;
析构函数在PHP代码执行完毕后会自动回收与销毁,因此一般不需要显式的销毁
查看全部 -
使用 static 关键字修饰的,成为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符伪双冒号 ::
class Car { public static function getName() { return '汽车'; } } echo Car::getName(); //结果为“汽车”
查看全部 -
public 公开的,定义公有属性和方法,可以允许外部调用;
protected 受保护的,不允许外部调用
private 私有的的,不允许外部调用
protected、private 在类的成员方法内部是可以调用的;
class Car{ private $price = '1000'; public function getPrice() { return $this->price; //内部访问私有属性 }}
查看全部 -
print_r(array); 可以输出数组键及对应的值
查看全部 -
//* 将用户数据保存到cookie中的一个简单方法 */
$secureKey = 'imooc'; //加密密钥
$str = serialize($userinfo); //将用户信息序列化
//用户信息加密前
$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB));
//用户信息加密后
//将加密后的用户数据存储到cookie中
setcookie('userinfo', $str);
//当需要使用时进行解密
$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB);
$uinfo = unserialize($str);
echo "解密后的用户信息:<br>";
print_r($uinfo);
查看全部 -
类是一类东西的结构描述,而对象则是一类东西的一个具体实例。
查看全部 -
PHP进阶篇-函数 :http://www.imooc.com/learn/737
PHP进阶篇-日期时间函数:http://www.imooc.com/learn/698
PHP进阶篇-GD库图像处理:http://www.imooc.com/learn/701
PHP进阶篇-字符串操作:http://www.imooc.com/learn/726查看全部 -
数据库连接及查询
$link1 = mysql_connect('127.0.0.1', 'code1', ''); $link2 = mysql_connect('127.0.0.1', 'code1', '', true); //开启一个新的连接 $res = mysql_query('select * from user limit 1', $link1); //从第一个连接中查询数据
查看全部 -
通过我们需要将报错的文件名、行号、错误信息、异常追踪信息等记录到日志中,以便调试与修复问题。
查看全部 -
Exception具有几个基本属性与方法,其中包括了:
message 异常消息内容
code 异常代码
file 抛出异常的文件名
line 抛出异常在该文件的行数其中常用的方法有:
getTrace 获取异常追踪信息
getTraceAsString 获取异常追踪信息的字符串
getMessage 获取出错信息查看全部
举报