0

最近サーバーを移動しましたが、移動後、支払いモジュールに問題が発生しています。PHP 5.2 から PHP 5.4 に移行しました。

支払いを処理するために xcart に Realex 支払いモジュールがインストールされています。チェックアウト中、ユーザーは支払いの詳細を入力するために安全なサイトに送られ、支払いは処理されますが、エラーが発生します。商人のウェブサイトへ

Realex から、302 リダイレクトが問題の原因であることが通知されました。このリダイレクトを引き起こすための対策は何もありません。

以下は、realex から受信したログです。

27.08.2013 17:02:18 carbonaction $response_uri = https://www.energysavingwarehouse.co.uk/store/payment/cc_realex_redirect.php 
27.08.2013 17:02:18 carbonaction $num_remaining = 0 
27.08.2013 17:02:18 carbonaction $client_return_url = https://www.energysavingwarehouse.co.uk/store/payment/cc_realex_redirect.php 
27.08.2013 17:02:18 carbonaction $num_remaining = 0 
27.08.2013 17:02:18 carbonaction Return URL: https://www.energysavingwarehouse.co.uk/store/payment/cc_realex_redirect.php 
27.08.2013 17:02:18 carbonaction Client Host: www.energysavingwarehouse.co.uk 
27.08.2013 17:02:18 carbonaction Client URLs: store/payment/cc_realex_redirect.php 
27.08.2013 17:02:18 carbonaction ..start POST request, UserAgent timeout set to 180 seconds.
27.08.2013 17:02:20 carbonaction ..end POST request, UserAgent returned the status: 302 Moved Temporarily
27.08.2013 17:02:20 carbonaction Error connecting to client site:Moved Temporarily

これは古いサーバーで問題なく動作します。最近 vps に移動しました。ここで潜在的なサーバー構成の問題が発生する可能性がありますか?

ご協力いただきありがとうございます。

リアム

4

1 に答える 1

0

リダイレクトにアクセスhttps://www.energysavingwarehouse.co.uk/store/payment/cc_realex_redirect.phpすると、 に302バウンスし../ます。これはおそらく、aGETではなく aを実行していて、フィールドPOSTがないためです。POST

POST新しいバージョンの PHP にアップグレードした場合、構成が変更され、コードがすべてのフィールドを見つけられなくなった可能性があります。以前$HTTP_POST_VARS[]は問題ありませんでしたが、現在は を使用する必要$_POST[]があります。各POSTフィールドの変数 - たとえば、値name=Owenを持つ変数を自動的に作成します。特に、このオプションは 5.4.0 で完全に削除され、以前は宣言していなかったいくつかの状況で、変数を明示的に宣言する必要があります ( http://php.net/manual/en/security.globals.phpを参照)。$nameOwenregister_globals

コードをチェックインして、リダイレクトcc_realex_redirect.phpをトリガーするシナリオを確認できますか? 302これは次のようになります。

header('Location: ../');

次に、ログを追加して、すべてのPOSTデータが正しく取得されていることを確認します。これにより、解決策が導かれるはずです。

于 2013-09-04T08:24:13.813 に答える