php入门-COOKIE、SESSION会话技术

0x00 起源

从零学习php,最终目的实现代码审计入门,软件采用sublime text,环境使用phpstudy搭建,需要有简单的html基础和php基础,跟随流沙前辈视频学习记录。

0x01  COOKIE和SESSION

cookie保存在浏览器端,session保存在server端,session依靠cookie才能实现;更深入了解,推荐文章 你真的了解 Cookie 和 Session 吗? - 纯洁的微笑 - 博客园

0x02  关于cookie的例子

设置cookie值的有效时间

<?php   //9-27 php会话技术 cookie保存在浏览器端的数据
	//setcookie("id",$id,time()+36002430 ,'/');  语法
	setcookie("ccc",123456,time()+60)         //设置cookie的有效时间1min
	setcookie("aaa",123456.time()+600);       //10min
	setcookie("bbb",123456,time()+60*60);	  //1h   依次类推,可自由设置

用cookie来计算当前页面的访问次数

代码一    简单的例子
<?php  	/*cookie来计算当前页面的访问次数 */
	setcookie("num",20);
	//(第一次设置cookie  当前页面是取不出来的),经测试,第一次访问页面会报错,第二次才会显示值为20,为php一个特性
	$num = $_COOKIE["num"];  
	echo $num;

代码二    正常代码执行但有坑
<?php
	$num = 0;
	if(empty($_COOKIE["access"]))	//先判断access(访问计数)值是否为空
	{   	
		setcookie("access",1);		//如果为空,设置access值是1
		echo $_COOKIE["accesss"];
	}else{
		$num = $_COOKIE["access"];	//不为空时
		$num++;						//因为是对浏览器的访问次数计数,所以没访问一次,num值要自加
		setcookie("access",$num);
		echo $_COOKIE["access"];
	}

代码三    代码二修正版
/*因为第一次访问会报错,所以代码修改为第一次访问为空直接echo 1,不为空接收$num的值,这样会成功避免掉访问报错的问题*/
<?php
	$num = 0;
	if(empty($_COOKIE["access"]))	//先判断access(访问计数)值是否为空
	{   	
		setcookie("access",1);		//如果为空,设置access值是1
		//echo $_COOKIE["accesss"];
		echo 1;
	}else{
		$num = $_COOKIE["access"];	//不为空时
		$num++;						//因为是对浏览器的访问次数计数,所以没访问一次,num值要自加
		setcookie("access",$num);
		//echo $_COOKIE["access"];
		echo $num;
	}

0x03  有关session的例子

需要注意一点,在使用session之前要用session_start()函数

session清空有两种方法
        session_destory();              //使用session_destory()函数
        $_SESSION = arrary();      //用数组的方法

session登陆测试,此例子需要三个php页面

页面一  t4.php
<!DOCTYPE html>
<html>
<head>
	<title>session登陆测试页面</title>
</head>
<body>
<form action="session.php" method="post">
	用户名:<input type="text" name="name1">
	密码:<input type="password" name="pass1"> 
	<input type="submit" value="登陆">
</form>
</body>
</html>

页面二  session.php
<?php
	header("Content-type:text/html;charset=utf-8");  
	session_start();

	if(empty($_POST)){			 //POST数据为空                        
		echo "登陆失败,请输入账号密码<br/>";
		echo  "<a href = 't4.php'>请登录</a>";    //注意t4.php为''
	}else{
		$name = $_POST["name1"];				  //接收账号密码
		$pass = $_POST["pass1"];

		if($name == "admin" && $pass == "123456"){   //对账号密码值进行匹配,正常情况下是有数据库的,但是现阶段学习从零开始
			$_SESSION["name"] = "admin";
			header("Location:t5.php");            	 //跳转使用header加Location
		}else{
			echo "登陆失败,用户名或密码错误<br/>";    //账号密码错误进行提醒 
			echo "<a href = 't2.php'>请登录</a>";
		}
	}

页面三  t5.php
<?php
	header("Content-type:text/html;charset=utf-8");
	session_start();

	if(empty($_SESSION)){						//判断session值是否为空
		echo "无权登录</br>";
		echo "<a href = 't4.php'>请登录</a>";	//t4.php使用''
	}else{
		$name = $_SESSION["name"];
		echo  "欢迎".$name."登陆系统";			//如果成功,欢迎admin登陆系统
	}

测试页面结果

0x04  总结

边学边记录,不知不觉已到深夜。学习起来还是蛮有意思,有兴趣的童鞋可以敲敲代码。

如有错误,欢迎指出,毕竟个人也是新手。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值