php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
kleines Shop System - mehrere Seiten...


 
exkalibur
25-02-2007, 17:38 
 
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 __



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

--- > 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.b. artikel2.php) angezeigt)

--- > 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.)



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;
}
}





$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

 
enforcer
25-02-2007, 18:25 
 
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.

 
exkalibur
26-02-2007, 09:07 
 
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:53 Uhr.