![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
http://oshiete1.goo.ne.jp/kotaeru.php3?q=394703
を質問していたものです。
1.フォームで名前を入力
2.1の情報をクッキーに書き込み
ということをやりたいのです。
(応用いたしますが、基本はこれです。)
1つ目のcgiで、フォームで名前を入力。
-----1.cgi--------------------
#!/usr/local/bin/perl
print "Content-type:text/html\n\n";
print "<form method=post action=2.cgi>\n";
print "<input type=text name=name></input><BR>\n";
print "<input type=submit value=ok></input><BR>\n";
print "</form>\n";
exit;
------------------------------
1.cgiの名前のデータを呼び込もうとしてもエラーになる。
-----2.cgi--------------------
#!/usr/local/bin/perl
read(STDIN,$atai,$ENV{'content_length'});
($key, $value) = split(/=/, $atai);
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
print &setCookie("name",$value);
print "Content-type:text/html\n\n";
print "名前:<FONT COLOR=RED>",$value,"</FONT>と送信されました。<br>\n";
#Cookie書き込み。
sub setCookie{
local($tmp,$val);
$val = $_[1];
$val =~ s/(\W)/sprintg("%%%02X",unpack("C",$1))/eg;
$tmp="Set-Cookie: ";
$tmp .="$_[0]=$val; ";
$tmp .="expires=Thu, 1-Jan-2030 00:00:00 GMT;\n";
return($tmp);
}
------------------------------
クッキー書き込みをしないで実行すると、きちんと名前が表示されます。
どこをなおせばきちんとクッキーにセットされるのでしょうか?
何度も申し訳ありませんがよろしくお願いします。
No.1ベストアンサー
- 回答日時:
どうも、wolfwoodです。
>$val =~ s/(\W)/sprintg("%%%02X",unpack("C",$1))/eg;
ここのsprintgはsprintfです。
正しくは
$val =~ s/(\W)/sprintf("%%%02X",unpack("C",$1))/eg;
です。
打ち間違えのケアレスミスですね。
この部分はコピーで済むのでコピーをお薦めします。
あと自分で記述した場合は見直しをよく行ってください。
では、頑張ってください。
回答ありがとうございます。
無事実行できました。
>あと自分で記述した場合は見直しをよく行ってください。
はい、そのとおりですね。
何回も見直したつもりでいたんですが…。
この2.cgiを終了した後、クッキーを呼び出すために、
3.cgiを作成しました。
-----3.cgi--------------------
#!/usr/local/bin/perl
# Cookieを読み出す。
&getCookie();
$name=$COOKIE{'name'};
print "Content-type:text/html\n\n";
print $name;
print exit;
#cookie読み込み。
sub getCookie{
local($cookie,$cookie3,$key,$value);
$cookie=$ENV{'HTTP_COOKIE'};
#read(STDIN, $cookie, $ENV{'CONTENT_LENGTH'});
@cookie2=split(/; /,$cookie);
foreach $cookie3(@cookie2){
($key,$value)=split(/=/,$cookie3);
$value =~ s/%([0-9A-fA-f][0-9A-fA-f])/pack("C",hex($1))/eg;
$COOKIE{$key}=$value;
}
}
------------------------------
でも、さきほど2.cgiで入力して、出てきた値ではないものが出てきてしまうのです。
クッキーの値って上書きということはできないなんてことなんでしょうか?
申し訳ありませんが、再度よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
普通のHTMLの画面からCG...
-
htmlからパラメータで、cgiに渡...
-
sendmailからblatjへ
-
CGIでCSVとしてデータ保存→検索...
-
TOK2で基礎的なCGIをUPしたが動...
-
cgiでのprint関数
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
VB.net データーグリッドビュー...
-
select値をhiddenのvalueに渡し...
-
[HTML]プルダウンメニューの横...
-
onMouseoverで下線表示したい(...
-
パールの-pオプションの値0777...
-
【ASP.NET MVC】フォームヘルパ...
-
CGIでチェックボックスを使...
-
買い物カゴの作成
-
INPUT TYPE
-
リストボックス(multipleなsel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
sendmail 送信先を複数設定す...
-
iis+cgiでmultipart/form-data...
-
フォントサイズを変えるには?
-
CGI経由でのPDFファイルをダウ...
-
perl/cgi リダイレクトができない
-
2つのドメイン、同じサーバー。...
-
サーバー上のPDFにCGIでパスワ...
-
クッキー書き込みが正常に行わ...
-
cgi(perl) sendmailの使い方
-
CGI
-
クッキーを使って投票欄に名前...
-
TOK2で基礎的なCGIをUPしたが動...
-
クオートの多重入れ子をするには?
-
CGIでテキストボックスの内容に...
-
フォームメール(iモード用)で...
-
プログラム実行中の待機ページ...
-
ホームページビルダーで作ったh...
-
substrで数値を抽出してのマッ...
-
perlで重複データを集計
おすすめ情報