PHP7.27: Cookie and Session

 

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 的值。

  

manbetx手机网页版, 

<?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: $_COOKIE 变量用于取回 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 中,亦或通过 U帕杰罗L 举行传导。

 

开始 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不是很安全,旁人可以分析存放在该地的CEOKIE并拓展CEOKIE欺骗,考虑到平安应该使用session。

3、session会在自然时间内保存在服务器上。当访问增多,会相比占用你服务器的属性,考虑到减轻服务器品质方面,应当接纳高管KIE。

四,单个cookie保存的数目不可以当先4K,很多浏览器都限制二个站点最多保留十九个cookie。

伍,将登陆音讯等重点音信寄存为SESSION,其余音信一旦急需保留,能够置身CEOKIE中(如用户名)把一部分机智的东西存到session中,不太灵敏的事物可以存在session只怕库克ie中,可是session有的时候在服务器中不难丢失,所以大家可以整合cookie一起利用,就是说当session的散失的时候,假诺cookie还在我们设定的有效期内,就足以再一遍从Cookie中取出值放进session里,所以我们最好还要用session和cookie保存用户名等音讯依旧在安顿文件里。

 

(*整理自W3School)

发表评论

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

网站地图xml地图