Skip to content
  • Kategorien
  • World
  • Aktuell
  • Tags
  • Beliebt
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
linux-nerds.org

linux-nerds.org

  1. Übersicht
  2. Linux
  3. PHP
  4. Reload einer PHP Seite verhindern

Reload einer PHP Seite verhindern

Geplant Angeheftet Gesperrt Verschoben PHP
php
1 Beiträge 1 Kommentatoren 815 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • FrankMF Offline
    FrankMF Offline
    FrankM
    schrieb am zuletzt editiert von FrankM
    #1

    Ihr kennt vielleicht das Problem, ihr habt Euer erstes kleines Projekt geschrieben. Ihr speichert was usw.

    Auf einmal fällt Euch auf, ihr könnt die Seite reloaden und der Eintrag in der DB wird nochmal geschrieben. Ähnliches könnte passieren, wenn man die Seite von extern aufruft, jemand hat sich den Link gespeichert usw. Nicht schön....

    Beispiel

    Seite 1 test.php

    <?php
    session_start();
    
    $_SESSION['reload'] = time();
    echo $_SESSION['reload'];
    ?>
    
    
    <form id="absenden" method="post" action="test2.php">
    <input type="submit" class="btn btn-success btn-lg" value="Absenden">
    <input type="hidden" name="foo" value= "<?php echo $_SESSION['reload'] ?>" />
    </form>
    

    Was machen wir hier? Wir eröffnen eine Session

    session_start();
    

    Darin erzeugen wir eine Session Variable und geben diese zu Kontrollzwecken aus.

    $_SESSION['reload'] = time();
    echo $_SESSION['reload'];
    

    Die Variable $_SESSION['reload'] wird mit der aktuelle Zeit time() gefüllt. Danach zu Testzwecken ausgegeben.
    Danach erzeugen wir mit HTML einen Absenden Button.

    Wenn wir nun diese Seite aufrufen, wird die Session-Variable mit der aktuellen Zeit gefüllt. Es ist eigentlich egal, was da drin steht, es könnte auch irgendeine Zufallszahl sein. Wenn wir nun auf den Absenden Button klicken, gelangen wir zur 2. Seite.

    Seite 2 test2.php

    <?php
    session_start();
        
    if(!isset($_SESSION['reload'])) {
      die('Bitte nicht direkt aufrufen!');
         }
    $reload = htmlspecialchars($_SESSION['reload']);
     
    echo $reload;
    unset($_SESSION['reload']);
    ?>
    

    Wir eröffnen wieder eine Session, damit können wir nun auf die Session Variable zugreifen.

    Mit

     if(!isset($_SESSION['reload'])) {
      die('Bitte nicht direkt aufrufen!');
         }
    

    überprüfen wir jetzt, ob die Variable bei Aufruf der Seite gefüllt ist. Das geschieht mit dem Befehl isset Wenn sie gefüllt ist, wird nach den {} Klammern weiter gemacht. Ist sie nicht gefüllt, wird der Text

    Bitte nicht direkt aufrufen!
    

    ausgegeben. Diese beiden Befehle dienen nur der Kontrolle!

    $reload = htmlspecialchars($_SESSION['reload']);
    echo $reload;
    

    Jetzt das Wichtigste. Mit

     unset($_SESSION['reload']);
    

    wird die Session Variable, direkt nach der Überprüfung gelöscht. Wenn wir nun die Seite reloaden (F5) oder ähnliches, ist die Variable leer und wir bekommen keinen Zugang auf die Funktionen der Seite!

    Fertig! ☺

    Im Fediverse -> @FrankM@nrw.social

    1. NanoPi R5S
    2. Quartz64 Model B, 4GB RAM
    3. Quartz64 Model A, 4GB RAM
    4. RockPro64 v2.1
    1 Antwort Letzte Antwort
    0
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    • FrankMF

      Debian - php8.2 security update

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben Linux debian linux php
      1
      0 Stimmen
      1 Beiträge
      110 Aufrufe
      Niemand hat geantwortet
    • FrankMF

      php8.2 secutity update

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php linux
      1
      0 Stimmen
      1 Beiträge
      163 Aufrufe
      Niemand hat geantwortet
    • FrankMF

      PHP - ChatGPT

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php linux chatgpt
      1
      2
      0 Stimmen
      1 Beiträge
      152 Aufrufe
      Niemand hat geantwortet
    • FrankMF

      PHP Webseite lokal einhängen mit sshfs

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php linux
      1
      2
      0 Stimmen
      1 Beiträge
      83 Aufrufe
      Niemand hat geantwortet
    • FrankMF

      Eingabefeld aktivieren

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
      1
      2
      0 Stimmen
      1 Beiträge
      234 Aufrufe
      Niemand hat geantwortet
    • FrankMF

      Wichtige Info

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
      1
      0 Stimmen
      1 Beiträge
      237 Aufrufe
      Niemand hat geantwortet
    • FrankMF

      PHPMailer

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
      1
      0 Stimmen
      1 Beiträge
      492 Aufrufe
      Niemand hat geantwortet
    • FrankMF

      PHP Exif Daten aus Bild auslesen

      Beobachtet Ignoriert Geplant Angeheftet Gesperrt Verschoben PHP php
      1
      0 Stimmen
      1 Beiträge
      565 Aufrufe
      Niemand hat geantwortet
    Powered by NodeBB | Contributors
    © 2022 frank-mankel.de
    Fediverse
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Kategorien
    • World
    • Aktuell
    • Tags
    • Beliebt