phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 27.04.2008, 16:50   #1
TP-Senior
 
Registriert seit: Nov 2003
Ort: Graz
skaterpunk001 ist auf einem guten Weg

Objekte und Sessions in PHP


Hi!

Ich versuche gerade eine kleine Warenkorb-Klasse für meine Website zu verwirklichen. Dazu habe ich mir eine Klasse angelegt, welche als Warenkorb dienen sollte. Die Klasse hat unteranderen ein Array aus Produkten, welche der Benutzer ausgewählt, hat als Membervariable.

Jetzt möchte ich mit dieser Klasse ein Objekt erzeugen und dieses in einer $_SESSION variable speichern, damit der Benutzer Produkte hinzufügen, löschen oder ändern kann. Das Problem ist, dass das Objekt jedesmal neu angelegt wird, wenn der Benutzer durch die POST-Anweisung die Seite neu aufruft. Ich habe versucht, das so zu lösen:

PHP-Code:
session_start();
include (
'_inc/classes/cart.class.php');
if(!
is_object($_SESSION['cart'])) 
{
  
$_SESSION['cart'] = new cart();
  echo 
"Called new object";
}
else
{
  echo 
"Object already exsists";

Es wird immer ein neues Objekt erzeugt, damit gehen dann natürlich auch die bereits ausgewählten Produkte, welche im Objekt gespeichert sind verloren. Hab mal alternativ versucht, das ganze mit einer Variable zu machen um zu erkennen obs an der Klasse liegt, oder ich einen Denkfehler in der Session-Behandlung habe.

PHP-Code:
if(empty($_SESSION['test'])) 
{
  
$_SESSION['test'] = 'set';
  echo 
$_SESSION['test'];
}
else
{
  echo 
"Test is already set";

Das funktioniert und nur beim erstenmal wird $_SESSION['test'] gesetzt. Warum funktioniert das Ganze nicht mit einem Objekt? Oder hat sich da irgendwie ein Denkfehler bei mir eingeschlichen?

Danke schon mal für eure Tipps
lg
skaterpunk001 ist offline   Mit Zitat antworten


Alt 27.04.2008, 19:05   #2
TP-Veteran
 
Benutzerbild von manuelito
 
Registriert seit: Sep 2002
Ort: Winterthur
manuelito hilft, wo's gehtmanuelito hilft, wo's gehtmanuelito hilft, wo's geht
Versuch doch mal mit isset() zu testen, anstelle von is_object().
manuelito ist offline   Mit Zitat antworten
Alt 27.04.2008, 19:20   #3
TP-Senior
 
Registriert seit: Nov 2003
Ort: Graz
skaterpunk001 ist auf einem guten Weg
@manuelito
ja das funktioniert, aber nur wenn ich die klasse vor session_start() inkludiere... sehr interessant... naja aber es funktioniert einmal

DANKE
skaterpunk001 ist offline   Mit Zitat antworten
Alt 28.04.2008, 19:10   #4
TP-Veteran
 
Benutzerbild von manuelito
 
Registriert seit: Sep 2002
Ort: Winterthur
manuelito hilft, wo's gehtmanuelito hilft, wo's gehtmanuelito hilft, wo's geht
Hi du,

das ist sowieso Voraussetzung, da hätte ich früher draufkommen können. Du kannst kein Objekt erstellen ohne die Klassendefinition geladen zu haben Evtl. funktioniert sogar dein erstes Beispiel, wenn du dort auch die Klasse vor dem Session_start() includierst. Komisch ist, dass PHP da keine Warning oder sowas bringt...

Anyway... ciao
manuelito ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Objekte und Sessions in PHP Objekte und Sessions in PHP
« Fehlermeldung: Lost connection to MySQL server | Verschachteltes Array aus Nested Sets »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:28 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67