Forum Doku Wiki Blog

Forumsarchiv 2005, März
"Back-Button" - Problem mit Datenbankeintrag

archivierte Beiträge lesen

  1. (PHP) "Back-Button" - Problem mit Datenbankeintrag von HONDA, 22. 03. 2005, 21:35

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 21:35 Uhr von HONDA veröffentlicht.

Hallo,

ich habe ein mehrseitiges Formular programmiert, welches auch tadellos funktioniert.

Einziges Problem: der Back-Button

Wie kann man verhindern, dass man mittels backbutton (der zweimal schnell hintereinander angeklickt wird) auf das bereits abgesendete erste Teilformular zurückgelangen kann?

Problem dahinter: Das in der mitte liegende Formular (also das zweite Teilformular) wird hierbei übersprüungen, und es wird ein leerer Datenbankeintrag durchgeführt.

Hat jemand bereits ein ähnliches Problem gehabt?
HONDA

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 21:41 Uhr von Cheatah veröffentlicht.

Hi,

> Wie kann man verhindern, dass man mittels backbutton (der zweimal schnell hintereinander angeklickt wird) auf das bereits abgesendete erste Teilformular zurückgelangen kann?

gar nicht.

> Problem dahinter: Das in der mitte liegende Formular (also das zweite Teilformular) wird hierbei übersprüungen, und es wird ein leerer Datenbankeintrag durchgeführt.

Dann prüfe das serverseitig besser ab.

> Hat jemand bereits ein ähnliches Problem gehabt?

Natürlich, das ist Alltag.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 21:45 Uhr von HONDA veröffentlicht.

> Dann prüfe das serverseitig besser ab.
>

Hi Chetah,

wie meinst Du Serverseitig? ... ein eigenes Skript, das leere Datenbankeinträge entfernt?

HONDA

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 21:51 Uhr von Cheatah veröffentlicht.

Hi,

> > Dann prüfe das serverseitig besser ab.
> wie meinst Du Serverseitig? ... ein eigenes Skript, das leere Datenbankeinträge entfernt?

nein, ich meine eine sinnvollere Konsistenzprüfung in dem Script, welches die Datenbankeinträge vornimmt.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 21:57 Uhr von HONDA veröffentlicht.

> Hi,
>
> > > Dann prüfe das serverseitig besser ab.
> > wie meinst Du Serverseitig? ... ein eigenes Skript, das leere Datenbankeinträge entfernt?
>
> nein, ich meine eine sinnvollere Konsistenzprüfung in dem Script, welches die Datenbankeinträge vornimmt.
>
> Cheatah


Hi,


die für den Datenbankeintrag verantwortliche "Weiche" im Skript sieht folgendermaßen aus:


