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

               當(dāng)前位置:首頁(yè)>軟件介紹>php里session的用法 查詢:
               
          php里session的用法

          php中session的用法
          PHP中的session默認(rèn)情況下是使用客戶端的Cookie。當(dāng)客戶端的Cookie被禁用時(shí),會(huì)自動(dòng)通過(guò)Query_String來(lái)傳遞。
          Php處理會(huì)話的函數(shù)一共有11個(gè),我們?cè)敿?xì)介紹一下將要用到幾個(gè)函數(shù)。
          1、 session_start
          函數(shù)功能:開始一個(gè)會(huì)話或者返回已經(jīng)存在的會(huì)話。
          函數(shù)原型:boolean session_start(void);
          返回值:布爾值
          功能說(shuō)明:這個(gè)函數(shù)沒有參數(shù),且返回值均為true。最好將這個(gè)函數(shù)置于最先,而且在它之前不能有任何輸出,否則會(huì)報(bào)警,如: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ù)功能:登記一個(gè)新的變量為會(huì)話變量
          函數(shù)原型:boolean session_register(string name);
          返回值:布爾值。
          功能說(shuō)明:這個(gè)函數(shù)是在全局變量中增加一個(gè)變量到當(dāng)前的SESSION中,參數(shù)name就是想要加入的變量名,成功則返回邏輯值true??梢杂?_SESSION[name]或$HTTP_SESSION_VARS[name]的形式來(lái)取值或賦值。
          3、 session_is_registered
          函數(shù)功能:檢查變量是否被登記為會(huì)話變量。
          函數(shù)原型:boobean session_is_registered(string name);
          返回值:布爾值
          功能說(shuō)明:這個(gè)函數(shù)可檢查當(dāng)前的session之中是否已有指定的變量注冊(cè),參數(shù)name就是要檢查的變量名。成功則返回邏輯值true。
          4、 session_unregister
          函數(shù)功能:刪除已注冊(cè)的變量。
          函數(shù)原型:boolean session_session_unregister(string name);
          返回值:布爾值
          功能說(shuō)明:這個(gè)函數(shù)在當(dāng)前的session之中刪除全局變量中的變量。參數(shù)name就是欲刪除的變量名,成功則返回true.
          5、 Session_destroy
          函數(shù)功能:結(jié)束當(dāng)前的會(huì)話,并清空會(huì)話中的所有資源。
          函數(shù)原型:boolean session destroy(void);
          返回值:布爾值。
          功能說(shuō)明:這個(gè)函數(shù)結(jié)束當(dāng)前的session,此函數(shù)沒有參數(shù),且返回值均為true
          上面介紹函數(shù)下文將會(huì)用到,但還有一些有關(guān)session的函數(shù)也介紹一下:
          6、 session_encode
          函數(shù)功能:sesssion信息編碼
          函數(shù)原型:string session_encode(void);
          返回值:字符串
          功能說(shuō)明:返回的字符串中包含全局變量中各變量的名稱與值,形式如:a|s:12:"it is a test";c|s:4:"lala"; a是變量名 s:12代表變量a的值"it is a test的長(zhǎng)度是12 變量間用分號(hào)”;”分隔。
          7、 session_decode
          函數(shù)功能:sesssion信息解碼
          函數(shù)原型:boolean session_decode (string data)
          返回值:布爾值
          功能說(shuō)明:這個(gè)函數(shù)可將session信息解碼,成功則返回邏輯值true
          8、 session_name
          函數(shù)功能:存取當(dāng)前會(huì)話名稱
          函數(shù)原型:boolean session_name(string [name]);
          返回值:字符串
          功能說(shuō)明:這個(gè)函數(shù)可取得或重新設(shè)置當(dāng)前session的名稱。若無(wú)參數(shù)name則表示獲取當(dāng)前session名稱,加上參數(shù)則表示將session名稱設(shè)為參數(shù)name
          9、 session_id
          函數(shù)功能:存取當(dāng)前會(huì)話標(biāo)識(shí)號(hào)
          函數(shù)原型:boolean session_id(string [id]);
          返回值:字符串
          功能說(shuō)明:這個(gè)函數(shù)可取得或重新設(shè)置當(dāng)前存放session的標(biāo)識(shí)號(hào)。若無(wú)參數(shù)id則表示只獲取當(dāng)前session的標(biāo)識(shí)號(hào),加上參數(shù)則表示將session的標(biāo)識(shí)號(hào)設(shè)成新指定的id
          10、 session_unset
          函數(shù)功能:刪除所有已注冊(cè)的變量。
          函數(shù)原型:void session_unset (void)
          返回值:布爾值
          功能說(shuō)明:這個(gè)函數(shù)和Session_destroy不同,它不結(jié)束會(huì)話。就如同用函數(shù)session_unregister逐一注銷掉所有的會(huì)話變量。
          編程思路
          在社區(qū)、論壇中,我們常能看到當(dāng)前在線的會(huì)員,使訪問(wèn)者有賓至如歸之感。但這種程序是怎么做出來(lái)的呢?
          流程如下:
          建表user,保存注冊(cè)用戶信息。
          字段
          類型
          備注
          userid
          Int(10)
          用戶序列號(hào) auto_increment 關(guān)鍵字
          username
          Varchar(50)
          用戶匿稱
          userpwd
          Varchar(50)
          密碼
          email
          Varchar(50)
          電子信箱
          oicq
          Varchar(50)
          OICQ號(hào)
          signature
          mediumtext
          簽名
          imgurl
          Varchar(50)
          頭像
          joindate
          Varchar(50)
          加入時(shí)間
          建類文件user.php 定義函數(shù)
          exist($username)確認(rèn)新注冊(cè)用戶是不是已經(jīng)存在
          nsert($username,$userpwd,$email,$oicq,$imgurl,$signature)插入注冊(cè)用戶
          update($userid,$username,$userpwd,$email,$oicq,$imgurl,$signature) 更新用戶數(shù)據(jù)
          get_from_condition($con) 返回滿足查詢條件的記錄集
          建表session。當(dāng)用戶登錄時(shí)即向此表插入新記錄,離開或超時(shí)后刪除記錄,保證表中保存的是當(dāng)前在線的用戶。
          字段
          類型
          備注
          sessionid
          Int(10)
          序列號(hào) auto_increment 關(guān)鍵字
          userid
          Int(10)
          用戶序列號(hào)取自u(píng)ser表
          ipaddress
          Varchar(50)
          Ip地址
          lastactivity
          Int(10)
          最后活動(dòng)時(shí)間,用它來(lái)判斷用戶是否還在線
          建類文件session.php 定義函數(shù)
          insert($userid,$ipaddress,$lastactivity) 把登錄成功的用戶插入到表中
          update($userid,$ipaddress,$lastactivity)更新在線用戶最后活動(dòng)時(shí)間
          del($con)刪除滿足條件的用戶,用它來(lái)清除離線用戶
          get_from_condition($con) 返回滿足查詢條件的記錄集
          公用文件global.php
          include "class/config.inc.php"; //把配置文件包含進(jìn)來(lái)
          $db = new db;
          $db-> db_connect( ); //連接數(shù)據(jù)庫(kù)
          $user = new user; //初始化
          $session = new session;
          //啟動(dòng)會(huì)話
          session_start();
          //刪除session表中已經(jīng)過(guò)期的用戶(即非在線網(wǎng)友)因?yàn)榇宋募偸潜徽{(diào)用從而保證顯示的都是當(dāng)前在線的用戶
          $curtime=time();
          $con="lastactivity<$curtime";
          $session->del($con);
          //正在線的網(wǎng)友需不斷更新session表中的lastactivity時(shí)間,并重新設(shè)置用戶的COOKIES
          if ($HTTP_SESSION_VARS["online"]=="on"){ //此處也可用$_SESSION[“online”]
          $userid=$HTTP_SESSION_VARS["userid"]; //取當(dāng)前在線用戶的userid
          $ipaddress=substr($REMOTE_ADDR,0,50);
          $lastactivity=time()+3600; //更新最后活動(dòng)時(shí)間,如時(shí)一個(gè)小時(shí)之內(nèi)未調(diào)動(dòng)頁(yè)面就認(rèn)為用戶已離線,從而會(huì)被刪除。
          $session->update($userid,$ipaddress,$lastactivity);
          }else{
          //如果未登錄那直接轉(zhuǎn)入登錄頁(yè)面
          $firstpage="logon.php";
          header ("Location: $firstpage");
          exit;
          }
          登錄文件logon.php
          if ($hiddenField=="0"){ //測(cè)檢表單有未被提交
          $con="username='$username' and userpwd='$userpwd'";
          $result=$user->get_from_condition($con);
          if ($user->counter==1){
          if (!session_is_registered("online")){//檢測(cè)是否被登記過(guò)
          session_register("online"); //登記一個(gè)新的變量為會(huì)話變量
          }
          if (!session_is_registered("ccauser")){
          session_register("ccauser");
          }
          if (!session_is_registered("userid")){
          session_register("userid");
          }
          $ccauser=$username; //給會(huì)話變量賦值
          $online="on"; //這個(gè)變量在global.php用到以更新最后活動(dòng)時(shí)間lastactivity
          $userid=$user->userid;
          $ipaddress=substr($REMOTE_ADDR,0,50);
          $lastactivity=time()+3600;
          $con=" userid=$userid";
          $session->get_from_condition($con);
          //判斷會(huì)話是否存在,有可能你在不同的機(jī)器上登兩次。
          if ($session->counter==1){
          $session->update($userid,$ipaddress,$lastactivity); //如存在,更新
          }else{
          $session->insert($userid,$ipaddress,$lastactivity); //如不存在,插入
          }
          //在客戶機(jī)設(shè)置COOKIES
          SetCookie("ccauser",$username,time()+3600);
          Header("Location:test.php");//然后導(dǎo)向測(cè)試頁(yè)
          }
          }
          ?>
          if($HTTP_SESSION_VARS["online"]=="") { //判斷是否已登錄
          ?>
          //下面是登錄的表單
          名稱:  
          密碼:  
          }else{
          echo "網(wǎng)友:".$HTTP_COOKIE_VARS["ccauser"]."你已經(jīng)登錄了"; //如果已登錄則顯示提示
          $str="
          [url=exit.php]退出社區(qū)[/url]";
          echo $str;
          }
          ?>
          測(cè)試文件test.php
          include "global.php"; //把global.php文件包含進(jìn)來(lái)
          $strWelcome="歡迎[color=red]".$_SESSION['ccauser']."[/color]
          ";
          echo $strWelcome; //顯示歡迎信息
          $str=” 當(dāng)前在線用戶:
          ===================  ”;
          $con=" 1=1";
          //提出session表中所有記錄即是當(dāng)前在線用戶,未把游客算在內(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文件包含進(jìn)來(lái)
          if ($_SESSION["online"]=="on"){
          $con="userid=$userid";
          $session->del($con); //在session表中刪除用戶信息。
          session_destroy(); //結(jié)束當(dāng)前的會(huì)話,并清空會(huì)話中的所有資源
          echo "已經(jīng)退出社區(qū)......";
          }
          ?>



          php總結(jié)報(bào)告PHP+PDO+學(xué)習(xí)筆記
          PHP開發(fā)中常見的錯(cuò)誤 PHP+MySQL分頁(yè)原理及實(shí)現(xiàn)
          PHP連接各種數(shù)據(jù)庫(kù)代碼php程序員學(xué)習(xí)計(jì)劃
          PHP實(shí)現(xiàn)排序算法PHP程序員的技術(shù)成長(zhǎng)規(guī)劃
          php定時(shí)執(zhí)行任務(wù)的幾個(gè)方法PHP識(shí)別圖片主色調(diào)
          php編程與應(yīng)用php和js如何通過(guò)json互相傳遞數(shù)據(jù)
          php遞歸json類分享php中的有關(guān)錯(cuò)誤的配置有哪些
          PHP程序安全策略php設(shè)計(jì)模式介紹之單條模式
          信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
          • 勁爆價(jià):
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 无码视频第一页 | 欧美性爱免费在线视频PK视频 | 日韩成人精品视频 | 影音先锋成人电影AV一色女人在线播放 | 国产免费一区二区三区在线 | 看亚洲A级一级毛片 | 国产午夜福利免费视频在线观看 | 免费 无码 国产在线怀 | 69日日干 | 在线观看视频草女人啊啊 |