[PHP] Geen error/output met imap_open

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Hallo allemaal.
Ik ben bezig met het uitlezen van een pop3 account mbv PHP. Hiervoor wil ik de functie imap_open gebruiken. Zodra ik deze functie gebruik, wordt niets meer geparsed naar de browser. Hierdoor zie ik ook geen foutmelding. Als ik een echo ervoor of erna zet, wordt zelfs deze niet weergegeven. Ik heb de error reporting al op ALL staan, maar dit helpt niets. Het verbaast me ook dat de pagina echt helemaal leeg blijft, zoda de functie ergens op de pagina wordt aangeroepen. Heeft een van jullie wellicht een oplossing? De probleem is vergelijkbaar met [PHP] imap_open voorkomt parsen pagina?? .

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Gebruik eens als je wilt achter imap_open
PHP:
1
imap_open("{imap.example.org:143}", "username", "password"); or die(print_r(imap_errors()));
.

Ik denk dat het een kwestie is van goed kijken waar je een kleine fout hebt gemaakt, gebruik eventueel php.net voor meer informatie.

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Helaas blijft de output niets. Alleen wanneer ik volkomen onzin bij de SERVER neerzet, dan pas krijg ik een error. Ik ben inmiddels al tientallen mensen tegengekomen die hetzelfde probleem hebben. Tot zo ver heb ik nog geen oplossing kunnen vinden.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

Verwijderd

staat display_errors wel op 'On'?

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
error_reporting(E_ALL);
Dat zou toch moeten voldoen? Het vreemde is dus ook dat er niets wordt uitgespuugd voordat ik de imap_open aanroep. Zodra die functie ergens in de code voorkomt, is de output direct niets.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

Verwijderd

wcduck schreef op zondag 24 mei 2009 @ 20:40:
error_reporting(E_ALL);
Dat zou toch moeten voldoen? Het vreemde is dus ook dat er niets wordt uitgespuugd voordat ik de imap_open aanroep. Zodra die functie ergens in de code voorkomt, is de output direct niets.
Nee, als display_errors op Off staat zie je alsnog geen foutmeldingen

Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Kun je de IMAP code apart nemen zodat het niet onderdeel is van een groot geheel (of heb je dat al?) en de code hier posten. Heb je eventueel toegang tot logs? Het is mogelijk dat PHP bijvoorbeeld crashed omdat er iets fout gaat met library's, in zo'n situatie is het ook mogelijk dat je met geen mogelijheid meer output krijgt (niet zo gek opzich ;)).

[edit] En bovenstaand :+, soms kunnen problemen erg voor de hand liggend zijn en soms niet ;)...

[ Voor 12% gewijzigd door PowerSp00n op 24-05-2009 20:43 ]


Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op zondag 24 mei 2009 @ 20:41:
[...]

Nee, als display_errors op Off staat zie je alsnog geen foutmeldingen
Zowel lokaal als master staat display_errors op on. Dat kan het dan niet zijn. Ik zag zelfs dat iemand op php.net er problemen mee had. Hij had er iets op gevonden, maar helaas werkte dat bij mij niet.

Wat betreft mijn complete code: het is gewoon een leeg bestand met alleen daarin de imap_open functie. Een echo ervoor en een echo erna. That's it. Geen van de echo's worden geparst.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

Verwijderd

Wat als je de timeout van de imap connectie kort maakt? Wellicht dat deze nu langer is dan de maximum_execution time van je php script?

Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

En hoe staat het met je logs dan? Op deze manier is het gissen naar het probleem dat je hebt, we hebben echt wat meer informatie nodig. Gelijksoortige problemen die je op internet tegen komt heb je op deze manier ook nog weinig aan omdat je geen idee hebt of het daar aan gerelateerd is.

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Daar had ik nog niet aan gedacht. Toch bleek het ook hieraan niet te liggen. Het script stopt gewoon direct wanneer het wordt uitgevoerd, zodra hij ziet dat dat de functie erin staat. Ter controle heb ik de timeout van de imap naar 1 sec gezet. Geen resultaat. Ik krijg nog steeds geen foutmeldingen.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
PowerSp00n schreef op zondag 24 mei 2009 @ 21:21:
En hoe staat het met je logs dan? Op deze manier is het gissen naar het probleem dat je hebt, we hebben echt wat meer informatie nodig. Gelijksoortige problemen die je op internet tegen komt heb je op deze manier ook nog weinig aan omdat je geen idee hebt of het daar aan gerelateerd is.
Ik heb de logs zojuist bekeken. Er staan hooguit een paar aanroepen naar bestanden in die niet bestaan. Deze komen niet eens van mij vandaan, en zijn niet van de afgelopen uren.

