2012-04-14 69 views
0

我在我的網站上有一個銷售頁面,我正在嘗試配置。curl in php,iframe and forms

支付過程我想釘是這樣的:

銷售頁面加載,在IFRAME信息的形式,客戶填寫表格,點擊提交 - 那麼只有IFRAME然後重新加載......並導致第二iFrame(這是支付處理IFRAME)

一旦付款成功,客戶發送(仍在iframe中),以一個成功的支付頁面。支付處理器會在url中添加一些額外的字符串,然後將其編譯成消息並作爲電子郵件發送給我。

我可以成功地創建並調用形式iframe和付款處理器 - 但如何將二者連接掙扎,並創建第三。

任何幫助,將不勝感激 - 我是一個PHP的學習者和打發自己在深結束,提前讓抱歉的!

是否有可能在一個php頁面內完成這一切,或者我嘗試最好的方式?

謝謝

回答

0

iFrames從來不漂亮。爲什麼不使用AJAX實現與iframe相同的結果?

如果你想使用iFrames,你到底有什麼困難? url變量的傳遞?

編輯:

您應該能夠通過iframe標準URL格式來傳輸您的變量:

<iframe src="landing_page.php?var=str&var2=str2" name="frame_name"></iframe> 

然後「landing_page.php」可通過與「得稱他們訪問這些變量「方法:

<?php 
     echo $_GET['var']; 
     echo $_GET['var2']; 
?> 

或者,因爲你通過點擊(我認爲)改變iframe是,你可以通過達到同樣結果的鏈接:

<a href="landing_page.php?var=str&var2=str2" target="frame_name">Click to load new iframe</a> 

而「landing_page.php」可以使用與之前相同的方法訪問。

但是,我仍然推薦使用AJAX,因爲iframe幾乎已經過時並且不必要。我還沒有遇到任何關於AJAX和瀏覽器兼容性的問題。如果這是您想要的路線,我會建議您使用jquery library來快速啓動並運行。如果您對此感興趣,或者仍然對iframe有問題,請告訴我。

編輯2:

所以它看起來像你應該仍然能夠訪問這些網址使用PHP $ _GET方法您的確認頁乏,然後使用mail發送電子郵件。下面是一個例子(替換URL中的實際變量名稱爲我做了的):

//retrieve 'email' var from url 
$to = $_GET['email']; 

//enter title of email 
$subject = 'Your Payment Confirmation'; 

//create your message and retrieve 'name' and 'amount' var from url 
$msg = "Thank you, ".$_GET['name']."! Your payment of ".$_GET['amount']." 
     was approved!"; 

//if you want to have a custom "FROM" in the email header 
$headers = 'From: [email protected]'; 

//send mail to customer 
mail($to,$subject,$msg,$headers); 

//send to yourself as well 
mail('[email protected]',$subject,$msg,$headers) 

注意:如果你是在本地主機上測試這一點,你將需要啓用本地服務器上的郵件功能或否則郵件將不會發送。

編輯3:

使用explode用分號作爲分隔符來解析注意變種。然後您將獲得一系列值。例如:

//explode the note var from url 
$vars = explode(';', $_GET['Note']); 

//echo values of $vars array 
for($i=0; $i<count($vars); $i++) { 
     echo $vars[$i]. '</br>'; 
} 
+0

嗨,感謝您的快速回復。我使用的是內聯框架,因爲我更熟悉他們,然後ajax。 ajax是否適用於所有瀏覽器?我在表單和付款處理iframe之間傳遞變量以及將url變量傳輸到確認電子郵件時遇到困難。再次感謝 – user1332723 2012-04-14 02:17:14

+0

非常感謝,非常有幫助和完整的答案! 我肯定會在稍後嘗試AJAX方法,但是我首先想嘗試指定iframe方法,因爲我認爲我快到了。我該如何做與你所說的相反的內容,並在php的末尾輸入一些值,然後使用curl動態獲取支付處理給出的新url,然後刷新當前頁面上的iframe付款處理提供的新網址? – user1332723 2012-04-14 15:19:39

+0

如果我的理解正確,用戶輸入他/她的付款信息,點擊提交,然後你想要把這個信息扔到一個url的末尾(即payment_confirmation.php?var = str) iframe到付款確認頁面,您將通過訪問這些網址變量向您發送電子郵件。如果是這種情況,爲什麼不直接在payment_processing頁面上使用

,action =「payment_confirmation.php」method =「get」?然後,payment_confirmation.php可以使用與上面相同的get方法訪問輸入變量。 – 2012-04-14 16:31:26