Problem mit Webshop bzw Sessions

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

  • Problem mit Webshop bzw Sessions

    Hi!

    Bin neu hier, mach auch noch nicht zu lange PHP hab mich aber in letzter Zeit ziemlich damit beschäftigt. Ich habe folgendes Problem: habe mal nen PHP Kurs besucht, ziel war mit unserem Dozenten einen Webshop zu erstellen. Dieser wurde nicht fertig und versuch jetzt selber das Ding zu beenden hänge nun an einem Problem fest. Bekomm immer ne Fehlermeldung wegen der Session warenkorb (Notice: Undefined index: artikelnummer)
    Könnte es vielleicht selber lösen aber verstehe den Zusammenhang mit dem Zähler leider nicht mehr. Kann mir von euch jemand sagen wozu ich den Zähler brauch?

    Wäre für jegliche Hilfe sehr dankbar!

    (Ansonsten funktionierts, Beispiel09.php ist die folgeseite, auf der erfolgt die Ausgabe aller angeklickter Waren...)

    PHP-Code:
    <?php
    session_start
    ();

    if (!isset(
    $_SESSION['zaehler'])) {
       
    $_SESSION['zaehler'] = 0;
    } else {
       
    $_SESSION['zaehler']++;
    }


    if (!isset(
    $_SESSION['warenkorb'])) {
       
    $_SESSION['warenkorb'] = array();
       
    $_SESSION['warenkorb'][] = $_REQUEST['artikelnummer'];
    } else {
        
    $_SESSION['warenkorb'][] = $_REQUEST['artikelnummer'];

    }
    ?>

    <html>
    <head>
    <title></title>
    </head>
    <body>
    <a href="Beispiel_09.php?artikelnummer=WC_D_345" title="">Artikel WC_D_345 in den Warenkorb</a><br>
    <a href="Beispiel_09.php?artikelnummer=WG_e_455" title="">Artikel WG_e_455 in den Warenkorb</a>
    <?php
    echo $_SESSION['zaehler'];
    ?>
    </body>
    </html>
    Windows XP

    PHP 4.3.10
    Apache 1.3.33
    MySQL 4.1.9

  • #2
    Re: Problem mit Webshop bzw Sessions

    Du versuchst am Anfang des Scriptes auf $_REQUEST['artikelnummer'] zuzugreifen - ohne zu überprüfen, ob überhaupt ein Element mit diesem Index existiert.

    Also mache das vorher. isset() bzw. empty()
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      es gibt kein everbindung zwischen zaehler und warenkorb, das sidn zwei unabhängige abfragen.

      Kommentar


      • #4
        @ wahsaga: ah ok verstehe, kann nicht auf was zugreifen was nicht vorhanden ist

        so scheints zu funktionieren:

        PHP-Code:
        if (!isset($_SESSION['warenkorb'])) {
           
        $_SESSION['warenkorb'] = array();
           
        $_SESSION['warenkorb'][] = $_REQUEST['artikelnummer'];
        } else {

            if (isset(
        $_REQUEST['artikelnummer'])) {
            
        $_SESSION['warenkorb'][] = $_REQUEST['artikelnummer'];
            }




        @ komikaa: ok danke, versteh dann aber nicht was unser Dozent mit dem Zähler überhaupt wollte
        Windows XP

        PHP 4.3.10
        Apache 1.3.33
        MySQL 4.1.9

        Kommentar


        • #5
          das ist nen ganz normaler counter
          dein momentaner code funktioniert aber auch nicht.
          angenommen weder warenkorb noch artikelnummer ist gesetzt bekommst du wieder ne fehlermeldung

          Kommentar


          • #6
            Original geschrieben von komikaa
            dein momentaner code funktioniert aber auch nicht.
            angenommen weder warenkorb noch artikelnummer ist gesetzt bekommst du wieder ne fehlermeldung
            hm, versteh ich ned ganz...
            grad deswegen schreib ich ja "!isset", z.B. wenn Warenkorb NICHT gesetzt ist wird eine Session Warenkorb erstellt...

            Funktioniert so weit schon, muss jetzt nur noch hinbekommen die Daten aus dem Session Array auszulesen, um eine Übersicht zu erhalten was bereits alles ausgewählt wurde und dass man dann Artikel gegebenenfalls wieder rausnehmen kann (vermute mal mit Session destroy oder so) des ists nächste Problem

            Der Code sieht jetzt so aus:
            PHP-Code:
            <?php
            session_start
            ();

            if (!isset(
            $_SESSION['warenkorb'])) {
               
            $_SESSION['warenkorb'] = array();

                if (isset(
            $_REQUEST['artNrm'])) {
                    
            $_SESSION['warenkorb'][] = $_REQUEST['artNrm'];
                    }

               } else {

                if (isset(
            $_REQUEST['artNrm'])) {
                
            $_SESSION['warenkorb'][] = $_REQUEST['artNrm'];
                }
            }
            Zuletzt geändert von Marsupilami; 06.04.2006, 17:45.
            Windows XP

            PHP 4.3.10
            Apache 1.3.33
            MySQL 4.1.9

            Kommentar


            • #7
              hm gute Frage, wie greif ich auf ein Array in einer Session zu??

              wenn ich mir $warenkorb ausgeben lass dann ist "Array" das Ergebnis. Aber brauche ja die einzelnen Artikel die sich in diesem Array befinden
              Windows XP

              PHP 4.3.10
              Apache 1.3.33
              MySQL 4.1.9

              Kommentar


              • #8
                Ein Array in einer Session ist auch nur ein Array.

                $array[index]

                Bei dir evtl. $_SESSION['warenkorb'][0] oder oder oder
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  hm, ja so hab ichs auch erst versucht, ging aber nicht, habs dann doch noch hinbekommen. Unser Dozent hatte mal ein ähnliches Beispiel gemacht, aber ohne des wär ich wohl am ende gewesen, bin ja noch en Noob was des betrifft

                  Mit dieser Lösung wird der aktuelle Warenkorb als tabelle ausgegeben.
                  Danke für die Hilfe meld mich sicher demnächst wieder mit nem anderen Problem

                  PHP-Code:
                  $warenkorb $_SESSION['warenkorb'];

                  $tabellen_rumpf     '<table border="1">%s</table>';
                  $tabellen_zeile     '<tr>%s</tr>';
                  $tabellen_spalte     '<td>%s</td>';

                  foreach (
                  $warenkorb as $warenkorbschluessel => $korb) {

                      
                  $spalten ''

                        
                  $spalten .= sprintf($tabellen_spalte$warenkorbschluessel);

                      for (
                  $i 0$i count($korb); $i++) {
                            
                  $spalten .= sprintf($tabellen_spalte$korb[$i]);
                      }


                         
                  $zeilen .= sprintf($tabellen_zeile$spalten);
                  }

                  $auswahl .= sprintf($tabellen_rumpf$zeilen);
                  echo 
                  $auswahl
                  Windows XP

                  PHP 4.3.10
                  Apache 1.3.33
                  MySQL 4.1.9

                  Kommentar

                  Lädt...
                  X