2012-04-11 138 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文件空格。