CGI-BBS > SO−HO > ショッピングバスケット > プロ6の最終画面で金額等をクレジット決済へ引き渡したい。


カレッヂ
カレッヂ


質問者 キク  投稿日 10/11(金) 21:26:44
http://www.rescue.ne.jp/CGI-BBS/soho/cargo/20020323203731.shtml
の質問と似ています。

最終画面から「e-mailアドレス」以外のパラメーターを
決済リンク先に渡せなかったので
「最終のご確認」の「送信」ボタンへリンクを貼りました。

<FORM NAME="UserForm" ACTION="https://リンク先" METHOD="post" target="_blank">

(OS:windows2000 ブラウザー:MSIE6)からでは
オーダー処理もでき、リンク先へも値を渡せるのですが、
(OS:Windows98/MacPowerPC ブラウザー:MSIE5)からですと
クレジット決済へ値は渡せますが、
オーダー処理の<onClick="Ok()">が無視されてしまいます。

本来ならば、
オーダー処理完了→クレジット決済へリンク
としたかったのですが、解りませんでした。
最終画面からでは
値を取り出すことはできないのでしょうか?
ヒントだけでも頂けたら助かります。
お手数お掛けしますが、宜しくお願い致します。

プロバイダ参照:http://www.wbs.ne.jp/biz/manual/domain.htm
サーバのOS:不明
パソコンのOS:WinNT系
エディタ:秀丸
FTPソフト:FFFTP
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:beginner

回答者 呑兵衛@大阪  [削除]  投稿日 10/16(水) 16:02:02
> <FORM NAME="UserForm" ACTION="https://リンク先" METHOD="post" target="_blank">
NAME の属性値"UserForm"は header の JavaScript と同じですか?
(function Ok() { document.UserForm.submit(); } になってますか?)
                          ^^^^^^^^
あるいは
<form>
なんやかんや
<form>
なんやかんや
 onClick="Ok()"
</form>
なんやかんや
</form>
のような処理をされていませんか?</form> 以前に別の処理をする<form></form>を置く事は出来ません。

最終段階ではリスト @in に入っている値を展開しています。
@in はcart.cgi 初段のデコード部分で
if ($key !~ /^_/) { push(@in,"$key\t$val"); } # なお、ラベル名の頭が_の場合はコマンド
    if ($key eq ".") {
        $l = $val;
        $orders .= "," if (defined($orders));
        $orders .= $l;
        push(@in,".$t$val");
    }
のようになっています。研究してください。
質問者 キク  [削除]  投稿日 10/26(土) 22:55:16
呑兵衛@大阪様

回答ありがとうございました。
やはり最終画面から値を取り出したいと思います。
教えて頂いた箇所を見直したのですが、
どうしても、任意の値を取り出す方法が解りません。
@in(もしくは@order)から
 ・商品名(一つのみでも可。ただし $1$*xxxx円 を除く)
 ・合計金額の数字部分のみ
の2つだけを指定する方法はあるのでしょうか?
プログラムを大幅に見直さなければ
不可能なのでしょうか?
度々申し訳ありませんが、
何卒宜しくお願い致します。
回答者 呑兵衛@大阪  [削除]  投稿日 10/26(土) 23:35:13
sub cfm をよく見て研究して下さい。
カゴに入っている商品データは ($code,$name,$fee) = split(/\t/,$_,3);
によって分解され、HTML出力されるデータに配列され、再び、顧客情報と共に@hidden に集められた後
foreach (@hidden) {
($key,$val) = split(/\t/,$_,2);
print "<input type=hidden name=\"$key\" value=\"$val\">\n";
}
によってデコード部分で リスト@in か、連想配列 %in ($in{$key} = $val;) に集められます。
要は目的のラベルに何らかのフラグを立てて、識別できるようにすればいいのです。
これ以上の解説は、ちょっぴり解説 Rescue.cgi をご覧ください。
なおシェアウェアーコードを取得されていない場合と、アダルトサイトの場合
これ以上の回答は私はできません。
質問者 キク  [削除]  投稿日 10/30(水) 23:32:41
呑兵衛@大阪 様

「ちょっぴり解説 Rescue.cgi」の
カスタマイズ事例を参考にさせて頂きながら
挑戦しているところです。
本当にありがとうございました。

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

Web裏技