菜单

PHP7.27: Cookie and Session

2019年2月19日 - Php

 

PHP Cookies

<?php

// 有的浏览器不支持Cookie,这要考虑的
$cFile="count.txt";
$acctime=time();
if(file_exists($cFile)){
 $fp=fopen($cFile,"r"); 
 $str=fgets($fp,22);
 fclose($fp);
 $count=trim($str);
 $count++;
}else{
 $count=1;
}
$first=false;
if(!isset($_COOKIE['acctime'])){
 setcookie("acctime",$acctime,time()+3600*24);
 $first=true;
 $acctime=3600*24+$acctime;
}else{
 $acctime=3600*24+$_COOKIE['acctime'];
}
if($first||$acctime<=time()){
 $count=sprintf("%d",$count);
 $fp=fopen($cFile,"w");
 fputs($fp,$count);
 fclose($fp);
}else{
 $count--;
}
//print "您是第 ".$count." 位访客。您访问计入统计的时间是:".date("Y-n-j H:i:s",$acctime)."。";
?>
<?php
//读取显示
    $f_open=fopen('count.txt','r+');
 $count=fgets($f_open);
 settype($count,"string");
 $len=strlen($count);
    $str=str_repeat("0",6-$len);
    echo "当前的访问量为:";
    for($i=0;$i<=strlen($str);$i++){
  echo '<img src=images/0.gif>';
    }
    for($j=0;$j<$len;$j++){
      switch ($count[$j]){
           case "0"; $img[$j]="0.gif";break;
      case "1"; $img[$j]="1.gif";break;
      case "2"; $img[$j]="2.gif";break;
      case "3"; $img[$j]="3.gif";break;
      case "4"; $img[$j]="4.gif";break;
      case "5"; $img[$j]="5.gif";break;
      case "6"; $img[$j]="6.gif";break;
      case "7"; $img[$j]="7.gif";break;
      case "8"; $img[$j]="8.gif";break;
      case "9"; $img[$j]="9.gif";break;
  }
  echo "<img src=images/".$img[$j]." title=".$img[$j].".>";
   }

?>

cookie 常用于识别用户。cookie
是服务器留在用户电脑中的小文件。每当相同的处理器通过浏览器请求页面时,它同时会发送
cookie。通过 PHP,您可以创设并取回 cookie 的值。

  

 

<?php
 session_start(); //创建会话
 $f_open=fopen('count.txt','r+');
 $count=fgets($f_open);
 if($_SESSION[count]==''){  //全局变量
  $count++;
  rewind($f_open);
  fwrite($f_open,$count);
  fclose($f_open);
  $_SESSION[count]=1;  //存储会话变量
  //unset($_SESSION[count]); //注销会话变量
  //session_unregister($_SESSION[count]) //php4
  //session_unset($_SESSION[count])
 }
?>

创建cookie:setcookie(name, value, expire, path, domain);

  

       setcookie() 函数必须放在 <html> 标签此前。

       在发送 cookie 时,cookie 的值会自动进行 U帕杰罗L
编码,在收复时举办自动解码

取回cookie: $_总老总KIE 变量用于取回 cookie 的值。

1 <?php
2 // Print a cookie
3 echo $_COOKIE["user"];
4 
5 // A way to view all cookies
6 print_r($_COOKIE);
7 ?>

认清是或不是设置cookies:isset() 函数

1 <?php
2 if (isset($_COOKIE["user"]))
3   echo "Welcome " . $_COOKIE["user"] . "!<br />";
4 else
5   echo "Welcome guest!<br />";
6 ?>

删去cookie:使过期日期变更为过去的时间点。

1 <?php 
2 // set the expiration date to one hour ago
3 setcookie("user", "", time()-3600);
4 ?>

 

PHP Sessions

PHP session
变量用于存储有关用户会话的新闻,或变更用户会话的装置。Session
变量保存的新闻是单一用户的,并且可供应用程序中的全部页面使用。

做事体制:为各类访问者创立贰个唯一的 id (UID),并按照那一个 UID
来储存变量。UID 存储在 cookie 中,亦或通过 UKugaL 进行传导。

 

开始 PHP Session: session_start() 函数

  session_start() 函数必须放在 <html> 标签从前

积存和取回 session 变量:使用 PHP $_SESSION 变量

1 <?php
2 session_start();
3 // store session data
4 $_SESSION['views']=1;
5 ?>

检测Session变量:isset();

除去session:unset() 函数用于释放钦命的 session 变量,session_destroy()
函数根本甘休 session.

1 <?php
2 unset($_SESSION['views']);  //释放session变量view
3 session_destroy();  //彻底终结session
4 ?>

 

php cookie与 session区别

一 、cookie数据存放在客户的浏览器上,session数据放在服务器上。

② 、cookie不是很安全,旁人可以分析存放在地方的老董KIE并开展老板KIE欺骗,考虑到平安应该拔取session。

三 、session会在一定时间内保存在服务器上。当访问增多,会相比占用你服务器的属性,考虑到减轻服务器质量方面,应当利用老板KIE。

④ 、单个cookie保存的数额不大概超过4K,很多浏览器都限制多个站点最多保留拾捌个cookie。

五 、将登陆音信等关键新闻寄存为SESSION,其余新闻借使急需保留,可以放在COOKIE中(如用户名)把一部分敏感的东西存到session中,不太灵活的事物可以存在session大概库克ie中,可是session有的时候在服务器中易于遗失,所以大家可以组合cookie一起行使,就是说当session的遗失的时候,倘使cookie还在我们设定的有效期内,就可以再度从Cookie中取出值放进session里,所以大家最好还要用session和cookie保存用户名等消息照旧在布置文件里。

 

(*整理自W3School)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图