記事No | : 170 |
投稿日 | : 2007/04/10(Tue) 15:32:32 |
タイトル | : クッキーに保存されません |
ID情報 | : syogyou |
投稿者 | : 花篭 |
URL | : http://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 |
URL | : http://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 |
投稿者 | : 花篭 |
URL | : http://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;
> }