2011-12-26 8 views
0

ユーザーをチェックアウトページにログインさせる必要があり、ページを更新する必要はありません。私はログインペインをセットアップし、Ajaxを使ってサーバーに送信し、それらを認証します。 - しかし、ユーザーがチェックアウトフォームの残りの部分を完了すると、このログインプロセスの後、エラーが言ってあります:私がログインしたとき、そうでない場合Ubercart - チェックアウトページのログインユーザー

Validation error, please try again. 
If this error persists, please contact the site administrator. 

をして、ページを更新し、だけにしてチェックアウトフォームを提出 - なし問題。私はページをリフレッシュするときに、私がチェックアウトが正常に完了するために欠けているものを、ユーバーカートがやっていると仮定します...これらのものは何ですか?

EDIT:大丈夫ですので、私は突っ込んだ。これら二つの機能が見つかりました:

uc_cart_checkout_form_validate

uc_cart_checkout_form_submit

私はいくつかのテストを行ってきたと_validateが呼び出されますが、_submitが呼び出されませんを発見しました!どのようにすることができますか?

EDIT2:okだから、何かが検証エラーを設定していることがわかりましたが、何が分かりません。私は完全にuc_cart_checkout_form_validateのすべてのコードをコメントアウトし、チェックアウトフォームに関連付けられた他の検証関数がないことを二重にチェックしました。

uc_cart_checkout_form_validateの始めに私はセッション変数をチェックし、エラーがあります。誰がそれを置くか???

誰もがこの質問に到達するために起こると答え何不思議場合、私はそれを得たのDrupal 6、ubercart 2

答えて

0

を使用して:匿名ユーザーは、チェックアウトフォームを記入する際

一切の$ _REQUESTはありません[ 'form_token']。認証されたユーザーのために - あります!

とにかく、チェックアウトフォームでユーザーにログインして送信しようとすると、フォームが作成されたときにフォームトークンはありませんが、フォームが送信されるとログインしたユーザーがいるのでフォームトークンを探し、見つからない。そのため、フォームは検証されません。

とにかく私のためのソリューションが_form_alterにこれを追加しました:

if ($form_id == 'uc_cart_checkout_form') { 
    unset($form['#token']);   
} 
関連する問題