Produkte speichern in PHP oder ähnliches

muga

Mitglied
Hallo leute

In dem Project, mitdem ich mich beschäftige kann man locker produkte wählen und auf dem Einkaufzittel legen ABER nur solange die seite geöffnet ist, danach nicht mehr, d.h wenn ich mich neu anmelde, dann ist mein Einkaufzittel wieder leer:-(
der code ist gemischt mit Ajax, HTML und javascript geschrieben. Nun möchte ich folgendes:
wenn ich ein produkt wähle und aufm einkaufzittel liege, dann soll das irgendwie gespeichert werden, sodass wenn ich mich abmelde und wieder anmelde, diese produkte wieder aufm Einkaufzittel auftauchen.
Kann mir jemand sagen, wie ich sowas machen soll?
auf paar ausführliche Ideen sowie codes würde ich mich sehr freuen. #

gruß

muga
 
ich habe vergessen zu schreiben, dass ich das ohne DB speichern möchte.
wie ich oben erwähnt habe, die produkte werden schon gespeichert, aber nur solange ich am Hompge bin, wenn ich mich abmelde und wieder anmelde ist mein Korb wieder leer.
Ich weiss nicht, was du mit Dateisystem (csv, txt etc) meinst. kannst du mir das kurz erklären, wie sowas laufen wird?

danke die die Antwort
 
Also am besten bist du sicher mit einer datenbank dran! Es hat schon seinen grund wieso Datenbanken erfunden worden sind.

Wennn es wirklich wirklich nicht anders geht, dann musst du eben auf eine Datei ausweichen.
Mit dateien musst du dir allerdings größere Gedanken machen, zum Beispiel, wie mach ich das wenn sich Kunde1 und Kunde2 zugleich angemeldet sind?
- Am besten bekommt jeder kunde seine eigene Datei, zum Beispiel eine simple Text datei, und du schreibst da immer die daten hinein.
- Das problem von dateien sind allerdings das du nicht so einfach eine Zeile rauslöschen kannst, falls der kunde ein produkt von der Liste streichen will. In dem Fall muss du halt die gesamte Textdatei auslesen, die ausgelesenen daten bis auf die zeile die gelöscht werden soll wieder in die Textdatei überschreiben.
- Wie erkennst du überhaupt einen Kunden? Logt sich ein Kunde bei dir ein? Denn irgendwie musst du die Textdatei einen Kunden zuordnen können. Das würde am leichtesten gehen, wenn eben jeder Kunde so intern in deinem System eine eindeutige Identifikationsnummer oder so was hat. Denn dann bennenst du einfach die Datei nach dieser Identifikationsnummer. Es würde auch über die PHP $_SESSION ID als identifikationsnummer funktionieren.
- Falls man die $_SEESION ID benützt sollt man beachten, dass bei jeden besuch die Session ID neu generiert wird, dahrer sammeln sich mit der Zeit viele Dateien an, die eigentlich gar nicht mehr benötigt würden --> DATENMÜLL

Mein Tipp, falls du bei deinem Projekt einen Kundenlogin hast, wirst du die Logindaten sehr wahrscheinlich in einer Datenbank gespeichert haben. Deshalb realisier doch diese Liste mit der Datenbank!
 
Zuletzt bearbeitet:
Er sucht ja aber nach einer Lösung ohne DB, obwohl Socke999 100% Recht hat - genau dazu wurden Datenbanken erfunden.

Mit Dateisystem meinte ich was Socke schon beschrieben hat - das Speichern von Daten in Dateien auf dem Server.
Auch richtig ist, dass jeder Kunde am besten seine eigene Datei hat, da es sonst zu Problemen durch Mehrfachzugriffe kommen kann.

Ein Blick in meine Kristallkugel zeigt mir, dass er bisher nur mit Sessions arbeitet und die Daten daher ständig flöten gehen - allerdings lügt meine Kristallkugel auch gerne mal. (Mehr Infos bitte muga :))

Wir müssten wissen wie du eingeloggte Benutzer erkennst - Session-ID, Benutzername oder wie?

