1

私は OpenCart ベースの e コマース Web サイトに取り組んでおり、URL で渡された変数を非表示にする方法を知りたいです。私がこれをしたい理由は、成功したトランザクションの最後に顧客が請求書を印刷できるようにするためであり、URL の構造は次のとおりです:-

http://www.mywebsite.com/invoice/standard&order_id=1000010

ここで、order_idの最後の値を他の値に変更したり、他の数字を変更したりすると、その注文番号の請求書が表示され、そのorder_idが別の顧客に属している場合は、その詳細が表示されます。このお客様に。

だから今私が知りたいのは、このURLを暗号化し、サーバー側で復号化して、ユーザーorder_idを表示せずにリクエストを完了する良い方法があるということです。

さらに情報が必要な場合はお知らせください。質問に追加してみます。

4

4 に答える 4

2

実際にこれを行う必要はありません。代わりに、モデル/DB ファイル内でその請求書のログイン ユーザーを検証する必要があります。

例えば....

現状では、DB クエリは次のようになります。

    $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = `" . (int)$order_id . "`");

customer_id も確認する必要があります。

    $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = `" . (int)$order_id . "` AND customer_id = '" . (int)$this->customer->getId() . "'");

請求書の所有者がその顧客でない場合、結果は見つかりません。

于 2013-10-05T16:54:57.923 に答える
1

これは標準機能ではないため、拡張機能の開発者に連絡する必要があります。ストアでゲスト チェックアウトが許可されている場合、URL には何らかのランダム キー、または注文に添付された電子メール アドレスが含まれている必要があります。注文が登録ユーザー向けである場合、注文にcustomer_id割り当てられた は現在ログインしているユーザーに対して検証され、ユーザーがログインしていない場合はログインにリダイレクトされます。

于 2013-10-04T02:38:12.957 に答える