2011-04-06 75 views
0

我希望能夠將一個名爲$ connection的Imap文件從1個php文件傳遞到另一個使用Jquery的PHP文件。問題是,它沒有作爲對象傳遞,它被轉換爲一個名爲資源#54的字符串 - 是否有任何可能的方式將Imap Connection對象傳遞給另一個PHP文件?我真的需要保持這種連接的開放性,因爲如果我反覆關閉它並打開新的連接,Hotmail和Yahoo等提供商將我們鎖定15-30分鐘。如何將PHP Imap庫中的Imap連接從PHP/JQuery傳遞到PHP文件

這裏是我當前的代碼jQuery的W的混合/ PHP變量:

var dataString='server=<?php echo $server; ?>&email=<?php echo $email_address; ?>&connection=<?php echo $connection; ?>&password=<?php echo $password; ?>&server=<?php echo $server;?>&daysago='+daysago+'&num='+num; 
    $.ajax({ 
     type: "POST", 
    url: "fastsearch.php", 
    data: dataString, 
    success: function(msg){ 

是否有可能或設想,這個變量傳遞給使用jQuery或jQuery的比其他的東西一個PHP文件?如果不是,我的解決方法有哪些選擇?是否可以在不結束PHP文件的情況下顯示結果?

這裏有imap_open &的IMAP流對象的更多信息:

http://www.php.net/manual/en/function.imap-open.php

回答

0

你不能「通過」腳本之間的連接,以便之後完成沒有提及,因爲它們是在單獨的服務器進程催生它。你需要做的是使用pfsockopen開拓到IMAP服務器的持久連接:

$f = pfsockopen('an.imap_server.com', 143) 

然後,您將構建由手工必要的IMAP命令,並使用fputs張貼到打開的連接:

$query = 'LOGIN ' . strlen($user) . "}\r\n" . $user ... 
fputs($f, $query) 

等等。

+0

謝謝你所以你知道我會怎麼做與imap?因爲我需要輸入用戶名和密碼。以下是我使用的常用語法:\t $ connection = imap_open($ server,$ login,$ password); – 2011-04-06 05:28:44

+0

此外,我認爲pfsockopen()是我應該尋找的功能,而不是fsockopen() – 2011-04-06 05:30:12

+0

@bob更新了答案 – Wes 2011-04-06 05:45:15

0

您不能在不同的PHP腳本實例之間傳遞資源。

Wes的答案是正確的 - 但請閱讀討論。

如果是我,我會使用守護進程/預定作業來獲取郵件 - 雖然您可以使用PHP編寫自己的郵件,但我只需使用fetchmail和cron即可從遠程系統獲取郵件,它在本地郵箱中或通過procmail提供。