Ich habe derzeit ein Problem mit einer Funktion, welche den Datensatz in einer Datenbank sperrt und so ein Ändern durch User 2 verhindert, wenn User 1 den entsprechenden Datensatz editiert.
Die php-Datei wird in der aufgerufenen Datei mit require_once eingebunden. Wenn ich nun einen neuen Datensatz erstelle wird er beim Abspeichern freigegeben, also der Tabellenwert edit auf 0 gesetzt.
Will nun den Datensatz jemand ändern, dann wird der Wert edit vor dem Aufruf des Formulars auf 1 gesetzt. Nun ist der Datensatz solange gesperrt bis der User das Formular bestätigt und den Datensatz geändert hat.
Nun ergibt sich folgendes Problem:
Der Datensatz hat den edit-Wert 0. Ich rufe die Änderung auf und der Datensatz müsste änderbar sein. Irgendwie wird die Funktion aber zweimal aufgerufen. Es wird also der Datensatz gesperrt und dann die Meldung ausgegeben, dass der DS gesperrt ist.
Wie kann ich per Debug rausbekommen, wo und an welcher Stelle die Funktion doppelt aufgerufen wird? Ich habe mir die entsprechenden Dateien mehrmals angeschaut und festgestellt, dass die Funktion nicht doppelt aufgerufen wird.
Zum Test habe ich eine SESSION-Variable 0 gesetzt. Immer wenn die Funktion aufgerufen wird, lasse ich die SESSION-Variable um 1 erhöhen. Laut Script müsste die Funktion einmal aufgerufen werden und dann also den Wert 1 ergeben. Das Problem ist aber, dass der Wert 2 ist und die Funktion an irgend einer Stelle nochmal aufgerufen wird? Bei der Dateiübergreifenden Suche nach dem Aufruf der Funktion konnte ich keine Auffälligkeiten feststellen.
Ich nutzte XAMMP und schreibe die Scripte in Kate.
Die php-Datei wird in der aufgerufenen Datei mit require_once eingebunden. Wenn ich nun einen neuen Datensatz erstelle wird er beim Abspeichern freigegeben, also der Tabellenwert edit auf 0 gesetzt.
Will nun den Datensatz jemand ändern, dann wird der Wert edit vor dem Aufruf des Formulars auf 1 gesetzt. Nun ist der Datensatz solange gesperrt bis der User das Formular bestätigt und den Datensatz geändert hat.
Nun ergibt sich folgendes Problem:
Der Datensatz hat den edit-Wert 0. Ich rufe die Änderung auf und der Datensatz müsste änderbar sein. Irgendwie wird die Funktion aber zweimal aufgerufen. Es wird also der Datensatz gesperrt und dann die Meldung ausgegeben, dass der DS gesperrt ist.
Wie kann ich per Debug rausbekommen, wo und an welcher Stelle die Funktion doppelt aufgerufen wird? Ich habe mir die entsprechenden Dateien mehrmals angeschaut und festgestellt, dass die Funktion nicht doppelt aufgerufen wird.
Zum Test habe ich eine SESSION-Variable 0 gesetzt. Immer wenn die Funktion aufgerufen wird, lasse ich die SESSION-Variable um 1 erhöhen. Laut Script müsste die Funktion einmal aufgerufen werden und dann also den Wert 1 ergeben. Das Problem ist aber, dass der Wert 2 ist und die Funktion an irgend einer Stelle nochmal aufgerufen wird? Bei der Dateiübergreifenden Suche nach dem Aufruf der Funktion konnte ich keine Auffälligkeiten feststellen.
Ich nutzte XAMMP und schreibe die Scripte in Kate.
Kommentar