<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當前位置:首頁>軟件介紹>php里session的用法 查詢:
               
          php里session的用法

                  PHP中的session默認情況下是使用客戶端的Cookie。當客戶端的Cookie被禁用時,會自動通過Query_String來傳遞。

                  Php處理會話的函數(shù)一共有11個,我們詳細介紹一下將要用到幾個函數(shù)。

                  1、 session_start

                  函數(shù)功能:開始一個會話或者返回已經(jīng)存在的會話。

                  函數(shù)原型:boolean session_start(void);

                  返回值:布爾值

                  功能說明:這個函數(shù)沒有參數(shù),且返回值均為true。最好將這個函數(shù)置于最先,而且在它之前不能有任何輸出,否則會報警,如:Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/cga/member/1.php:2) in /usr/local/apache/htdocs/cga/member/1.php on line 3

                  2、 session_register

                  函數(shù)功能:登記一個新的變量為會話變量

                  函數(shù)原型:boolean session_register(string name); 返回值:布爾值。

                  功能說明:這個函數(shù)是在全局變量中增加一個變量到當前的SESSION中,參數(shù)

                  name就是想要加入的變量名,成功則返回邏輯值true。可以用$_SESSION[name]或$HTTP_SESSION_VARS[name]的形式來取值或賦值。

                  3、 session_is_registered

                  函數(shù)功能:檢查變量是否被登記為會話變量。

                  函數(shù)原型:boobean session_is_registered(string name);

                  返回值:布爾值

                  功能說明:這個函數(shù)可檢查當前的session之中是否已有指定的變量注冊,參數(shù)name就是要檢查的變量名。成功則返回邏輯值true。

                  4、 session_unregister

                  函數(shù)功能:刪除已注冊的變量。

                  函數(shù)原型:boolean session_session_unregister(string name);

                  返回值:布爾值

                  功能說明:這個函數(shù)在當前的session之中刪除全局變量中的變量。參數(shù)name就是欲刪除的變量名,成功則返回true.

                  5、 Session_destroy

                  函數(shù)功能:結(jié)束當前的會話,并清空會話中的所有資源。

                  函數(shù)原型:boolean session destroy(void); 返回值:布爾值。

                  功能說明:這個函數(shù)結(jié)束當前的session,此函數(shù)沒有參數(shù),且返回值均為true 上面介紹函數(shù)下文將會用到,但還有一些有關(guān)session的函數(shù)也介紹一下: 6、 session_encode

                  函數(shù)功能:sesssion信息編碼

                  函數(shù)原型:string session_encode(void); 返回值:字符串

                  功能說明:返回的字符串中包含全局變量中各變量的名稱與值,形式如:a|s:12:"it is a test";c|s:4:"lala"; a是變量名 s:12代表變量a的值"it is a test的長度是12 變量間用分號”;”分隔。

                  7、 session_decode

                  函數(shù)功能:sesssion信息解碼

                  函數(shù)原型:boolean session_decode (string data)

                  返回值:布爾值

                  功能說明:這個函數(shù)可將session信息解碼,成功則返回邏輯值true 8、 session_name

                  函數(shù)功能:存取當前會話名稱

                  函數(shù)原型:boolean session_name(string [name]); 返回值:字符串

                  功能說明:這個函數(shù)可取得或重新設置當前session的名稱。若無參數(shù)name則表示獲取當前session名稱,加上參數(shù)則表示將session名稱設為參數(shù)name 9、 session_id

                  函數(shù)功能:存取當前會話標識號

                  函數(shù)原型:boolean session_id(string [id]); 返回值:字符串

                  功能說明:這個函數(shù)可取得或重新設置當前存放session的標識號。若無參數(shù)id則表示只獲取當前session的標識號,加上參數(shù)則表示將session的標識號設成新指定的id

                  10、 session_unset

                  函數(shù)功能:刪除所有已注冊的變量。

                  函數(shù)原型:void session_unset (void) 返回值:布爾值

                  功能說明:這個函數(shù)和Session_destroy不同,它不結(jié)束會話。就如同用函數(shù)session_unregister逐一注銷掉所有的會話變量。

                  編程思路

                  在社區(qū)、論壇中,我們常能看到當前在線的會員,使訪問者有賓至如歸之感。但這種程序是怎么做出來的呢,

                  流程如下:

                  建表user,保存注冊用戶信息。

                  字段

                  類型

                  備注

                  userid

                  Int(10)

                  用戶序列號 auto_increment 關(guān)鍵字

                  username

                  Varchar(50) 用戶匿稱

                  userpwd

                  Varchar(50) 密碼

                  email

                  Varchar(50) 電子信箱

                  oicq

                  Varchar(50) OICQ號

                  signature mediumtext 簽名

                  imgurl

                  Varchar(50) 頭像

                  joindate

                  Varchar(50)

                  加入時間

                  建類文件user.php 定義函數(shù)

                  exist($username)確認新注冊用戶是不是已經(jīng)存在 nsert($username,$userpwd,$email,$oicq,$imgurl,$signature)插入注冊用戶

                  update($userid,$username,$userpwd,$email,$oicq,$imgurl,$signature) 更新用戶

                  數(shù)據(jù)

                  get_from_condition($con) 返回滿足查詢條件的記錄集 建表session。當用戶登錄時即向此表插入新記錄,離開或超時后刪除記錄,保證

                  表中保存的是當前在線的用戶。

                  字段

                  類型

                  備注

                  sessionid

                  Int(10)

                  序列號 auto_increment 關(guān)鍵字

                  userid

                  Int(10)

                  用戶序列號取自user表

                  ipaddress

                  Varchar(50)

                  Ip地址

                  lastactivity

                  Int(10)

                  最后活動時間,用它來判斷用戶是否還在線

                  建類文件session.php 定義函數(shù)

                  insert($userid,$ipaddress,$lastactivity) 把登錄成功的用戶插入到表中 update($userid,$ipaddress,$lastactivity)更新在線用戶最后活動時間 del($con)刪除滿足條件的用戶,用它來清除離線用戶

                  get_from_condition($con) 返回滿足查詢條件的記錄集

                  公用文件global.php

                  include "class/config.inc.php"; //把配置文件包含進來

                  $db = new db;

                  $db-> db_connect( ); //連接數(shù)據(jù)庫

                  $user = new user; //初始化

                  $session = new session;

                  //啟動會話

                  session_start();

                  //刪除session表中已經(jīng)過期的用戶(即非在線網(wǎng)友)因為此文件總是被調(diào)用從而保證顯示的都是當前在線的用戶

                  $curtime=time();

                  $con="lastactivity<$curtime"; $session->del($con);

                  //正在線的網(wǎng)友需不斷更新session表中的lastactivity時間,并重新設置用戶的COOKIES

                  if ($HTTP_SESSION_VARS["online"]=="on"){ //此處也可用$_SESSION[“online”] $userid=$HTTP_SESSION_VARS["userid"]; //取當前在線用戶的userid $ipaddress=substr($REMOTE_ADDR,0,50); $lastactivity=time()+3600; //更新最后活動時間,如時一個小時之內(nèi)未調(diào)動頁面就認

                  為用戶已離線,從而會被刪除。

                  $session->update($userid,$ipaddress,$lastactivity);

                  }else{

                  //如果未登錄那直接轉(zhuǎn)入登錄頁面

                  $firstpage="logon.php";

                  header ("Location: $firstpage"); exit;

                  }

                  登錄文件logon.php

                  if ($hiddenField=="0"){ //測檢表單有未被提交

                  $con="username='$username' and userpwd='$userpwd'";

                  $result=$user->get_from_condition($con); if ($user->counter==1){

                  if (!session_is_registered("online")){//檢測是否被登記過

                  session_register("online"); //登記一個新的變量為會話變量

                  }

                  if (!session_is_registered("ccauser")){ session_register("ccauser");

                  }

                  if (!session_is_registered("userid")){ session_register("userid");

                  }

                  $ccauser=$username; //給會話變量賦值

                  $online="on"; //這個變量在global.php用到以更新最后活動時間lastactivity $userid=$user->userid;

                  $ipaddress=substr($REMOTE_ADDR,0,50); $lastactivity=time()+3600; $con=" userid=$userid";

                  $session->get_from_condition($con); //判斷會話是否存在,有可能你在不同的機器上登兩次。

                  if ($session->counter==1){ $session->update($userid,$ipaddress,$lastactivity); //如存在,更新 }else{

                  $session->insert($userid,$ipaddress,$lastactivity); //如不存在,插入 }

                  //在客戶機設置COOKIES

                  SetCookie("ccauser",$username,time()+3600);

                  Header("Location:test.php");//然后導向測試頁

                  }

                  }

                  ?>

                  if($HTTP_SESSION_VARS["online"]=="") { //判斷是否已登錄 ?>

                  //下面是登錄的表單

                  名稱:

                  密碼:

                  }else{

                  echo "網(wǎng)友:".$HTTP_COOKIE_VARS["ccauser"]."你已經(jīng)登錄了"; //如果已登錄則顯示提示

                  $str="

                  [url=exit.php]退出社區(qū)[/url]";

                  echo $str;

                  }

                  ?>

                  測試文件test.php

                  include "global.php"; //把global.php文件包含進來

                  $strWelcome="歡迎[color=red]".$_SESSION['ccauser']."[/color]

                  ";

                  echo $strWelcome; //顯示歡迎信息

                  $str=” 當前在線用戶:

                  ===================

                  ”;

                  $con=" 1=1";

                  //提出session表中所有記錄即是當前在線用戶,未把游客算在內(nèi) $result=$session->get_from_condition($con);

                  while($row=mysql_fetch_array($result)){

                  $con1="userid=$row[userid]"; $user->get_from_condition($con1); $str.=$user->username." "; }

                  echo $str;

                  ?>

                  [url=exit.php]退出社區(qū)[/url]

                  退出文件exit.php

                  include "global.php"; //把global.php文件包含進來

                  if ($_SESSION["online"]=="on"){ $con="userid=$userid";

                  $session->del($con); //在session表中刪除用戶信息。 session_destroy(); //結(jié)束當前的會話,并清空會話中的所有資源 echo "已經(jīng)退出社區(qū)......";

                  }

                  ?>

                  


          PHP內(nèi)核解密學習PHP的方法與技巧
          PHP7性能翻倍關(guān)鍵大揭秘如何遏制PHP木馬攻擊
          PHP編程教程Ajax完成分頁技巧MySQL讀寫分離由PHP實現(xiàn)
          談PHP生成靜態(tài)頁面PHP訪問MySQL
          PHP常用代碼 基于php的萬年歷接口調(diào)用代碼實例
          PHP培訓之高級工程師應具備哪些條件 PHP底層的運行機制-PHP從啟動到停止的整個生命周期
          深度探討PHP之性能怎樣才能成為PHP高手
          PHP用戶注冊與登錄php調(diào)用linux計劃任務
          信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
          • 勁爆價:
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 99午夜| 91看片 白丝少萝自慰 | 国产色情视频 | 日产精品一区二区乱码视频 | IPX-811桃乃木かな无码破解 | 久久青青精品 | 黑人大鷄巴A片 | 黄片叉蛋的视频在线播放免费看 | 操阴道福利片视频 | 国产三级视频播放 |