PHP学习2 — PHP Cookie 与 Session

发布时间:2019-02-17  栏目:Python  评论:0 Comments

 

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 的值会自动进行 UXC60L
编码,在收复时开展机动解码

取回cookie: $_CEOKIE 变量用于取回 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
变量保存的音讯是单一用户的,并且可供应用程序中的全体页面使用。

做事体制:为每种访问者创制2个唯一的 id (UID),并依照这些 UID
来囤积变量。UID 存储在 cookie 中,亦或通过 U奥迪Q5L 举行传导。

 

开始 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会在听之任之时间内保存在服务器上。当访问增多,会相比较占用你服务器的性质,考虑到减轻服务器质量方面,应当采用CEOKIE。

四 、单个cookie保存的数码不可以跨越4K,很多浏览器都限制1个站点最多保留十八个cookie。

伍 、将登陆消息等重点新闻寄存为SESSION,其余消息一旦急需保留,可以置身老总KIE中(如用户名)把一些机敏的东西存到session中,不太敏感的事物得以存在session恐怕Cookie中,但是session有的时候在服务器中易于遗失,所以大家得以组合cookie一起行使,就是说当session的遗失的时候,借使cookie还在我们设定的有效期内,就足以再两遍从Cookie中取出值放进session里,所以我们最好还要用session和cookie保存用户名等新闻如故在布署文件里。

 

(*整理自W3School)

留下评论

网站地图xml地图