ユーザ用ツール

サイト用ツール


perl:cgi

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
perl:cgi [2018/06/25 10:40] – 外部編集 127.0.0.1perl:cgi [2018/07/20 13:34] (現在) taka
行 1: 行 1:
 ====== Perl - CGI ====== ====== Perl - CGI ======
  
-===== CGI で UTF8 を扱う =====+===== CGIでUTF8を扱う =====
  
  
-CGI モジュールと Encode モジュールを使うとよい。+CGIモジュールとEncodeモジュールを使うとよい。
  
-<sxh perl; gutter: true;>+<sxh perl>
 #!/usr/bin/perl #!/usr/bin/perl
  
 BEGIN { BEGIN {
-    use File::Basename; +  use File::Basename; 
-    chdir dirname( $0 );+  chdir dirname($0);
 } }
    
行 23: 行 23:
 use Encode; use Encode;
  
-# 取得したデータを UTF8 として扱うためにデコード+# 取得したデータをUTF8として扱うためにデコード
 my $cgi = CGI->new(); my $cgi = CGI->new();
  
-foreach my $param ( $cgi->param ) { +foreach my $param ($cgi->param) { 
- my @value = map { Encode::decode( 'utf8', $_ ) } $cgi->param( $param ); +  my @value = map {Encode::decode("utf8",$_)} $cgi->param($param); 
- $cgi->param( $param ,@value );+  $cgi->param($param,@value);
 } }
 </sxh> </sxh>
  
-これだけで CGI で正常に UTF8 が扱えるようになる。\\ +これだけでCGIで正常にUTF8が扱えるようになる。\\ 
-CGI モジュールで取得した変数をハッシュにするには、+CGIモジュールで取得した変数をハッシュにするには、
  
-<sxh perl; gutter: false;>+<sxh perl>
 my %in = $cgi->Vars; my %in = $cgi->Vars;
 </sxh> </sxh>
行 41: 行 41:
 たったこれだけでよい。 たったこれだけでよい。
  
-===== Cookie の書き込みと読み込み =====+===== Cookieの書き込みと読み込み =====
  
 ==== 書き込み ==== ==== 書き込み ====
  
-<sxh perl; gutter: true;>+<sxh perl>
 #!/usr/bin/perl #!/usr/bin/perl
  
 BEGIN { BEGIN {
-    use File::Basename; +  use File::Basename; 
-    chdir dirname( $0 );+  chdir dirname( $0 );
 } }
    
行 66: 行 66:
 </sxh> </sxh>
  
-//-expires// は有効期限を設定するもので、//+3M// は三ヶ月間を意味する。+//-expires//は有効期限を設定するもので、//+3M//は三ヶ月間を意味する。
  
 ==== 読み込み ==== ==== 読み込み ====
  
-<sxh perl; gutter: true;>+<sxh perl>
 #!/usr/bin/perl #!/usr/bin/perl
  
 BEGIN { BEGIN {
-    use File::Basename; +  use File::Basename; 
-    chdir dirname( $0 );+  chdir dirname($0);
 } }
  
行 87: 行 87:
  
 my %cookies = fetch CGI::Cookie; my %cookies = fetch CGI::Cookie;
-my $cookie  = $cookies{'識別子'}->value if ( exists $cookies{'識別子'} ); +my $cookie  = $cookies{"識別子"}->value if (exists $cookies{"識別子"}); 
-my $result  = Encode::decode( 'utf8', $cookie );+my $result  = Encode::decode("utf8",$cookie);
 </sxh> </sxh>
  
-存在しないクッキーを取得しようとすると致命的なエラーとなるため、必ず exists で存在を確認する。取得した値に対して UTF-8 フラグを立てることも忘れずに。+存在しないクッキーを取得しようとすると致命的なエラーとなるため、必ずexistsで存在を確認する。\\  
 +取得した値に対してUTF-8フラグを立てることも忘れずに。
  
perl/cgi.1529890849.txt.gz · 最終更新: 2018/06/25 10:40 by 127.0.0.1