Fatal Error nach doppeltem Absenden eines Formular

Das Forum ist für das Melden von Bugs gedacht. // This forum is intended to report bugs with the APF.
Gesperrt
Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Fatal Error nach doppeltem Absenden eines Formular

Beitrag von dave » 07.05.2013, 17:55:52

Hallo zusammen,

ich habe mir mal wieder ein paar Minuten genommen und eine Passwort vergessen und Passwort ändern Funktion für eines meiner Projekte erstellt. Soweit ist alles bestens.

Ich habe mir nun mal den Spass gemacht und ein Formular, welches ich bereits abgesendet habe und auch erfolgreich verarbeitet wurde, anschliessend nochmal abgesendet, allerdings die enthaltenen Daten nochmal abgeändert. Ich habe die Seite nicht nochmal neu geladen, die Formularfelder waren noch mit den Eingaben aus meinem vorherigen Aufruf gefüllt.

Bei der Aktion kam es dann zu einem Fatal Error: damit kann ich allerdings mal gar nichts anfangen und ich poste das einfach mal stur hier rein, vllt. bringt es ja jemand anderem etwas:
Meldung vom APF:
Argument 1 passed to GenericORRelationMapper::saveObject() must implement interface GenericORMapperDataObject, instance of __PHP_Incomplete_Class given, called in /is/htdocs/wp1177661_MI1CO4T11E/www/apf/modules/genericormapper/data/GenericORRelationMapper.php on line 758 and defined
Meldung von PHP:
Fatal error: GenericORRelationMapper::saveObject(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "UmgtApplication" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /is/htdocs/wp1177661_MI1CO4T11E/www/apf/modules/genericormapper/data/GenericORRelationMapper.php on line 731
Hier mal das, was ich im Controller mache:

Code: Alles auswählen

      $form = $this->getForm('FormChangePW');

      if ($form->isSent() && $form->isValid()) {
         //Altes Passwort prüfen
         $User = $this->__umgt->loadUserByUsernameAndPassword($this->__user->getProperty('Username'), $form->getFormElementByName('oldPassword')->getValue());
         if ($User == null) {
            $form->getFormElementByName('oldPassword')->markAsInvalid();
            $form->getFormElementByName('oldPassword')->appendCssClass('apf-form-error');

            $form->setPlaceHolder('message', '<p class="apf-error">Dieses Passwort konnte nicht verifiziert werden.</p>');
            
         } elseif ($form->getFormElementByName('newPassword')->getValue() != $form->getFormElementByName('newPasswordCheck')->getValue()) {
            $form->getFormElementByName('newPassword')->markAsInvalid();
            $form->getFormElementByName('newPassword')->appendCssClass('apf-form-error');
            $form->getFormElementByName('newPasswordCheck')->markAsInvalid();
            $form->getFormElementByName('newPasswordCheck')->appendCssClass('apf-form-error');

            $form->setPlaceHolder('message', '<p class="apf-error">Die Passwörter sind nicht identisch.</p>');
         } else {
            $this->__user->setProperty('Password', $form->getFormElementByName('newPassword')->getValue());
            $this->__umgt->saveUser($this->__user);
         }
      }

      $form->transformOnPlace(); 
Ich habe damit nun nicht direkt ein Problem, ich denke auch nicht, dass es jemals dazu kommen wird durch einen User allerdings fand ich es interessant, gerade was von PHP geworfen wurde und wollte euch das nicht vorenthalten ;).

Benutzeravatar
dr.e.
Administrator
Beiträge: 4536
Registriert: 04.11.2007, 16:13:53

Re: Fatal Error nach doppeltem Absenden eines Formular

Beitrag von dr.e. » 07.05.2013, 22:11:13

Hi dave,

das ist in der Tat komisch. Hast du das mal debugged? Gehst du wirklich in die Bedingung

Code: Alles auswählen

if($form->isSent() && $form->isValid()) 
rein? Ich kann mir nur vorstellen, dass das Halten des Benutzers als Klassenvariable ein Problem darstellt. Kannst du das mal auflösen und eine lokale Variable draus machen?
Viele Grüße,
Christian

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Fatal Error nach doppeltem Absenden eines Formular

Beitrag von Megger » 07.05.2013, 23:08:24

Sieht nach einem Session Problem aus...das hatten wir schonmal irgendwo!
Wenn man etwas in der Session speichert, dann muss man beim Abruf dafür sorgen, dass alles vorher korrekt importiert wurde, ansonsten kommt es zu dem incomplete_object Fehler! Passiert halt auch bei SESSIONSINGLETON usw.
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast