KENT-WEB サポートコーナー 過去ログ [ 0038 ]


記事No: 170
投稿日: 2007/04/10(Tue) 15:32:32
タイトルクッキーに保存されません
ID情報: syogyou
投稿者: 花篭
URLhttp://www20.tok2.com/home/narutofan/cgi-bin/patio/patio.cgi

現在Web patio 3.11の設置を試みています。

プロバイダー: www.20.tok2.com
URL:http://www20.tok2.com/home/narutofan/cgi-bin/patio/patio.cgi

エラー内容:  クッキーをオンにしているのにもかかわらず、名前やパスワードなどが保存されません。
3人の人に別のマシーンでテストしてもらいましたが、同じ結果がでました。
テストは改造する前の物を使っています。どうしてうまくいかないのかアドバイスをいただけないでしょうか?


記事No: 171
投稿日: 2007/04/10(Tue) 16:51:14
タイトルRe: クッキーに保存されません
ID情報: kent
投稿者: KENT

> 現在Web patio 3.11の設置を試みています。
>
> プロバイダー: www.20.tok2.com
> URL:http://www20.tok2.com/home/narutofan/cgi-bin/patio/patio.cgi
>
> エラー内容:  クッキーをオンにしているのにもかかわらず、名前やパスワードなどが保存されません。
> 3人の人に別のマシーンでテストしてもらいましたが、同じ結果がでました。
> テストは改造する前の物を使っています。どうしてうまくいかないのかアドバイスをいただけないでしょうか?

トクトク固有の問題のようです。以下のFAQで解決してみてください。(以前、有志の方の詳細な解説ページがあったのですが、現時点ではなくなっているようです)

http://www23.tok2.com/home/FAQ/cgi1.html#Cookie


記事No: 172
投稿日: 2007/04/10(Tue) 17:15:19
タイトルRe: クッキーに保存されません
ID情報: tems
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> 現在Web patio 3.11の設置を試みています。
>
> プロバイダー: www.20.tok2.com
> URL:http://www20.tok2.com/home/narutofan/cgi-bin/patio/patio.cgi
>
> エラー内容:  クッキーをオンにしているのにもかかわらず、名前やパスワードなどが保存されません。
> 3人の人に別のマシーンでテストしてもらいましたが、同じ結果がでました。
> テストは改造する前の物を使っています。どうしてうまくいかないのかアドバイスをいただけないでしょうか?


以下でどうでしょうか。

●init.cgi
#-------------------------------------------------
# アクセス制限
#-------------------------------------------------

-- 途中省略 --

# セッションクッキー埋め込み
print "Set-Cookie: patio_member=$cookid;\n";
$Cookie = "patio_member=$cookid;\n"; ## ←追加


#-------------------------------------------------
# HTMLヘッダ
#-------------------------------------------------
sub header {
local($sub, $js) = @_;

if ($sub ne '') { $title = $sub; }
print "Content-type: text/html\n\n";
print <<"EOM";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<META HTTP-EQUIV="Content-Style-Type" content="text/css">
<META HTTP-EQUIV="Set-Cookie" content="$Cookie"><!-- ★追加 -->
<STYLE type="text/css">


●regist.cgi
#-------------------------------------------------
# クッキー発行
#-------------------------------------------------
sub set_cookie {
local(@cook) = @_;
local($gmt, $cook, @t, @m, @w);

@t = gmtime(time + 60*24*60*60);
@m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
@w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');

# 国際標準時を定義
$gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT",
$w[$t[6]], $t[3], $m[$t[4]], $t[5]+1900, $t[2], $t[1], $t[0]);

# 保存データをURLエンコード
foreach (@cook) {
s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;
$cook .= "$_<>";
}

# 格納
print "Set-Cookie: WEB_PATIO=$cook; expires=$gmt\n";
$Cookie = "WEB_PATIO=$cook; expires=$gmt\n"; ## ←追加
}


●patio.cgi
#-------------------------------------------------
# ログオフ
#-------------------------------------------------
sub logoff {
unlink("$sesdir/$my_ckid.cgi");
print "Set-Cookie: patio_member=;\n";
$Cookie = "patio_member=;\n"; ## ←追加
&enter_disp;
}


記事No: 190
投稿日: 2007/04/11(Wed) 14:35:14
タイトルRe^2: クッキーに保存されません
ID情報: syogyou
投稿者: 花篭
URLhttp://www20.tok2.com/home/narutofan/cgi-bin/patio/patio.cgi

KENTOさんにご指導頂けるとは感激です。
サーバーの問題だとは気がつきませんでした。
今度何か問題があるときはご紹介頂いたサーバー側のFAQを先に見ることにします。お手数をかけて申し訳ありませんでした。

BALさん、
BALさんに頂いた追加コードをコピーして試してみたところ、
一発で直りました。すごいです!!
本当に本当にありがとうございました。

> > 現在Web patio 3.11の設置を試みています。
> >
> > プロバイダー: www.20.tok2.com
> > URL:http://www20.tok2.com/home/narutofan/cgi-bin/patio/patio.cgi
> >
> > エラー内容:  クッキーをオンにしているのにもかかわらず、名前やパスワードなどが保存されません。
> > 3人の人に別のマシーンでテストしてもらいましたが、同じ結果がでました。
> > テストは改造する前の物を使っています。どうしてうまくいかないのかアドバイスをいただけないでしょうか?
>
>
> 以下でどうでしょうか。
>
> ●init.cgi
> #-------------------------------------------------
> # アクセス制限
> #-------------------------------------------------
>
> -- 途中省略 --
>
> # セッションクッキー埋め込み
> print "Set-Cookie: patio_member=$cookid;\n";
> $Cookie = "patio_member=$cookid;\n"; ## ←追加
>
>
> #-------------------------------------------------
> # HTMLヘッダ
> #-------------------------------------------------
> sub header {
> local($sub, $js) = @_;
>
> if ($sub ne '') { $title = $sub; }
> print "Content-type: text/html\n\n";
> print <<"EOM";
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html lang="ja">
> <head>
> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
> <META HTTP-EQUIV="Content-Style-Type" content="text/css">
> <META HTTP-EQUIV="Set-Cookie" content="$Cookie"><!-- ★追加 -->
> <STYLE type="text/css">
>
>
> ●regist.cgi
> #-------------------------------------------------
> # クッキー発行
> #-------------------------------------------------
> sub set_cookie {
> local(@cook) = @_;
> local($gmt, $cook, @t, @m, @w);
>
> @t = gmtime(time + 60*24*60*60);
> @m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
> @w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
>
> # 国際標準時を定義
> $gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT",
> $w[$t[6]], $t[3], $m[$t[4]], $t[5]+1900, $t[2], $t[1], $t[0]);
>
> # 保存データをURLエンコード
> foreach (@cook) {
> s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;
> $cook .= "$_<>";
> }
>
> # 格納
> print "Set-Cookie: WEB_PATIO=$cook; expires=$gmt\n";
> $Cookie = "WEB_PATIO=$cook; expires=$gmt\n"; ## ←追加
> }
>
>
> ●patio.cgi
> #-------------------------------------------------
> # ログオフ
> #-------------------------------------------------
> sub logoff {
> unlink("$sesdir/$my_ckid.cgi");
> print "Set-Cookie: patio_member=;\n";
> $Cookie = "patio_member=;\n"; ## ←追加
> &enter_disp;
> }


[検索ページ]