2012-04-14 81 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