Skript nach User-Eingabe beenden

2 views
Skip to first unread message

Sigbert Helle

unread,
Jan 28, 2021, 7:21:05 AMJan 28
to
Hallo liebe Helferlein,

mal wieder ne Anfängerfrage:

In Skript1.php lassen ich Daten in ein Formular eintragen, die dann mit
POST nach Skript2.php übertragen werden.
In skript2 lasse ich diese Daten mittels print anzeigen und vergleichen
mit alten Daten aus einer Datenbank.
Jetzt mein Problem:
Der User soll jetzt entscheiden können, ob er das nicht wollte (also
Skript abbrechen und zurück zu skript1) oder das skript2 weiter
ausführen, das dann die neuen Daten in die Datenbank einträgt.

Bisher ließ ich das automatisch ablaufen, also ohne Rückfrage beim User.
Möchte also jetzt nur diese Nachfrage mit Entscheidung einbauen.

Irgendwas mit input und dann exit (oder die?) - aber wie?

Lieben Gruß
Sigbert

Stefan Froehlich

unread,
Jan 28, 2021, 8:13:24 AMJan 28
to
On Thu, 28 Jan 2021 13:21:04 Sigbert Helle wrote:
> In Skript1.php lassen ich Daten in ein Formular eintragen, die
> dann mit POST nach Skript2.php übertragen werden. In skript2
> lasse ich diese Daten mittels print anzeigen und vergleichen mit
> alten Daten aus einer Datenbank.

So weit, so gut.

> Bisher ließ ich das automatisch ablaufen, also ohne Rückfrage beim
> User. Möchte also jetzt nur diese Nachfrage mit Entscheidung
> einbauen.

> Irgendwas mit input und dann exit (oder die?) - aber wie?

Nein, das geht nicht. Stark vereinfacht, aber für diesen
Anwendungsfall ausreichend erklärt läuft Dein PHP-Skript immer
vollständig ab, danach wird das Ergebnis zum Browser geschickt und
dort - in der Regel als HTML-Seite - angezeigt. Ein Klick auf Link
oder Button auf dieser Seite schickt dann einen neuen Request zum
Server, der seinerseits abgearbeitet wird und eine Reaktion erzeugt.
Du kannst also nicht "mittendrin" auf eine Benutzereingabe warten
und dann abbrechen oder fortsetzen, sondern:

a) Du zeigst mit Sript2.php die Daten an, ohne sie in die Datenbank
einzutragen und bietest dem Benutzer einen "Ok"-Button an; wird
dieser gedrückt, läuft

b) Skript3.php (oder auch Skript2.php mit einem zusätzlichen
Parameter), und erst dann wird in die Datenbank geschrieben.

Benutzerfreundliche Erweiterungen (zB zusätzlich zum Ok-Button auch
noch eine "Back"-Button zurück zum Eingabeformular) sind optional,
aber hilfreich.

Servus,
Stefan


--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - die Freiheit zu brüllen!
(Sloganizer)

Sigbert Helle

unread,
Jan 28, 2021, 8:29:50 AMJan 28
to
Hallo Stefan,

Am 28.01.2021 um 14:13 schrieb Stefan Froehlich:
> a) Du zeigst mit Sript2.php die Daten an, ohne sie in die Datenbank
> einzutragen und bietest dem Benutzer einen "Ok"-Button an; wird
> dieser gedrückt, läuft

> b) Skript3.php ... und erst dann wird in die Datenbank geschrieben.
Noch ne Anfänger-Frage: Die 1001 Daten, die ich per POST von Skript1 an
Skript2 gesandt habe: Wie schaufele ich die nach Skript3?
Mit einem "OK-Button" ruf ich dann Skript3 auf?


Gruß
Sigbert

Sebastian Suchanek

unread,
Jan 28, 2021, 9:16:41 AMJan 28
to
IMHO am sinnvollsten in einer Session[1], dann muss man in Skript3
wenigtens nur die Session-ID (re)validitieren.


HTH,

Sebastian
_____
[1] https://www.php.net/manual/de/book.session.php

Stefan Froehlich

unread,
Jan 28, 2021, 9:32:20 AMJan 28
to
Das bleibt Deiner klugen Design-Entscheidung überlassen :-)

Ad hoc fällt mir ein:

a) Du übergibst die Daten via <input type="hidden">. Das ist an sich
die mit Abstand grauslichste Variante, sie kann aber eine
Existenzberechtigung haben, wenn Du ohnehin in beiden Fällen den
gleichen Code verwendest (und daher die zusätzliche Validierung
keinen zusätzlichen Programmieraufwand erzeugt) und Du eine
alternative Möglichkeit schaffen möchtest, Daten auch mit einem
einzigen Aufruf zu speichern (z.B. für maschinelle Aufrufe). Für
Dich wird das eher nicht in Frage kommen.

b) via Session - das ist relativ einfach, und Du hast die Garantie,
dass Du im dritten Schritt genau mit den Daten arbeitest, die Du im
zweiten Schritt geprüft hast

c) Du schreibst die Daten doch bereits beim ersten Mal in die
Datenbank, markierst sie aber als "nicht rückbestätigt" und
entfernst diese Markierung beim finalen Aufruf. Das ist z.B.
dann interessant, wenn Du lückenlose Protokollierung auch bei
abgebrochenen Aufrufen haben möchtest.


So wie Du das Problem geschildert hast, würde ich auch zur
Verwendung von Sessions raten.

Servus,
Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - die begeisternste Sache des Verruchten!
(Sloganizer)

Sigbert Helle

unread,
Jan 28, 2021, 10:43:55 AMJan 28
to
Hallo Stefan, hallo Sebastian,

Am 28.01.2021 um 15:32 schrieb Stefan Froehlich:
> So wie Du das Problem geschildert hast, würde ich auch zur
> Verwendung von Sessions raten.

Dann werd ich mich mal über Sessions schlau machen!
Vielen Dank an Euch!
Gruß
Sigbert
Reply all
Reply to author
Forward
0 new messages