2012-04-11 89 views
1

我有一个codeigniter应用程序,通过authorize.net有一个结帐系统。我使用authorize.net库瓶坯卷曲进行付款,但完成后我不能重定向因为重定向后卷曲不工作

headers already sent by (output started at /Users/phil/Sites/Medbridge/httpdocs/application/libraries/AuthorizeCimLib.php:1 

这是日志说什么。如果我注释了付款事情,它将重定向罚款。我不知道我是否不理解卷曲,这就是为什么它正在做某些事情,或者如果我需要更改一些卷曲设置。
谢谢

编辑
这里是链接到我使用的图书馆,这是很大的,不想重新发布整个代码
http://www.communitymx.com/content/article.cfm?page=4&cid=FDB14

这里是卷曲部分,也许有人可以看到,如果这是做输出到头部

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $this->_url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml")); 
    curl_setopt($ch, CURLOPT_HEADER, FALSE); 
    curl_setopt($ch, CURLINFO_HEADER_OUT, FALSE); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_xml); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $this->_response = curl_exec($ch); 

谢谢

+0

正如错误所述,标题前没有输出。 – 2012-04-11 04:16:35

+0

我看到了,是卷曲考虑输出呢? – Phil 2012-04-11 04:21:47

+0

确保在开始之前没有空格<?AuthorizeCimLib.php文档顶部的PHP标记 – Scuzzy 2012-04-11 04:29:13

回答

0

也许您可以使用AJAX发出付款通话,获取响应并使用Javascript重定向?

+0

我会考虑做一个ajax调用,这可以解决很多问题,唯一的想法我不喜欢用ajax调用浏览器(IE)的问题 – Phil 2012-04-11 06:49:47

+0

只是确保你使用jQuery :) – marknatividad 2012-04-11 09:33:44

1

这是因为服务器已经输出了一些东西给你的浏览器,并且之后不能通过php重定向。

正如在评论中提到的,你最有可能在你的代码中包含一些空白。对于练习和较少的故障排除,您不需要在php文件的底部包含结尾?>。这根本不是必需的,有时可能会在执行代码期间导致回声的?>之后结束一个空格。

您是否include代码中的任何文件可能在文件末尾有

另一种 “解决方案”,如果你可以,是为了呼应

<script type="text/javascript"> 
    top.location = '<?=$str_redirect_url?>'; 
</script> 

编辑:

如果您使用笨,你应该检查你modelhelperlibrary文件空格。