CGI-BBS > CGI > Perl > Perlの改造でcgiの中で他のcgiのクッキーを呼びだしたい。


カレッヂ
カレッヂ


質問者 やす  投稿日 2/10(月) 00:18:46
はじめまして。
今、CGIにこってまして、色々本とかWEB上で検索したりとかで探してみたんですけど、
良くわからず、ココに頼ってしまたんですけど。

A.cgiのクッキー取得部分。

sub get_cookie{
	$cooks = $ENV{'HTTP_COOKIE'};
	$cooks='' unless($cooks =~s/.*$cookie_name=(.*)waoend.*/$1/);
	($cname,$c_email,$c_url,$cnt) = split(/<>/, $cooks);
}

B.cgiのクッキー取得部分。

sub get_cookie {
	local($key, $val, @cook, %tmp);
	@cook = split(/;/, $ENV{'HTTP_COOKIE'});
	foreach (@cook) {
		($key, $val) = split(/=/);
		$key =~ s/\s//g;
		$tmp{$key} = $val;
	}
	%ck = split(/<>/, $tmp{"$cookname"});
	$c_name      = $ck{'name'};
	$c_pass      = $ck{'pass'};
	$c_email     = $ck{'email'};
}

B.cgiで取得した名前($c_name)をA.cgiで表示させるにはどうしたら良いんでしょう?
説明不足でしたらすみません。よろしくお願い致します。

プロバイダ参照:http://www.obi.ne.jp/
サーバのOS:(未選択)
パソコンのOS:Win95系
エディタ:PerlEditor
FTPソフト:FFFTP
サーバ移転:していない
改造:していない
CGI習熟度:middle

回答者 呑兵衛@大阪  [削除]  投稿日 2/11(火) 18:24:10
お答え
http://www.rescue.ne.jp/CGI-BBS/beginners/cgi_lib/20020527111421.shtml
質問者 やす  [削除]  投稿日 2/11(火) 23:12:52
呑兵衛さんレス有り難う御座います。
え〜〜っと、説明不足のようでした^^;すみません。
A.cgiから飛ばすのではなくて、B.cgiのcookieをA.cgiで取得したいのですが・・・
例えば、A.cgiはアクセス解析で他のB.cgi(BBS)のクッキーに書きこんだ名前を表示したいんですけど
A.cgiの配布サイトで改造のサポートをお願いした所、「方針ぐらいまでしかお答えできません」
って言われて・・・自分なりに色々調べたんですけど、
A.cgiのクッキー取得部分の$cnameにB.cgiの名前部分を入れれば良いってわかったんです。
でA.cgiでのB.cgiのクッキー取得方法って言うか・・・記述方法と言うか・・・
今、自分で書いてみて、ローカルでテストしてもエラーも無く、サーバーにUPしてみたんですけど、
反映されなくって困っているんです。ちなみに書いたのは、

# 名前集計機能の使用(0=OFF / 1=ON)
$get_name = 1;

(略)

if($get_name == 1){
	&get_cookie;
	if($cname eq ""){
		&get_yasucookie;
}
}

(略)

sub get_pocketcookie{
	$cooks = $ENV{'HTTP_COOKIE'};
	$cooks='' unless($cooks =~s/.*$cookie_name=(.*)waoend.*/$1/);
	($cname,$c_email,$c_url,$cnt) = split(/<>/, $cooks);
}


sub get_yasucookie{
	local($key, $val, @cook, %tmp);
	@cook = split(/;/, $ENV{'HTTP_COOKIE'});
	foreach (@cook) {
		($key, $val) = split(/=/);
		$key =~ s/\s//g;
		$tmp{$key} = $val;
	}
	%ck = split(/<>/, $tmp{'profile'});
	$cname      = $ck{'name'};
	$c_pass      = $ck{'pass'};
	$c_email     = $ck{'email'};
}

こんな感じなんですけど・・・

どうかよろしくお願い致します。
質問者 やす  [削除]  投稿日 2/11(火) 23:16:12
すみません訂正です。


# 名前集計機能の使用(0=OFF / 1=ON)
$get_name = 1;

(略)

if($get_name == 1){
	&get_cookie;
	if($cname eq ""){
		&get_yasucookie;
}
}

(略)

sub get_cookie{
	$cooks = $ENV{'HTTP_COOKIE'};
	$cooks='' unless($cooks =~s/.*$cookie_name=(.*)waoend.*/$1/);
	($cname,$c_email,$c_url,$cnt) = split(/<>/, $cooks);
}

sub get_yasucookie{
	local($key, $val, @cook, %tmp);
	@cook = split(/;/, $ENV{'HTTP_COOKIE'});
	foreach (@cook) {
		($key, $val) = split(/=/);
		$key =~ s/\s//g;
		$tmp{$key} = $val;
	}
	%ck = split(/<>/, $tmp{'profile'});
	$cname      = $ck{'name'};
	$c_pass      = $ck{'pass'};
	$c_email     = $ck{'email'};
}

返信(回答)する

 


Web裏技