Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme bei Browser-Aktualisierung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme bei Browser-Aktualisierung

    Hallo zusammen,

    ich bin neu hier und blutiger php-Anfänger. Jegliches Suchen nach der Lösung meines Problems schlug bisher fehl, falls es doch schon mal irgendwo erläutert wurde, bin ich dankbar über den passenden Link.

    Ich prgrammiere gerade einen sehr vereinfachten Web-Shop in php. Der Benutzer stellt siche eine bestimmte Artikelsammlung zusammen und wird dabei durch mehere Formulare geleitet und zum Schluss bekommt er noch mal eine Zusammenfassung, wo er sich entscheiden kann, ob er gewisse Artikel löscht, die Sammlung noch mal bearbeitet oder sie in den Warenkorb legt.

    Dazu habe ich eine Tabelle, die alle Artikel mit Menge und Preis auflistet. Hinter jeder Zeile ist ein Lösch-Icon. Momentan ist dieses Icon mit einem Link hinterlegt, welches das Formular, auf dem es sich gerade befindet erneut aufruft und dabei dei Zeilen-ID mit übergibt. Anschließend wird ausgewählte Zeile gelöscht und die Seite erneut angezeigt.
    Da ich die php-Seite per Link aufrufe, übergebe ich die Parameter mit <a href="http://127.0.0.1/shop/review.php?del=$id">...</a>.
    Wenn ich also den ersten Artikel lösche, wird die Seite "http://127.0.0.1/shop/review.php?del=1" aufgerufen. Wenn nun der Benutzer auf die Idee kommt, den Browser mit dem Aktualisieren-Button zu aktualisieren, wird bei jedem Klick immer und immer wieder das erste Element der Artikelliste gelöscht, da per $_GET['del'] immer "1" aus der URL ausgelesen wird. Kann mir jemand sagen, wie man das verhindern kann? Oder sollte ich das Ganze grundsätzlich anders umsetzen?

    Gruß
    Julia

  • #2
    Hi,

    wie speicherst du die Artikel (den Warenkorb) in PHP ?
    Das einfachste wäre, wenn du eindeutige ID's verwendest, anstatt die Zeilennummer.

    Kommentar


    • #3
      Hallo Papst,

      an der Stelle wird noch nicht in den Warenkorb gespeichert, der Benutzer soll erst seine zusammengestellte Liste überprüfen, bevor er sich entscheidet sie in den Warenkorb zulegen. In dem Moment ist seine Auswahl nur in der Session gespeichertz und er kann einzelne Artikel wieder aus der Session löschen.
      Momentan arbeite ich nicht mit eindeutigen ID's und müsste dazu sämtliche Formulare umschreiben, gibt es keine andere Lösung?

      Kommentar


      • #4
        Du kannst den Benutzer einfach per Header weiterleiten, dann sollte man nicht reloaden können...

        Kommentar


        • #5
          Hallo,

          So wie Papst schon schrieb
          Hi,

          wie speicherst du die Artikel (den Warenkorb) in PHP ?
          Das einfachste wäre, wenn du eindeutige ID's verwendest, anstatt die Zeilennummer.
          Ist ist sicher einfacher wenn du eindeutige ID's verwendest denn so ist auch dein Datensatz dann eindeutig denn wenn du es so lassen würdest dann wirst du den Fehler immer wieder bekommen.

          Gruß

          Kommentar


          • #6
            Was genau meinst du damit?
            Kannst du das vielleicht ein wenig näher erläutern? Meine php-Kenntnisse sind noch nicht so gut.

            Ich weiß, dass man per Header weiterleiten kann, weiß jetzt aber nicht genau, wann und wie ich ihn genau einsetzen soll, damit der Benutzer keinen Reload mehr machen kann.

            Kommentar


            • #7
              Du schreibst in deine review.php

              PHP-Code:
              if(isset($_GET["id"])){
                   
              //Datensatz löschen
                   //...
                   
              header("Location:review.php");

              Kommentar


              • #8
                Danke für eure Antworten!

                Kommentar


                • #9
                  Aber die absoluten ID's würde ich dir auch empfehlen...

                  Kommentar


                  • #10
                    Hab ich jetzt auch gemacht, ging schneller als erwartet, hab mal wieder zu kompliziert um die Ecke gedacht
                    Danke!

                    Kommentar


                    • #11
                      So bietet sich dir auch die Möglichkeit das ganze irgendwann in eine DB zu packen, als "Favoritenliste" oder Merkliste o.ä.

                      Kommentar

                      Lädt...
                      X