Ustawienie raportowania na E_ALL wyrzuciło parę błędów.
Jednak więcej w FF niż w IE. W obu przypadkach szereg "Undefined index" i "Undefined variable".
Nie wydają się mieć związku z tematem i raczej nikomu poza mną nic nie powiedzą ale wklejam dla większej przejrzystości:
Kod
Notice: Undefined index: 1 in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 207
Notice: Undefined variable: scriptString in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 215
Notice: Undefined variable: stylesheetString in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 236
Notice: Undefined variable: conditionalStylesheetString in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 257
Notice: Undefined index: enabled in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 282
Notice: Undefined variable: keyboard in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 347
Notice: Undefined variable: popup in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 348
Notice: Undefined variable: systemMessage in F:\xampp\htdocs\edu\common\abstract\class.display.php on line 352
Notice: Undefined variable: code in F:\xampp\htdocs\edu\common\classes\class.breadcrumb.php on line 72
Natomiast zastanawia mnie jedno. Dlaczego te błędy pojawiają się tylko właśnie przy usuwaniu pytań. Wysłałem parę innych formularzy. Część z nich polegająca na usuwaniu innych obiektów z bazy i tych błędów nie było.
Edit: już wiem czemu tylko przy usuwaniu pytań się pojawia, bo w złym miejscu dałem

Poprawiłem i teraz błędy są już wszędzie.
-----------------------------------------------------------------------------
Podsumujmy zatem naszą arcyciekawą (dzięki IE) sytuację:
Aplikacja wchodzi w tejże "przeglądarce" (7/8) prawidłowo do funkcji deleteQuestion i do bloku warunkowego if. Gdy już wejdzie do bloku if to w poniższym kodzie die() przerwie działanie.
public function deleteQuestion ($id)
{
{
unset($this->_questions
[$id]); #problematyczna linia
#usuniecie pytania z bazy
$this->dbm->deleteQuestion($id);
return true;
}
return false;
}
Natomiast tu już nie przerwie:
public function deleteQuestion ($id)
{
{
unset($this->_questions
[$id]); #problematyczna linia #usuniecie pytania z bazy
$this->dbm->deleteQuestion($id);
return true;
}
return false;
}
To die() w tym drugim przypadku wykonuje się ale jakby tylko na poziomie funkcji deleteQuestion(). Nic po tej instrukcji już się nie wykona, czyli:
#usuniecie pytania z bazy
$this->dbm->deleteQuestion($id);
return true;
nie zostanie wykonane. Natomiast poza funkcją deleteQuestion kod okazuje się dalej wykonywać jakby tego die() nie było w ogóle.
Funkcja deleteQuestion na 100% wykonuje się raz!
Raportowanie błędów na poziomie E_ALL nie wykazało istotnych błędów.
edit-----------------------------------------------------
Problem zostawiam nierozwiązany bo odkryłem, że problem występuje tylko lokalnie - u mojego providera nie. Obsługę IE7 wyłączam 1 stycznia 2012 a IE8 1 stycznia 2013 - a do tego czasu pozostanę najprawdopodobniej u tego providera.
Ale włos się się jeży na myśl co to microsoftowskie g**no potrafi.