[php] access violation

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb op google gezocht en hier effe gekeken.

Begrijp ik nou goed dat als je een acces violation krijgt dat dat aan van alles kan liggen. Ik bedoel, het hoeft dus niet aan mijn code te liggen, kan ook aan het feit liggen dat Xp icm php gebruik.

Dit is de fout die ik krijg:
PHP has encountered an Access Violation at 77F4B2AB
Nadat deze code wordt uitgevoerd:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start(); 
if(empty($_SESSION['username']) || empty($_SESSION['password'])){
header("Location: index.php");
die();
} else {
$open_mail=imap_open("{mail.home.nl:110/pop3}INBOX", $_SESSION['username'], $_SESSION['password']);
for($x=0;$x<sizeof($_POST['dmsg']);$x++){
imap_delete($open_mail, $_POST['dmsg'][$x]);
}
imap_close($open_mail, CL_EXPUNGE);
header("Location: mail.php");
die();
}
?>


De berichten die ik wil verwijderen met deze code zijn ook verwijdered maar als ik dan weer terug kom op mail.php krijg ik die fout.

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:51
Ga er maar van uit dat het aan jouw code ligt.

heb je al eens gedebugged? Ga eens na op welke exacte regel je die fout krijgt.

Een access violation betekent dat je leest of schrijft naar niet gealloceerd geheugen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hhmm ok,
Ik krijg die fout melding op mijn mail.php pagina te zien en daar onder staan de overige mails (die dus niet verwijderd zijn). Er wordt geen regelnr weergegeven . Het niet zo dat php een parse fout geeft ofzo.

Maar hoe kun je dan geheugen alloceren in php ( pointers maken is dat toch)???

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:51
Je kan natuurlijk eens door je programma heen stappen, ofwel schrijf je debug-lines weg waardoor je kan weten waar het crasht.

Ik zie dat je een array gebruikt, misschien ga je wel buiten de grenzen van die array.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

PHP:
1
2
3
$open_mail=imap_open("{mail.home.nl:110/pop3}INBOX", $_SESSION['username'], $_SESSION['password']); 
for($x=0;$x<sizeof($_POST['dmsg']);$x++){ 
imap_delete($open_mail, $_POST['dmsg'][$x]);

Je doet hier geen errorchecking op die imap_open call, en die zal dus een errorcode of null-value terugkrijgen als resultaat bij problemen. En blijkbaar is de imap_delete zo slecht geimplementeerd dat deze dat niet checkt, die probeert die structuur te belezen/schrijven... kaboom :)

Doe ALTIJD AAN ALLE MOGELIJKE ERRORCHECKING. Is that clear? ;)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmmm vaag....

Ik stuur nu net 3 test mail naar mij, en verwijder ik ze 1 voor 1 -> geen fout melding meer
Nogmaals 3 test mails en tegelijk verwijderd->geen fout melding

Ik vermoed toch dat het wat te maken heeft met IIS en php....

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
curry684 schreef op 21 October 2003 @ 10:47:
PHP:
1
2
3
$open_mail=imap_open("{mail.home.nl:110/pop3}INBOX", $_SESSION['username'], $_SESSION['password']); 
for($x=0;$x<sizeof($_POST['dmsg']);$x++){ 
imap_delete($open_mail, $_POST['dmsg'][$x]);

Je doet hier geen errorchecking op die imap_open call, en die zal dus een errorcode of null-value terugkrijgen als resultaat bij problemen. En blijkbaar is de imap_delete zo slecht geimplementeerd dat deze dat niet checkt, die probeert die structuur te belezen/schrijven... kaboom :)

Doe ALTIJD AAN ALLE MOGELIJKE ERRORCHECKING. Is that clear? ;)
Is begrijp het...Ik moet idd nog bij een aantal acties wat error afhandeling codes schrijven.
Ik was alleen nog niet zover...

Maar alleen wel vaag dat de rest van de code wel uitgevoerd wordt als mijn imap_delete() een fout veroorzaakt

Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

whoami schreef op 21 October 2003 @ 10:39:
Ga er maar van uit dat het aan jouw code ligt.
Ook dan is het een PHP bug. 't behoort geen segv te geven, ongeacht wat het voor PHP code is.
Gewoon netjes melden dus :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb alle dll files php opnieuw gekopieerd op advies van bugs.php.net. Helaas is het niet opgelost.

Maar ik zet te denken.... :)
Als de fout vanuit php komt, is het niet mogelijk om php zo te configgen dat dit soort fouten niet worden weergegeven. (iets van safe mode oid)??? En php dan forceren dat het script verder uitgevoerd wordt. Dit om het probleem wat verder te kunnen analyseren

Acties:
  • 0 Henk 'm!

  • klinz
  • Registratie: Maart 2002
  • Laatst online: 17-09 15:24

klinz

weet van NIETS

whoami schreef op 21 oktober 2003 @ 10:39:
Ga er maar van uit dat het aan jouw code ligt.

heb je al eens gedebugged? Ga eens na op welke exacte regel je die fout krijgt.

Een access violation betekent dat je leest of schrijft naar niet gealloceerd geheugen.
Dat mag natuurlijk nooit vanuit een scripttaal. Het is gewoon een bug in de scriptinterpreter.
Pagina: 1