2012-02-01 39 views
1

需要一點幫助。codeigniter:如果表單有效,請將表單提交給不同的網址

我有一個表單,我正在使用codeigniter中的「form_validation」庫進行驗證,顯然表單操作指向自己進行驗證(因爲它應該),但我需要提交到外部URL,與發佈數據包括,如果驗證成功。

CURL不是一個選項,因爲我需要用戶也被重定向到該頁面和GET方法也不是一個選項,因爲數據需要張貼!

它幾乎需要一個函數,如PHP redirect(),您可以附加一個數組數據到。

理想的世界= redirect('https://payment.bank.com', 'method: POST', $data_array);

如果沒有辦法做到這一點我可能去創造它,但想先問這個問題之前,我去重新iventing車輪(它也將需要相當長的時間,我猜)

編輯:也請注意JavaScript也不是一個選項,因爲該網站需要使用或不使用JavaScript啓用!!!!!

回答

1

這是不可能的,你描述它,由於PHP是服務器端,這將是SERVER提交的數據,而不是用戶,所以重定向到的數據是不可能的方式。

您可以CURL數據,然後根據來自外部服務器的'參考'重定向(比如提交ID)。

但是最簡單的方法是做到這一點:

  • 驗證像你的數據在做,現在
  • 裝入一個新的表單頁面與所有的數據加載&隱藏在一種新的形式
  • 新加載的表單頁面會說「驗證,點擊以繼續,如果你沒有自動重定向」(這將提交表單),在這一點上使用Javascript提交/重定向,或作爲後備人員會點擊按鈕。
  • 然後數據首先由您進行驗證(捕獲/修改/增加),然後準備好以極小的延遲傳輸到外部主機。

請記住,如果你正在做的一個帖子這樣未經允許,外國後可能有跨域提交檢查(比如abc.com不允許提交xyz.com)。

希望有所幫助。

+0

Ahhhhh閱讀你的評論引發了我的頭腦,我們需要重定向到的銀行可以發送一個令牌回到CURL函數,我可以在重定向的GET VAR中使用,我會忘記如果我沒有閱讀你的文章,有時很容易過度設計一個問題。乾杯夥計 – DuDeX 2012-02-01 18:11:52

+0

很高興它的工作,有時只是寫出你的問題,我發現可以幫助你得到正確的答案。 – Jakub 2012-02-01 18:18:20

0

你可以使用阿賈克斯我猜。在後臺提交您的表單進行驗證。如果有效,使用JavaScript重新提交相同的形式到外部網址。

+1

是的,這是唯一的解決方案,我可以拿出來,但我的客戶需要該網站使用或不使用JavaScript的工作(痛苦的屁股,如果你問我,如果你有JavaScript禁用你不應該使用互聯網,只是我的意見) – DuDeX 2012-02-01 17:17:07