sessions - werte hinzufügen

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

  • sessions - werte hinzufügen

    hallo,

    ich arbeite zur zeit an einem eigenen onlineshop.
    der user klickt auf "add to cart" und ein script wird gestartet, welches die "id" des artikels in eine session schreiben soll.
    wenn jetzt der user aber einen weiteren artikel einkaufen möchte, muss ja ein weiterer wert in die session geschrieben werden, ohne den vorherigen zu überschreiben. wie geht sowas?

  • #2
    Hmm dann machst du am besten ein Array, das könnte so aussehen:
    PHP-Code:
    <?php
    session_start
    ();

    /* Ware mit der Bestellnummer 123 */
    $ware 123;

    /* wenn die Ware schon existiert */
    if (isset($_SESSION['trolley'][$ware])) {
        
    /* Anzahl erhöhen */
        
    $_SESSION['trolley'][$ware]++;
    } else {
        
    /* Anzahl auf 1 setzen */
        
    $_SESSION['trolley'][$ware] = 1;
    }
    ?>
    Alle Waren sind nun in $_SESSION['trolley'] das kannst du wiederrum mit einer foreach() Schleife durchlaufen und somit die Warenausgeben.

    Kommentar


    • #3
      Re: sessions - werte hinzufügen

      Original geschrieben von digital matrix
      der user klickt auf "add to cart" und ein script wird gestartet, welches die "id" des artikels in eine session schreiben soll.
      die ID ist deine sessionvariable, die bestellte anzahl ihr wert.

      $_SESSION['artikel_15'] = 1;
      wenn jetzt der user aber einen weiteren artikel einkaufen möchte, muss ja ein weiterer wert in die session geschrieben werden, ohne den vorherigen zu überschreiben.
      wenn jetzt der user den gleichen artikel nochmal haben möchte, anzahl um eins erhöhen.

      $_SESSION['artikel_15'] = $_SESSION['artikel_15'] + 1;
      oder
      $_SESSION['artikel_15'] += 1;
      oder
      $_SESSION['artikel_15']++;


      wenn er noch einen weiteren artikel haben möchte, diesen ebenfalls in der session hinterlegen:

      $_SESSION['artikel_73'] = 1;
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        hallo,

        ich denke dass mir eure ausführungen schon weitergeholfen haben.
        müsste also so schon alles fertig sein?
        PHP-Code:
        <?php
        session_start
        ();

        $id 12;

        if(isset(
        $_SESSION[shop][$id]))
        {
                
        $_SESSION[shop][$id] = $_SESSION[shop][$id] + 1;
        }
        else
        {
                
        $_SESSION[shop][$id] = 1;
        }
        ?>
        also wird die id über ein formular an dieses script übergeben, wo es dann in die session geschrieben wird. später kann ich dann aus der session alle daten wieder auflisten, richtig? (mit foreach)

        Kommentar


        • #5
          hallo,

          also im grunde funktioniert es schon. keine fehler bei der foreach schleife etc.
          PHP-Code:
          <?php
          session_start
          ();

          $id $_GET['id'];

          if(isset(
          $_SESSION[shop][$id]))
          {
                  
          $_SESSION[shop][$id] = $_SESSION[shop][$id] + 1;
          }
          else
          {
                  
          $_SESSION[shop][$id] = 1;
          }



          foreach(
          $_SESSION[shop] as $iid[])
          {
                  if(
          $i != false) { print "ware nr.: $id = $iid[$i]<br>"; }
                  
          $i++;
          }
          ?>
          wenn das jetzt aber mal jemand testet, steht in der ausgabe folgendes, auch wenn das programm weiterhin tadellos funktioniert:
          (bei einer bestellt ware id=1)

          ware nr.: 1 = x

          wenn man jetzt z.b. ware 2 (id=2) bestellt:

          ware nr.: 2 = x
          ware nr.: 2 = y

          ich hoffe das problem wird verständlich. warum das so ist, weiß ich auch ($id) aber ich hab keine ahnung wie ich das problem richtig lösen kann, sodass später im letzten beispiel folgendes steht:

          ware nr.: 1 = x
          ware nr.: 2 = y

          Kommentar


          • #6
            besser ist das so:
            PHP-Code:
            foreach($_SESSION[shop] as $key => $val)
            {
              print 
            "ware nr.: ".$key."= ".$val."<br>"

            Kissolino.com

            Kommentar


            • #7
              ja super! funktioniert bestens! dankeschön!

              Kommentar


              • #8
                hallo, ein weiteres problem:

                Warning: Cannot use a scalar value as an array in /home/vhosts/5000121504/************/htdocs/******/add.php on line 13
                das passiert, wenn ich die id über ein formular oder über die url weitergebe:
                PHP-Code:
                <?php
                session_start
                ();

                $id $_GET['id']; // bzw: $id = $_POST['id'];


                if(isset($_SESSION[shop][$id]))
                {
                        
                $_SESSION[shop][$id] = $_SESSION[shop][$id] + 1;
                }
                else
                {
                        
                $_SESSION[shop][$id] = 1;
                }
                was kann das sein?
                edit: lokal funktioniert es, extern auf meinem webspace nicht.

                Kommentar


                • #9
                  bitte nicht die quote-tags zum hervorheben von text benutzen, da du damit das direkte zitieren unmöglich machst!

                  Original geschrieben von digital matrix
                  Warning: Cannot use a scalar value as an array in /home/vhosts/5000121504/************/htdocs/******/add.php on line 13
                  du benutzt ein scalar wie ein array, und das passt dem interpreter nicht.
                  was genau er in diesem falle zu bemängeln hat, fällt mir allerdings auf den ersten blick nicht auf ...
                  edit: lokal funktioniert es, extern auf meinem webspace nicht.
                  bitte nicht immer von unterschiedlichen einstellungen bezüglich des errormlevels darauf schliessen, dass php seine funktionalität vom einen auf den anderen server derart ändern würde.
                  zu hause unterdrückst du höchstwahrscheinlich lediglich das anzeigen von warnings; das problem dürfte dort aber ebenso exisiteren.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    in ordnung. nun bin ich etwas schlauer (was das verhalten hier in den foren angeht.)
                    achja, was ist ein scalar?

                    Kommentar


                    • #11
                      weitere information:

                      der fehler tritt beim ersten mal nicht auf (das erste mal, wenn man eine id aufruft) - jedoch dann beim zweiten mal.

                      Kommentar


                      • #12
                        korrekter wäre es so:
                        PHP-Code:
                        $_SESSION['shop'][$id] = 1
                        erklärt aber den fehler nicht.

                        Kommentar


                        • #13
                          gut, hab ich verbessert. aber was ist denn nun ein "scalar"?

                          Kommentar


                          • #14
                            bemüh ruhig mal das Manual oder google.

                            "Scalar variables are those containing an integer, float, string or boolean"

                            PS: Google wirft direkt als erstes einen Link zur "PHP-Resource.de Manual-Kopie"

                            Kommentar


                            • #15
                              bemüh ruhig mal das Manual oder google.
                              ja, dass dachte ich dann auch, als ich heute morgen hier herein geschaut habe.
                              also auf zend.com hat jemand herausgefunden, dass es wohl eine "unreinheit" von php sein könnte.
                              dann bin ich auch bereit, eine ander möglichkeit zu nutzen - nur welche? mir fällt grade keine andere ein. wie kann man denn sonst ein shopsystem auf sessionbasis aufbauen?

                              Kommentar

                              Lädt...
                              X