//ZUGANG ZUR DATENBANK
else if (($_SESSION['ID']==555) and !$fehler and $Userame and strlen($_POST['Password'])>2 and $userinuse<1 and $email and $password2) {
include("../connect.inc.php");


Funktioniert auch tadellos,... nur bei zweifachem Back (also Überspringen dieses Formulars), wird die if-sequenz offenbar einfach ignoriert und dennoch ein DB-Eintrag vorgenommen.

Wie kann das sein?
LG,
HONDA

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 22:01 Uhr von Cheatah veröffentlicht.

Hi,

> else if (($_SESSION['ID']==555) and !$fehler and $Userame and strlen($_POST['Password'])>2 and $userinuse<1 and $email and $password2) {
> Funktioniert auch tadellos,... nur bei zweifachem Back (also Überspringen dieses Formulars), wird die if-sequenz offenbar einfach ignoriert und dennoch ein DB-Eintrag vorgenommen.

nein, die Daten entsprechen nicht dem, was Du erwartest.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 22:10 Uhr von HONDA veröffentlicht.

>
»» nein, die Daten entsprechen nicht dem, was Du erwartest.
>
> Cheatah


Sorry,...ich hab nicht ganz verstanden was Du damit meinst ... worauf bezieht sich das "nein" ... auf die If-Sequenz?

was meinst Du mit "nicht erwartest"?

HONDA

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 22:16 Uhr von Cheatah veröffentlicht.

Hi,

> > nein, die Daten entsprechen nicht dem, was Du erwartest.
> Sorry,...ich hab nicht ganz verstanden was Du damit meinst ... worauf bezieht sich das "nein" ... auf die If-Sequenz?

auf die Vermutung, sie würde übersprungen werden. Übrigens handelt es sich um eine Abfrage, nicht um eine Sequenz.

> was meinst Du mit "nicht erwartest"?

Dass Deine Abfrage auf vermuteten Daten basiert, die nicht vorliegen.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 22:19 Uhr von HONDA veröffentlicht.

> Hi,
>
> > > nein, die Daten entsprechen nicht dem, was Du erwartest.
> > Sorry,...ich hab nicht ganz verstanden was Du damit meinst ... worauf bezieht sich das "nein" ... auf die If-Sequenz?
>
> auf die Vermutung, sie würde übersprungen werden. Übrigens handelt es sich um eine Abfrage, nicht um eine Sequenz.
>
> > was meinst Du mit "nicht erwartest"?
>
> Dass Deine Abfrage auf vermuteten Daten basiert, die nicht vorliegen.
>
> Cheatah


Wenn diese nicht vorliegen würden, dann würde doch gar kein Datenbankeitnrag vorgenommen werden... oder verstehe ich da etwas falsch?

Das Problem ist ja, dass einer durchgeführt wird und zwar mit leeren Feldern.

HONDA

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 22:22 Uhr von Cheatah veröffentlicht.

Hi,

> Wenn diese nicht vorliegen würden, dann würde doch gar kein Datenbankeitnrag vorgenommen werden... oder verstehe ich da etwas falsch?

Du möchtest unter den von Dir genannten Umständen nicht in den if-Zweig der Abfrage gelangen, landest also dort. Also ist die Abfrage falsch. Der Grund ist, dass die der Abfrage zu Grunde liegenden Daten anders sind, als Du es vermutest.

> Das Problem ist ja, dass einer durchgeführt wird und zwar mit leeren Feldern.

Das Problem ist, dass Du Dich mit Rätselraten beschäftigst, anstatt eine Analyse zu beginnen. Erst wenn Du das tust, kannst Du das Problem überhaupt erkennen. Bisher kann ich Dir nur das Offensichtliche sagen, nämlich dass andere Daten vorliegen, als Du erwartest.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 22:38 Uhr von HONDA veröffentlicht.

> Das Problem ist, dass Du Dich mit Rätselraten beschäftigst, anstatt eine Analyse zu beginnen. Erst wenn Du das tust, kannst Du das Problem überhaupt erkennen. Bisher kann ich Dir nur das Offensichtliche sagen, nämlich dass andere Daten vorliegen, als Du erwartest.
>
> Cheatah


Hi,

ja, das ist sogar sicher der Fall,... nur wie kann ich diese Analyse durchführen?

Ich habe ja explizit in der if-Abfrage einen DB-Eintrag ausgeschlossen, wenn nicht bestimmte Prämissen gegeben sind.

Bei einem leeren Feld etwa, soll eben genau kein Datenbankeintrag vorgenommen werden.

Wenn die If-Abfrage nicht ignoriert wird, warum funktioniert es dann nicht?

Kann es sein, dass dies ein Cache-Problem ist?
HONDA

"Back-Button" - Problem mit Datenbankeintrag

Der folgende Beitrag wurde am 22. 03. 2005, 22:43 Uhr von Cheatah veröffentlicht.

Hi,

> ja, das ist sogar sicher der Fall,... nur wie kann ich diese Analyse durchführen?

beispielsweise die Daten ausgeben oder anderweitig loggen. Debug-Ausgaben sind die trivialste Form der Code-Analyse.

> Ich habe ja explizit in der if-Abfrage einen DB-Eintrag ausgeschlossen, wenn nicht bestimmte Prämissen gegeben sind.

Und die Prämissen sind augenscheinlich in Deinem Code nicht gegeben.

> Wenn die If-Abfrage nicht ignoriert wird, warum funktioniert es dann nicht?

Auf die Gefahr hin, mich zu wiederholen: Weil die Daten nicht mit dem übereinstimmen, was Du erwartest.

> Kann es sein, dass dies ein Cache-Problem ist?

Wenn dem so wäre, erhielte der Server erst gar keinen Request.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

Ach Cheatah...

Der folgende Beitrag wurde am 23. 03. 2005, 05:54 Uhr von Joe Bresale veröffentlicht.

Hättest du ihm einfach folgendes gesagt:

"Mache eine Prüfung if (formulareingabe != 0)"


wäre das schnell erklärt gewesen :)

Ach Cheatah...

Der folgende Beitrag wurde am 23. 03. 2005, 09:28 Uhr von Cheatah veröffentlicht.

Hi,

> Hättest du ihm einfach folgendes gesagt:
> "Mache eine Prüfung if (formulareingabe != 0)"
> wäre das schnell erklärt gewesen :)

dummerweise habe ich keine Ahnung, ob etwas derartiges reicht. Der einzige, der das sagen kann, ist HONDA - nachdem er seine Problemanalyse durchgeführt hat. Trotz anderslautender Meinungen bin ich nicht allwissend.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4