Ik kan er nog steeds niet bij dat het parsen blijkbaar niet op volgorde wordt gehandeld. imap_open heeft echt een verwoestend effect.

Mocht dit niet werken, zijn er dan nog andere methodes om de email te openen?

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

Verwijderd

Heb je niet een google mail account zodat je even je imap_open kan testen?

Acties:
  • 0 Henk 'm!

Verwijderd

Probeer 's iets als (geleend vanPhpDlg.net):
PHP:
1
2
3
4
5
// note the use of /pop3 and the port number
$imap = imap_open("{pop.mycompany.com:110/pop3}INBOX", $user, $pass);
if (!$imap) {
   print_r(imap_errors());
}

Wat ik hieruit opmaak is dat imap_open geen PHP error throwt maar gewoon niks returnt als er iets misgaat, en je dus niets aan E_ALL of 'or die' hebt. Daarvoor moet je blijkbaar imap_errors() gebruiken.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op zondag 24 mei 2009 @ 23:08:
Probeer 's iets als (geleend vanPhpDlg.net):
PHP:
1
2
3
4
5
// note the use of /pop3 and the port number
$imap = imap_open("{pop.mycompany.com:110/pop3}INBOX", $user, $pass);
if (!$imap) {
   print_r(imap_errors());
}

Wat ik hieruit opmaak is dat imap_open geen PHP error throwt maar gewoon niks returnt als er iets misgaat, en je dus niets aan E_ALL of 'or die' hebt. Daarvoor moet je blijkbaar imap_errors() gebruiken.
Als 'or die' hier niet zou werken zou de echo() die TS achter imap_open heeft staan gewoon uitgevoerd moeten worden; toch?

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op zondag 24 mei 2009 @ 22:30:
Heb je niet een google mail account zodat je even je imap_open kan testen?
Ik heb geprobeerd gmail en een andere pop3 account te openen. Hetzelfde resultaat: zodra de functie in het bestand staat, gebeurt er niets.

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Doe eens
PHP:
1
2
3
4
if(!function_exists('imap_open'))
    echo 'Imap module niet geactiveerd';
else
    echo 'hmm.. blijft vreemd';

On track


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Als je echo's niet worden uitgevoerd is er echt iets mis in je code. Plaats eens de volledige code, ook al zijn het maar 3 regels.

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
WouZz schreef op maandag 25 mei 2009 @ 13:40:
Doe eens
PHP:
1
2
3
4
if(!function_exists('imap_open'))
    echo 'Imap module niet geactiveerd';
else
    echo 'hmm.. blijft vreemd';
Dit had ik reeds geprobeerd: het is geactiveerd. Toch bedankt voor het meedenken. Wat betreft de code:
PHP:
1
2
3
4
5
6
7
echo "ervoor";

$username = "blaat";
$pasword = "blaaaat";
$box = imap_open("{server.nl:110/pop3/notls}INBOX", $username, $pasword);

echo "erna";

Wat ik voor de rest heb geprobeerd:
- port en pop3 omgedraaid
- localhost bij server
- ip bij server
- een andere pop3 of imap server
- dingen als notls en andere opties die bij anderen af en toe wel werkten
- met en zonder INBOX erachter
- de username (volledige emailadres) en het wachtwoord gewoon ingetypt in plaats van in een variabele zetten. Uiteraard met aanhalingstekens.
- allen imap open zonder het in een variabele te stoppen

[ Voor 3% gewijzigd door wcduck op 25-05-2009 13:56 ]

I don't suffer from insanity, I enjoy every minute of it.


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
En als je regel 5 weglaat uit je code, krijg je dan wel "ervoorerna" als uitvoer?

Acties:
  • 0 Henk 'm!

  • wcduck
  • Registratie: September 2000
  • Niet online
HuHu schreef op maandag 25 mei 2009 @ 13:59:
En als je regel 5 weglaat uit je code, krijg je dan wel "ervoorerna" als uitvoer?
Dan krijg ik wel de output ja. Ik ben erachter gekomen dat wanneer ik bij het server gedeelte van de functie iets compleet onzinnigs zet, zoals STRONT, dan krijg ik wel een foutmelding. Bij stront.nl als server niet (of een ander domein dat niet bestaat).

I don't suffer from insanity, I enjoy every minute of it.

Pagina: 1