Ankündigung

Einklappen
Keine Ankündigung bisher.

sessionvariable überprüfen

Einklappen

Neue Werbung 2019

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

  • function
    hat ein Thema erstellt sessionvariable überprüfen.

    sessionvariable überprüfen

    guten abend zusammen ich bin mal wieder ei nwenig am rum basteln, aber jetzt hänge ich etwas...
    ich starte meine session -> kein problem

    dann gibts ein formular das $_POST['warenid'] und $_POST['anzahl'] übergibt.
    so nun will ich folgendes:

    PHP-Code:
    <?php
    $_SESSION
    [$POST['warenid'] = $_POST['anzahl'];  // klappt auch
    ?>
    allerdings möchte ich das wenn das formular nochmal an die seite geschickt wird überprüft wird ob diese Sessionvar schon existiert, mein versuch:
    PHP-Code:
    <?php
    if( !isset($_POST['warenid']) || !isset($_POST['anzahl']) ) {
      echo 
    "Zur Bestellung bitte nur den Onlineshop benutzen, danke.";
    } else {
      if( 
    $_POST['warenid'] == "" || $_POST['anzahl'] == "") {
        echo 
    "Es trat ein Fehler auf! Bitte Problem melden - <a href=mailto:...>melden</a>";
      } else{
        if( !
    ereg("[0-9]",$_POST['anzahl'])) {
          echo 
    "In der angegebenen Anzahl befinden sich nicht nur Zahlen!
    \n"
    ;
          echo 
    "Unerlaubtes Zeichen: <font color=red>".$_POST['anzahl']."</font>\n";
        } else {
          if( 
    array_key_exists($_POST['warenid'], $_SESSION) ){
            
    $_SESSION[$_POST['warenid']] = $_POST['anzahl'];
            echo 
    "Bestellmenge aktualisiert.";
            echo 
    $_SESSION['warenid'];
          } else {
            
    $_SESSION[$_POST['warenid']] = $_POST['anzahl'];
            echo 
    "Ware in den Warenkorb gelegt.
    "
    ;
            echo 
    $_SESSION[$_POST['warenid']]."
    "
    ;
            echo 
    key($_SESSION);
          }
        }
      }
    }
    ?>
    danke schonmal

  • Basti
    antwortet
    Re: sessionvariable überprüfen

    Zitat von function
    PHP-Code:
    <?php
          
    if( array_key_exists($_POST['warenid'], $_SESSION) ){
    ?>
    Nur ein kleiner Denkfehler:
    Entweder hier isset() anstatt array_key_exists() oder du verwendest
    array_key_exists() auf $_SESSION und nicht auf $_SESSION[$_POST[...]].

    Geschickt wäre es allerdings, die Waren nicht so in die Session zu
    packen, sondern als Array $_SESSION['cart'][<product_id>] oder so.
    Ansernfalls kann es zu Kollisionen mit Sitzungsvariablen kommen, die in
    ganz anderem Kontext gebraucht werden.

    Zitat von function
    PHP-Code:
    <?php
        
    if( !ereg("[0-9]",$_POST['anzahl'])) {
          echo 
    "In der angegebenen Anzahl befinden sich nicht nur Zahlen!
    \n"
    ;
          echo 
    "Unerlaubtes Zeichen: <font color=red>".$_POST['anzahl']."</font>\n";
    ?>
    Niemals! Wenn du einen Shop programmierst, solltest du zumindest die
    Grundlagen über Anwendungssicherheit beherrschen!

    Nochwas aus der dclp-faq zum Lesen:
    8.2. Soll ich ereg() oder preg() verwenden?
    http://www.php-faq.de/q/q-regexp-ereg.html

    Liebe Grüße,
    Basti

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Geht die Sessionid während der Navigation durch deine Seite verloren?

    Einen Kommentar schreiben:


  • function
    antwortet
    ja also wenn ich mir das ausgeben lasse scheint es so zusein, als wenn $_SESSION immer nur einen einzigen array eintrag hat und zwar immer die aktuelle $_POST['warenid'] wie kann das sein? ich hab kein session_destroy oder unset drin...

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Dann gibt es keinen entsprechenden Schlüssel im $_SESSION-Array. Lass dir $_SESSION und $_POST doch mal vor der Abfrage ausgeben und schau nach, ob die Werte überhaupt stimmen.

    Einen Kommentar schreiben:


  • function
    antwortet
    wenn ich das formular noch mal ausfülle und abschicke meldet er nicht wie ich will das die bestell menge aktualissiert wird sondern einfach das die Ware in den warenkorb gelegt wurde

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Und dein Problem ist jetzt was genau?

    Einen Kommentar schreiben:

Lädt...
X