<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      長沙發上的對話(4)

      [摘要]有很多給貓換膚的辦法...   當然,如果你的站點仍然運行著PHP3,你就無法使用迄今為止的任何代碼。但是不要沮喪 -- 有另一種提供給PHP3用戶的解決辦法。它就叫做PHPLIB,它提供了一組有用的類,允許在你的PHP3中增加對session的管理。可以按照包中的指示進行安裝,你還需要修改&qu...
      有很多給貓換膚的辦法...

        當然,如果你的站點仍然運行著PHP3,你就無法使用迄今為止的任何代碼。但是不要沮喪 -- 有另一種提供給PHP3用戶的解決辦法。它就叫做PHPLIB,它提供了一組有用的類,允許在你的PHP3中增加對session的管理?梢园凑瞻械闹甘具M行安裝,你還需要修改"local.inc"配置文件來創建你自已的類。
        象在PHP4中一樣,在每次你初始化一個session時,你需要預先調用page_open()函數。PHPLIB返回一個缺省的名為Example_Session的類 -- 你可以在"local.inc"文件中修改這個值 -- 它將用在下面的例子中:


      $#@60;?php

      page_open(array("sess" =$#@62; "Example_Session"));

      ?$#@62;

        在任何發給瀏覽器的輸出之前調用page_open()非常重要。為了注冊你的session變量,下面的語句可以完成這個工作。
      $#@60;?php

      //初始化一個session page_open(array("sess" =$#@62; "Example_Session"));

      //注冊一個session變量 $sess-$#@62;register(username);

      ?$#@62;

        每一個頁面也必須包含相應的page_close()函數,用來確認所以的改變量被保存在數據庫中。

      $#@60;?php

      page_close();

      ?$#@62;

        除了這些,大部分的代碼都是一樣的?匆幌乱郧袄拥腜HPLIB版本:

      $#@60;?php


      //初始化一個session page_open(array("sess" =$#@62; "Custom_Session"));

      //注冊session變量 - 注意語法
      $sess-$#@62;register(username);
      $sess-$#@62;register(stock1);
      $sess-$#@62;register(stock2);
      $sess-$#@62;register(stock3);
      $sess-$#@62;register(stock4);

      //連接MySQL $db = mysql_connect("someserver.com", "tom", "jones");

      //選擇數據庫 mysql_select_db("stock_db",$db);

      //使用SQL查詢數據庫
      $query = "select stock_pref1,stock_pref2,stock_pref3,stock_pref4
      from user_info where username=$username";

      $result = mysql_query($query,$db);

      // 從數據庫中取股票代碼,并賦值給session變量
      list($stock1,$stock2,$stock3,$stock4) = mysql_fetch_row($result);

      //輸出
      echo "Hi $usernam #@60;br$#@62;";
      echo "Your selected stocks are:$#@60;br$#@62;";
      echo "$stock1$#@60;br$#@62;";
      echo "$stock2$#@60;br$#@62;";
      echo "$stock3$#@60;br$#@62;";
      echo "$stock4$#@60;br$#@62;";

      //生成頁面其余代碼

      //將數據保存到數據庫中

      page_close();
      ?$#@62;

        如你所見,一旦你放下PHP4版本,理解PHPLIB版并不因難 -- 當你知道了PHP4中的對session的內部支持很大程度上基于PHPLIB模塊你就不會感到奇怪了。如果你感興趣,PHPLIB實際上在對session的管理中,對身份認證和權限的類更加深入,它允許你在基于數據庫的認證管理上,給一個用戶允許或禁止處理的權力 -- 可以看一下文檔中關于如何使用這些特性的例子。

        PHPLIB也提供一些有趣的內建函數。

      unregister(variable)


      [page_break]  允許你從一個特別的session中注銷一個變量。注意在那種情況下,變量并沒有被刪除,可是它的值將會在頁尾丟失,因為它不再被保存到數據庫中。

      $#@60;?php

      page_open(array("sess" =$#@62; "Example_Session"));

      //注冊一個變量 $sess-$#@62;register(username);

      //檢查是否它已經被注冊了
      if($sess-$#@62;is_registered(username))
      {
      echo "Variable \"username\" is registered!$#@60;br$#@62;";
      }
      else
      {
      echo "Variable \"username\" is unregistered!$#@60;br$#@62;";
      }

      //注銷一個變量 $sess-$#@62;unregister(username);

      //檢查是否已經被注銷 if($sess-$#@62;is_registered(username))
      {
      echo "Variable \"username\" is registered!$#@60;br$#@62;";
      }
      else
      {
      echo "Variable \"username\" is unregistered!$#@60;br$#@62;";
      }

      page_close();

      ?$#@62;

      is_registered(variable) 如果在一個session已經被注冊了,返回true,否則返回false。

      $#@60;?php

      page_open(array("sess" =$#@62; "Example_Session"));

      if($sess-$#@62;is_registered(username))
      {
      echo "A session variable by the name \"username\" already
      exists";
      }
      else
      {
      $sess-$#@62;register(username);
      }

      page_close();

      ?$#@62;

      delete() 釋放當前的session。

        要注意地有趣的一點是:在PHPLIB的cookie模式中,有可能在調用過delete()之后開始一個新的session,在客戶端設置一個新的cookie,甚至重新注冊一些以前session的變量 -- 可以從根本上使改變session象飛一樣。當然,你象這樣做事情,你需要讓你的生活...快起來!

      url($url) 充許你將用戶重定向到一個新的頁面。

      self_url() 返回一個當前頁的URL的引用,包括PHP_SELF和QUERY_STRING信息。

        那么在最后,對那些不幸擁有一個不提供PHP4和PHPLIB的ISP的你來說 -- 記住,通過好的cookie 技術總是可能模擬出session來的。你所要做的只是設置一個帶有信息的cookie ,用來長期保留用戶對你的站點的訪問過程,每次在用戶訪問一個新頁面的時候處理這個信息。很原始 -- 但是它可以工作,而且有時你也不能將能夠做成一件事的簡單方法打死!

      病人離開醫院

      病人: 哇哦,醫生 -- 太好了!非常感謝你做的一切!

      心理醫生: 沒問題,維克多。我很樂意幫助你。現在感覺好點嗎?

      病人: 噢,輕松!當我剛進來時,整個天看上去都是灰色和陰沉的 -- 現在,這個雨蓬窗戶外面的景色從來沒有那么好過...

      心理醫生: 恩...維克多...如果我是你在外面會很小心,扶手有一點壞了,在那可能不太安全。

      病人: 別擔心,醫生 -- 象這樣的天,我感到神...圣...啊。。。!





      日韩精品一区二区三区高清