Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Session VAriable wird nicht übernommen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Session VAriable wird nicht übernommen

    Hallo,
    ich arbeite gerade an einem Online Shop, und meine Session Variabeln werden von einer Seite nicht auf die andere übernommen.
    Shop.php
    PHP-Code:
    <?php
    session_start
    ();
    $erlaubt $_SESSION["erlaubt"];
    $username $_SESSION["username"];
    include(
    "verbindung.php");
    ?>
    ...
    <?php

                     
    if($erlaubt == 1)
                             {
                             
    $abid "SELECT id FROM artikel";
                             
    $erid mysql_query($abid);
                             echo 
    "<div id=\"shop\"><h2>Shop</h2>";
                             echo 
    "<table border=\"1\"><tr><td>Artikel</td><td>Preis</td><td>Menge </br>auf Lager</td><td>Zum </br>Warenkorb</td></tr>";
                             while(
    $idar mysql_fetch_object($erid))
                                     {
                                     
    $ergebnis1 mysql_query ("SELECT artikel FROM artikel WHERE artikelid LIKE $idar->id ORDER BY id ASC");
                                     
    $row1 mysql_fetch_object($ergebnis1);
                                     
    $artikel $row1->artikel;
                                     
    $ergebnis2 mysql_query ("SELECT preis FROM preis WHERE artikelid LIKE $idar->id ORDER BY id ASC");
                                     
    $row2 mysql_fetch_object($ergebnis2);
                                     
    $ergebnis3 mysql_query ("SELECT menge FROM lager WHERE artikelid LIKE $idar->id ORDER BY id ASC");
                                     
    $row3 mysql_fetch_object($ergebnis3);
                                     echo 
    "<tr>";
                                     echo 
    "<td>".$row1->artikel."</td>";
                                     echo 
    "<td>".$row2->preis."&euro;</td>";
                                     echo 
    "<td>".$row3->menge." Stück</td>";
                                     echo 
    "<td><a href=\"kaufen.php?artikel=".$idar->id."\">hinzufügen</a>";
                                     echo 
    "</tr>";
                                     }
                             echo 
    "</table></div>";
                             }
                     else
                             {
                             echo 
    "<div id=\"shop\">Bitte logge dich erst ein. Deine Adresse wird benötigt.</div>";
                             }
                     
    ?>
    kaufen.php
    PHP-Code:
    <?php
    session_start
    ();
    $erlaubt $_SESSION["erlaubt"];
    $username $_SESSION["username"];
    include(
    "verbindung.php");
    ?>
    ...
    <?php
                     $artikelid 
    $_GET["artikel"];
                     
    $abidware "SELECT id FROM artikel";
                     
    $eridware mysql_query($abidware);
                     while(
    $idarware mysql_fetch_object($eridware))
                             {
                             if(
    $idarware->id == $artikelid)
                                     {
                                     
    $_SESSION[$idarware->id]++;
                                     }
                             }
                     echo 
    $_SESSION["43"];
                     echo 
    session_id();
                     
    ?>
    Ich würde mich freuen, wenn mir jemand helfen kann, weil ich komplett am verzeifeln bin.


  • #2
    Hi,

    - bitte PDO oder mysqli nutzen. mysql_* ist veraltet.
    - Prüf deine Kodierung "&euro;"
    - Warum 3 umständliche SQL Befehle und nicht alles in einem?!
    - Woher kommen die beiden SESSION Variablen?

    PHP-Code:
    $erlaubt $_SESSION["erlaubt"];
    $username $_SESSION["username"]; 
    Verstehe ich Dich richtig, dass in Shop.php noch Werte enthalten sind und auf der kaufen.php nicht? mal auf der jweiligen Seite mit

    PHP-Code:
    print_r($_SESSION); 
    ausgeben lassen? Was steht dann da jeweils?!

    EDIT: sehe gerade, das du deinen Artikel anscheinend angepasst hast. Mach mal die print_r Geschichte, was Du da versuchst ist ziemlich unglücklich "dynamisch" Session Variablen so zu erstellen vor allem da Du sie auch mit nix befüllst!

    mfg Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Zitat von wolf29 Beitrag anzeigen
      mal auf der jweiligen Seite mit

      PHP-Code:
      print_r($_SESSION); 
      ausgeben lassen? Was steht dann da jeweils?!
      Mit einem leicht verändertem Code bekomme ich beide male das ergebniss:
      Code:
      Array ( [admin] => 1 [erlaubt] => 1 [username] => catacas [] => 2 [43] => 0 [44] => 0 [45] => 0 [46] => 0 [47] => 0 [48] => 0 [49] => 0 [50] => 0 [51] => 0 )
      Zitat von wolf29 Beitrag anzeigen
      - Woher kommen die beiden SESSION Variablen?

      PHP-Code:
      $erlaubt $_SESSION["erlaubt"];
      $username $_SESSION["username"]; 
      Die kommen von der Seite login.php und funktionieren auch.

      Auf der Seite shop.php wird die variable mit 0 definiert wenn sie nichts enthällt, auf kaufen.php wird der Wert um eins erhöht, und auf der shop.php habe ich im Anschluss immernoch nur 0 in der Variable stehen.

      Kommentar


      • #4
        schuldige, für diesen unnötig verbrauchten Platz

        Kommentar


        • #5
          Auf der Seite shop.php wird die variable mit 0 definiert wenn sie nichts enthällt, auf kaufen.php wird der Wert um eins erhöht, und auf der shop.php habe ich im Anschluss immernoch nur 0 in der Variable stehen.
          Welche Variable genau? Meinst du diese hier

          PHP-Code:
          $_SESSION[$idarware->id]++; 
          hast du ernsthaft dynamische Sessionvariablen?!? Wofür? Debugge mal, ob du da wirklich immer alles rauskriegst, was du dir so vorstellst.

          mfg wolf29
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            Um genau zu sein, gibt es nicht eine Variable, sondern für jeden Artikel im Shop eine eigene.
            Der variabelname ist die id des Artikels und der Wert die anzahl im warekorb.

            Kommentar


            • #7
              Aktivier mal das error_reporting, dann wirst du eine Notiz sehen.
              Dann kannst du in der untersten Sessionebene nicht mit numerischen Schlüsseln arbeiten, was du vermutlich machst.
              Du solltest für deine Artikel ein eigenes Array spendieren und die Existenz für jede Artikel-Id abtesten:

              PHP-Code:
              $_SESSION['artikel'][$artikelid] = isset($_SESSION['artikel'][$artikelid]) 
                ? 
              $_SESSION['artikel'][$artikelid]+
                
              1
              LG jspit
              PHP-Klassen auf github

              Kommentar


              • #8
                Vielen Dank!
                habe die variabeln nun umbenannt und nun funktioniert es!

                Kommentar

                Lädt...
                X