CGI-BBS > SO−HO > ショッピングバスケット > SSLの設定について


カレッヂ
カレッヂ


質問者 tom  投稿日 5/3(金) 00:18:10
いつもお世話になっています。

下記の設定がどうもうまくいきません。
クッキーが効いていないため、商品が選ばれていないとエラーが出てしまいます。

$nossl = 'http://ドメイン/cargo/cart.cgi';
$ssl = 'https://***.securesites.com/ドメイン/cargo/cart.cgi';

この時の
$domain = "";
$path = "/";
はどのように設定するのでしょうか。
どちらも同じ場所を指せています

宜しくお願いします。
回答者 呑兵衛@大阪  [削除]  投稿日 5/3(金) 21:16:26
ショッピングバスケットの項目の過去ログを読んでください。
このURIでは、SSLに渡せません。
質問者 tom  [削除]  投稿日 5/3(金) 21:45:46
回答ありがとうございます

過去ログは読んでいるのですが、***.securesites.comの部分が同じでないとクッキーに渡せないと言う回答でした。ただレスキューさんのスクリプトですので、パスの指定でうまく設定が出来るのではと思って質問させてもらっています。

https://***.securesites.com/ドメイン/cargo/cart.cgi';

代理店のSSLを流用する場合どうしても上記のようなアドレスの表現になってしまいます。
上記表現でのSSLの指定が出来なければcargは使えなくなってしまいます。
もちろん自信でベリサインの認証を取得すれば別ですが(年額9万くらいかかってしまいます)
現在は逃げてとして
sslもnonsslも下記URLを指定して、
https://***.securesites.com/ドメイン/cargo/cart.cgi';

フォームのページも

https://***.securesites.com/ドメイン/***.html
で記述しています

なにか方法がありませんでしょうか
宜しくお願いします。




回答者 呑兵衛@大阪  [削除]  投稿日 5/3(金) 23:18:01
では小さな手術をします。
過去ログで、$nossl を $ssl と同じ URI(https://) にすればよいと書いたのは私ですが、
少しでも負担を減らすべき、と再考しました。
$ssl に cookie データが渡らないので、$COOKIE{'CART'} を強制的に form で各サブルーチンに渡してやります。
命名「cookie 三段跳び」。

sub mado の

$all = @CARGO;
if ($all - $del == 0) { $empty =1; }
のうしろでも前でもいいので
$cookie_no = $COOKIE{'CART'};
を挿入

print qq#<center><form action="$nossl" method=POST target="_self">\n#;
print qq!<input type=hidden name="_action" value="info">\n!;
のうしろに
print qq!<input type=hidden name="cookie_no" value="$cookie_no">\n!;
を挿入

sub info の

<form action="$nossl" method=POST target="_self" name="FormC"> #action値変更してます
<input type=hidden name="_action" value="form">
<input type=hidden name="_area" value="$in{'area'}">
のうしろに
<input type=hidden name="cookie_no" value="$in{'cookie_no'}">
を挿入

sub form の

<form action="$nossl" method=POST target="_self" name="FormC"> #action値変更してます
<input type=hidden name="_action" value="cfm">
<input type=hidden name="_area" value="$in{'_area'}">
のうしろに
<input type=hidden name="cookie_no" value="$in{'cookie_no'}">
を挿入

sub cfm の

if (open(ORDER,"$tmp$COOKIE{'CART'}\.bk6")) { # かごの中身を読みこむ
の前で
if ($COOKIE{'CART'} eq '') { $COOKIE{'CART'} = $in{'cookie_no'}; }
を挿入
form の action 値 はここ sub cfm では変更しない。

setup.cgi の $ssl $nossl にそれぞれの URI を指定し、$path はデフォルトに戻す。
以上、小手術完了。
うまく行かなければ、どこが動かないかご報告ください。なんせ試してないので。
質問者 tom  [削除]  投稿日 5/4(土) 19:23:49
おせわになります。

試してみました
一応次の現象でした。

1.SSLがかからない
2.商品を削除してもクッキーが消えない

現在確認できたところは以上の通りです。

メールでUrlをお知らせしましたのでもしお時間があればご覧になってください
宜しくお願いします。
回答者 呑兵衛@大阪  [削除]  投稿日 5/5(日) 15:28:16
商品ページの <form action=xxxx が https:// になっているためですね。
それと、 sub form の action を $ssl に変更してください。
質問者 tom  [削除]  投稿日 5/5(日) 17:50:45
いつもお世話になっています。

<form action=http://とsub formのactionを$sslに変更しましたらクッキーのところはうまくいきました。

あと一つ気になるのですが、最終のご確認ページはSSLが利いているのですが、住所を入力するページがSSLが利いていません。
もしおわかりになれば宜しくお願いします。

回答者 呑兵衛@大阪  [削除]  投稿日 5/6(月) 14:17:26
sub info の action 値も $ssl に戻すことで対応できます。
質問者 tom  [削除]  投稿日 5/6(月) 18:43:37
いつもお世話になっています。

「cookie 三段跳び」ばっちりです。
ありがとうございました。

ひとつ質問ですが、

if (open(ORDER,"$tmp$COOKIE{'CART'}\.bk6")) { # かごの中身を読みこむ
の前で
if ($COOKIE{'CART'} eq '') { $COOKIE{'CART'} = $in{'cookie_no'}; }
を挿入
ですが、

if ($COOKIE{'CART'} eq '')

で判定しないで

いきなり
$COOKIE{'CART'} = $in{'cookie_no'}

としてはまずいのでしょうか。テストしてみましたらうまく動いています。
ひょっとして汎用性を高めるためでしょうか。











回答者 呑兵衛@大阪  [削除]  投稿日 5/8(水) 20:42:34
> ひょっとして汎用性を高めるためでしょうか。
単なる癖です。
質問者 tom  [削除]  投稿日 5/8(水) 22:39:06
おせわになります。
色々とありがとうございました。

このページは終了したので返信(回答)は書きこめません

Web裏技