kleines Shop System - mehrere Seiten...

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

  • kleines Shop System - mehrere Seiten...

    Folgendes Problem - ich habe einen nicht Datenbank gestützten Warenkorb erstellt.

    Leider kann ich nur aus der Datei "Artikel.php" die Daten ausgeben
    lassen so das diese auch im Warenkorb angezeigt werden.

    Nun will ich aber eine zweite Datei einbinden die unabhängig von
    Artikel.php auf einer anderen Seite auch Daten in den Warenkorb packt. Wo liegt mein Denkfehler??!!

    __ SKITZE __

    PHP-Code:

    SEITE 1 
    (index.php)                        --- KLICK AUF "IN WARENKORB" -->
    (
    Hier werden die Produkte aus (artikel.phpangezeigt)

    --- > 
    Daten werden an Warenkorb gesendet und eingefügt sowie 
    für 
    die Session gehalten.

    Seite 2 (andereprodukte.php)                    --- KLICK AUF "IN WARENKORB" -->
    (
    Hier werden die Produkte aus (z.bartikel2.phpangezeigt)

    --- > 
    Daten sollen genau wie bei index.php gehalten werden und zu
    den bereits von Seite 1 eingefügten Produkten dazu gefügt werden

    Hier die Datei Warenkorb.php und die Datei Artikel.php (Falls Ihr die
    anderen auch braucht sagt es und ich poste sie.)

    PHP-Code:

    include_once "inc/artikel.inc";
    include_once 
    "inc/warenkorb.inc";
    include_once 
    "dateien/artikel.php";

    error_reporting(E_ALL);
    session_start();

    if (!
    session_is_registered('cart')) {
        
    $_SESSION['cart'] = new cart;
    }

    $cart $_SESSION['cart'];

    include 
    "head/head.php";

    // ------------------------------------------------ 

    if ($_SERVER['REQUEST_METHOD'] == 'POST' ) {
        
    $id $_POST['id'];

        switch (
    $_POST['action']) {
            case 
    'add':
                
    $cart->addItem($id, $$products[$id]-->name$_POST['qty'], 
    $products[$id]-->price$products[$id]->weight$products[$id]->url);
                             break;

            case 
    'remove':
                
    $cart->removeItem($id);
                break;

            case 
    'empty':
                
    $cart->removeAll();
                
    session_destroy();
                break;
        }

    PHP-Code:

    $products 
    = array(

    "0001" =>
    new 
    product(
    "Artikel_1",
    "artikel.php",
    "image",
    2.99,
    // Weight
    0.25,
    "TEXT text TEXT"
    )

    ); 
    Hoffe Ihr könnt euch mein Problem vorstellen.

    Greetz Ex

  • #2
    Hallo.

    Ich werde einfach mal meine Gedanken dazu nacheinander posten.

    1. Wird die andere Datei denn unter dem gleichen Root aufgerufen? weiß jetzt nicht wie das heißt, aber ich meine z.B. http://sth.domain.tld
    SESSIONS sind mW immer an diesen Root gebunden.

    2.Include Dateien würde ich mit name.inc.php abkürzen, da der Browser nicht weiß, was er mit der Endung inc machen soll und daher die File bei Aufruf als Text ausgibt.

    3. Die $_POST["id"] übergibts du mit dem Bestell-Button?

    4. Hast du bei der anderen Seite vergessen die Session erneut zu starten? Du startes die Session ja auf den Artikelseiten. Also muss sie auf jeder Seite neu gestartet werden.
    Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)

    Kommentar


    • #3
      Original geschrieben von enforcer
      Hallo.

      Ich werde einfach mal meine Gedanken dazu nacheinander posten.

      1. Wird die andere Datei denn unter dem gleichen Root aufgerufen? weiß jetzt nicht wie das heißt, aber ich meine z.B. http://sth.domain.tld
      SESSIONS sind mW immer an diesen Root gebunden.

      2.Include Dateien würde ich mit name.inc.php abkürzen, da der Browser nicht weiß, was er mit der Endung inc machen soll und daher die File bei Aufruf als Text ausgibt.

      3. Die $_POST["id"] übergibts du mit dem Bestell-Button?

      4. Hast du bei der anderen Seite vergessen die Session erneut zu starten? Du startes die Session ja auf den Artikelseiten. Also muss sie auf jeder Seite neu gestartet werden.
      Hi erstmal danke für deine Antwort.

      1. Wenn ich einen Artikel von der Startseite index.php in den Warenkorb packe gelang ich automatisch in den Warenkorb ../warenkorb.php dort wird der Artikel angezeigt. Wenn ich weitere Informationen über den Artikel möchte werde ich auf folgende Seite. z.B. weitergeleitet. ../artikel.php?id=0001. Meintest du das?!

      2. Ok danke werde ich ändern.

      3. Auf allen Seiten habe ich die Session neu gestartet. Auf jeder Seite wird auch angezeigt wie viele Artikel sich im Warenkorb befinden.

      Weiß jetzt auch nicht ob ich mein Problem richtig ausgedrückt habe. Also es funktioniert soweit alles nur kann ich nur Artikel aus der Datei artikel.php in den Warenkorb legen lassen. Und in Artikel.php befinden sich alle Produkte für die Startseite. Auf einer anderen Seite möchte ich aber auch Produkte einfügen aber andere. Sobald ich aber versuche eine Datei genauso wie artikel.php anlege sie aber z.B. artikel2.php nenne. Landet zwar die ID im Warenkorb aber nicht der Name und der Preis.

      Es muss etwas mit "$products = array(" zu tun haben. denn die ID die alleine steht "$cart->addItem(>>$id<<, $$products[$id]-->name, $_POST['qty'],
      $products[$id]-->price, $products[$id]->weight, $products[$id]->url);" wird ja eingefügt.

      Greetz Ex

      Kommentar

      Lädt...
      X