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

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

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

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

      CGI教學:首章 cgilib例

      [摘要]一個簡單的讀取并處理表格請求數據的cgilib.pl例子:#!/usr/bin/perlsub readGetData{ # 指定局部變量queryString用以保存和傳遞函數的參數 local(*queryString) = @_ if @_; # 讀取環境變量QUERY_STRING的值賦給...
      一個簡單的讀取并處理表格請求數據的cgilib.pl例子:

      #!/usr/bin/perl

      sub readGetData{
      # 指定局部變量queryString用以保存和傳遞函數的參數
      local(*queryString) = @_ if @_;
      # 讀取環境變量QUERY_STRING的值賦給變量$queryString
      $queryString = $ENV{"QUERY_STRING"};
      return 1;
      }

      sub readPostData{
      local(*queryString)=@_ if @_;
      local($contentLength);
      # 讀取環境變量CONTENT_LENGTH的值
      $contentLength = $ENV{"CONTENT_LENGTH"};
      # 檢查是否有數據
      if($contentLength){
      # 從設備STDIN讀取contentLength長度的字符賦給$queryString
      read(STDIN,$queryString,$contentLength);
      }
      return 1;
      }

      sub readData{
      local(*queryString) = @_ if @_;
      # 讀取環境變量REQUEST_METHOD
      $requestType=$ENV{"REQUEST_METHOD"};

      # 如果請求方式為GET則使用函數readGetData
      # 否則如果請求方式為POST則使用函數readPostData
      if($requestType eq "GET"){
      &readGetData(*queryString);
      }
      elsif($requestType eq "POST"){
      &readPostData(*queryString);
      }
      return 1;
      }

      sub DecodeData{
      local(*queryString)= @_;
      # 把加號轉換成空格
      $queryString=~s/\+/ /g;
      # 轉換十六進制字符
      $queryString=~s/%(..)/pack("c",hex($1))/ge;
      return 1;
      }

      sub parseData{
      local(*queryString,*formData) = @_ if @_;
      local($key,$value,$curString,@tmpArray);

      # 以&為分隔符把字符串轉換成鍵-值對
      @tmpArray = split(/&/,$queryString);

      # 在數組@tmpArray內循環
      foreach $curString(@tmpArray){
      # 以=為分隔符分開鍵-值對
      ($key,$value) = split(/=/,$curString);
      # 解碼
      &DecodeData(*key);
      &DecodeData(*value);
      # 把鍵和值加到字典中
      $formData{$key}=$value;
      }
      return 1;
      }

      1;
      #end of file cgilib.pl

      使用方法:

      要使用此庫需含下列語句:
      #require "cgilib.pl";
      表格數據處理:
      %dataDict=();
      &readData(*data);
      &parseData(*data,dataDict);
      字典數據處理:
      while(($key,$value)=each(%dataDict)){
      print $key,"=",$value,"\n\n";
      }




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