Benutzername ist (denke ich) zwingend erforderlich, falls du die Dateien auf dem Server speichern willst. Hierzu legst du Dateien - falls noch nicht vorhanden - an, sobald ein Kunde etwas in seinen Warenkorb legt, und schreibst den hinzugefügten Gegenstand in die Datei.
Wenn der Kunde einen Gegenstand löscht musst du die Datei eben auslesen, leeren und neu schreiben - ohne den gelöschten Gegenstand.
 
Was spricht gegen eine DB?
Hast du alles andere mit Array's gelöst?
Gut, bleibt wirklich nur die schon mehrfach angesprochene Variante mit den .txt Dateien, welches es aber unnötig kompliziert macht und die Sicherheit ist in meinen Augen bei einer DB größer.
Es scheint alles zu komplex, vielleicht reichen ja auch schon Cookies :D

if ((User meldet sich vom anderen Rechner an) || (User löscht Cookies) || (User verweigert Cookies)) {
dann klappt das nicht
}

Also, wenn es wirklich sein muss dann bleibt dir leider nichts anderes übrig als dich hier:
http://de.php.net/manual/de/function.fopen.php
etwas durchzuklicken...
 
Naja, so kompliziert ist das arbeiten mit Text dateien auch wieder nicht.
Man muss sich eben nur ein paar gedanken mehr machen, wie zum Beispiel zeitgleicher zugriff, löschen von elemente. Das alles würde eine Datenbank für dich von alleine regeln und verwalten und man hat sicherlich eine höhere Sicherheit und zuverlässigkeitsrate.

Grundsätzlich muss man beim arbeiten mit textdateien folgendes problem beachten:
- Es dürfen nie 2 oder mehrere zugleich in eine Datei schreiben, ändern oder etwas löschen, da da Daten verloren gehen könnten: INKONSISTENTE DATEN.

Deshalb würde ich vorschlagen, dass jeder Kunde eine eigene Textdatei bekommt. So greift immer nur 1er auf 1e Textdatei zu, so ist das oben genannte problem am einfachsten zu lösen.

Wie schon gesagt, eine DB würde dir das alles abnehmen und noch weitere sicherheitsfeatures wie recovery usw. bieten, aber es geht auch über textdateien.


Wie schon gesagt, man muss halt wissen welche Textdatei zu welchen Benutzer gehört. Dazu muss man zuerst einmal wissen wie sich ein kunde überhaupt einloggt. Oder wird ein kunde gar nicht eingeloggt? Also kann sich ein kunde gar nicht registrieren? Ein paar infos wären hilfreich.
 
Zuletzt bearbeitet:
hallo Leute

Sorry die spätere Antwort, aber ich hatte gestern plötzlich kein Internet mehr, erst jetzt konnte ich alle Antworten lesen. Ich danke jeder der mitgeschrieben hat und zu "Back2toxic" sage ich, ja du hast recht, denn ich speichere die nickname und passwort in $_SESSIONS und mache nix mehr , deswegen gehen die Produkte verloren bei jedem anmelden. Die Idee ist ja zu jeder Kunde (wird durch seine Nickname identifiziert) eine Datei(muss es eine txtdatei sein?) zu legen und indem Datei halt seine gewünschte produkte reinlegen. Das habe ich bis jetzt verstanden, nun zum kodierung: da ich wie oben erwähnt habe anfänger bin, brauche ich sowas wie die ausführliche schritte zum Kodieren, mir wäre lieber ein stückcode als ersteschritt oder halt ein gutes tutorial empfehlen, indem sowas gut erklärt würde.

ich danke jedem seiner Antwort

gruß

muga
 
hoffe auf weiter Hilfe

Hallo Leute

nun habe ich es bis hierher geschaft und weiter hoffe ich auf eure Hilfe:

die gewählte Produkte im Onlineshop werden in einer datei (xmldatei)gespeichert, jeder Kunde hat eine Datei laut seiner nickname ungefähr so
PHP-Code:
$filename = fopen($ListPath . $nick, "w")
fwrite($filename, $xmltext)
usw
nun möchte ich folgendes in einer ANDERE file testen:
diese andere file ist nicht reiner PHP sondern php+ Ajax + JS. die gewünschte abfrage ist:

"existiert so ein datei, wenn ja dann lade sein inhalt auf".

komme irgendwie nicht klar, weil die anfrage in ein andere file schreibe!

kann jemand hilfen und die anfrage schreiben?

danke vorab

mual
 
Zurück