Hallo erstmal,
ich bin doch noch "recht" unerfahren was php angeht, doch ich lerne schnell.
Jetzt versuche ich mich an einer website, mit der es möglich ist, kleine grußkarten zu erstellen. Man kann das layout, text, farben und fotos auswählen udn zusammenstellen. die dabei eingegebenen daten sollen mittels POST übergeben werden. Natürlich funktioniert der generator über 4 seiten hinweg, der user fügt also weitere daten hinzu (text), klickt auf weiter, fügt einen anderen wert hinzu (hintergrundfarbe).
Zum Schluss möchte ich dann die werte in einer Datenbank ablegen.
Nun muss ich aber erstmal soweit kommen, dass die werte bis zum abspeichern im letzten Schritt erhalten bleiben. Kann mir da jemand weiterhelfen?
Also Kurzform:
Wie speichere ich Daten und Werte über mehrere Seiten hinweg?
Gruß
max
Mit $_POST valiabeln über mehrere Links hinweg speichern?
-
-
Zwei Möglichkeiten:
1.) mit Sessions
http://de.php.net/session
2.) mit hidden-Feldern für die Formulare auf den Folgeseiten, über die du die bisher eingegebenen Daten weiter übergibst. -
Wobei gesagt werden sollte, dass das mit Session eleganter zu lösen ist. Zumal man damit auch ein "Zurück" problemlos hinbekommt.
-
Dankeschön, also sessions...
was ist das? ich habe mich jetzt ein wenig belesen und muss sagen: das klingt recht kompliziert...
Muss ist dort erst scripte auf meinem server installieren und cockies speichern lassen?
Ob Ihr mir vllt. den grundbefehl zeigen könntet?
unter: http://de.php.net/manual/de/session.configuration.php
sind ja so viele Befehle aufgelistet und ich weis nicht, welche ich davon benutzen soll.
vielen Dank
Gruß
Max -
Ein Testbeispiel
PHP
Alles anzeigen<?php // // session1.php // session_start(); $_SESSION['user'] = "Webmaster"; echo "<a href=\"session2.php\">Weiter zu session2.php</a>"; ?>
-
Du schreibst an den Anfang deines Skriptes, VOR jeder ausgabe ein
Danach hast du den $_SESSION Array verfügbar der auch über mehrere Seitenaufrufe hinweg gespeichert wird.
Nach dem Abschicken eines Formulars speicherst du die eingegebenen Werte im session-array und hast sie darüber dann auch auf den Folge-Seiten zur Verfügung:
Ist also gar nicht so kompliziert wie es aussieht.
-
Habe das Beispiel gerade auf meinen server geladen:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/web120084/html/ecards/session1.php:8) in /var/www/web120084/html/ecards/session1.php on line 9
so also ich denke das problem ist, dass sessions nicht aktiviert sind. hab n linux server und session.auto_start ist auf OFF
wie kann ich das umstellen? oder liegt es doch woanders ? -
Nein es liegt nicht daran, dass du keine Sessions aktiviert hast, sondern daran, dass du vorher schon eine Ausgabe an den Browser hattest.
session_start(); <-- das muß ganz am Anfang deiner Datei stehen, auch keine Leerzeilen oder -zeichen davor.
Edit: session.auto_start <-- das ist egal, das hat nichts mit der Verfügbarkeit von sessions zu tun, sondern nur damit wie sie gestartet werden. Wenn das auf "ON" steht brauchst du halt das session_start(); nicht. -
Die Antworten richtig lesen hilft manchmal. -
-
danke super leute also das beispiel hat schonma geklappt mal gucken wie es weitergeht
also erstmal vielen dank...ich werd später sicher wieder nicht weiterkommen... ich versuchs mal -
muss in jeder Datei in der du die Variablen benutzen möchtest auch an erster Stelle sein
Nein, muss nicht!Wichtig ist, vor irgendeiner Ausgabe, und sei es nur ein Leerzeichen!
-
Richtig. Wenn man z.B. objektorientiert programmiert müssen klassendeklarationen VOR dem session_start(); stehen, wenn man Objekte in der Session speichern will. Andernfalls könne diese nicht wieder intialisiert werden.
-
ach noch was: was ist eigentlich, wenn der user cockies deaktiviert hat?? wird dann automatisch eine zufallszahl generiert und an die url gehängt oder muss ich das noch einbauen??
-
also leute, wollte euch nochma danken, es klappt jetzt