Formulardaten zurücksetzen

Maks01

Grünschnabel
Hallo Zusammen,

ich habe folgende Aufgabe zu lösen:

Der Benutzer meldet sich an einem Admin Modul an, dem Backend und möchte neue Beiträge erzeugen. Die erste Abfrage meines PHP-Skriptes ist also, ob $_COOKIE['username'] gesetzt ist, denn dann muss der User sich der Anmeldeprozedur nicht mehr hingeben und es wird der bekannte "Hallo <username>!" String ausgegeben.

Nun...

Ich hab hier womöglich einen Denkfehler drinnen:

PHP:
if (isset($_COOKIE['username']))
                {
                    echo "Hallo, ".$_COOKIE['username'];
                }
            else
                {
                    // Check if $_POST Variables are set
                   
                    if (!empty($_POST['username']) AND !empty($_POST['password']))
                    {
                       
                        /* Set $_POST to NULL, that !empty works next time... */
                       
                        $username= $_POST['username'];
                        $password= $_POST['password'];
                       
                        $_POST['username']= "";
                        $_POST['password']= "";

                        echo $_POST['username'];
                        echo $_POST['password'];


Warum gibt: if
PHP:
(!empty($_POST['username']) AND !empty($_POST['password']))
"true" nach dem x-beliebigen Mal zurück (F5 Taste), wenn ich die $_POST Variable 1.) in eine lokale Variable packe und 2.) anschließen $_POST['username'] und $_POST['password'] auf "" setze?

Folgendes möchte ich erreichen:

Wenn das Skript mittels F5 neugeladen wird, $_POST auch wieder leer ist


Geht das womöglich anders und ich verfolge hier den falschen Ansatz?

Danke für jegliche Tipps und lg Maks
 
Hi

zum ersten Absatz: Stop.
$_COOKIE['username'] ist so leicht fälschbar, dass du dein Adminmodul
stattdessen gleich ganz öffentlich machen könntest. Informier dich über Sessions.

Zu deinem Denkfehler:
a) Jeder Seitenaufruf (= PHP-Programmdurchlauf) hat prinzipiell seine ganz eigenen Variablen. Dass du die POST-Werte (oder sonst irgendeine PHP-Variable) auf irgendeinen Wert setzt ist nur für diesen einen Durchlauf relevant. Für dauerhafte Speicherung gibts Datenbanken, Sessions, ...

b) Spezialfälle wie POST, GET, COOKIE usw. bekommen die Werte bei jedem Programmstart vom Client/Browser. Solang der Browser nicht-leere POST-Werte sendet kann man in PHP gar nichts daran ändern.

c) Auch mit den ganzen Sicherheitsproblemen ist mir leider nicht wirklich klar, was du tun willst (?) Ob der Benutzer eingeloggt ist hängt von den zwei POST-Werten ab, aber falls vorhanden werden sie wieder geleert? Falls die Werte dauerhaft wären würde das bedeuten, dass man sich nicht einloggen kann, weil man bei jedem Login sofort wieder rausgeschmissen wird.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück