Daensch hat gesagt.:
.. wäre es vielleicht nicht zumindest dann auch sinnvoller wenn man z.b. bei 2000Hits am Tag das ein bisschen aufteilt um den Server zu entlasten? oder is das eher kaum bemerkbar?=(
Grundsätzlich hast Du sicher recht, dass man vorher einige grundlegende Überlegungen anstellen sollte. Wenn Du z.B. seitenübergreifenden Komfort anbieten möchtest, kommst zu z.T. um Session-Variablen nicht herum. Natürlich ist alles sinnvoll, was den Server entlastet, solange es anders realisierbar ist.
Aber: Sessions funktionieren
immer, Cookies
könnten abgelehnt werden...
Anwendungs-Beispiel:
Ich zeige meinem Besucher dynamisch Daten aus einer Datenbank, sagen wir, Adressen. Der User kann auswählen, ob diese z.B. nach Name etc. sortiert werden, wieviele Sätze pro Seite etc. Er blättert nun durch und stoppt bei Adressen 31 bis 40.
Da er sich entschließt, zwischendurch mal auf die Kontaktseite zu wandern und eine Mail zu verschicken, kommt er irgendwann später wieder auf meine Adressseite zurück (also ohne irgendwelche Parameter).
Praktisch wäre nun doch, wenn sich der Server die o.g. Parameter gemerkt hätte, und der User sozusagen "seine alte Seite" wiederbekommt.
Dazu speichere
ich diese Parameter in der Session.
Daensch hat gesagt.:
Und vielleicht kennt jmd noch n gutes tut oda so, wo Session gut erklärt sind? hab mit dem Verständis so meine Probleme ! =(
Naja, ein guter Ansatz wäre das PHP-Manual ;-) Ich will hier mal meine Vorgehensweise schildern, ohne dabei den Anspsuch zu stellen, ich hätte die Weisheit mit Löffeln gefressen und alles ist genauso und nur so wie ich es zeige, richtig. Aber es funktionert so.
Komme ich mal auf das Beispiel zurück, könnte ich Teile davon so realisieren:
PHP:
session_name ( 'MYID' ); // optional, aber dann bitte überall gleich!
session_start();
.
.
.
if ( isset ( $_GET['start'] )
$_SESSION['start'] = $_GET['start'];
.
.
.
$query = sprintf ( "SELECT * FROM tabelle WHERE irgendwas LIMIT %d, %d",
$_SESSION['start'], $_SESSION['max'] );
Zur Erklärung:
session_start() beginnt die Session und muss in
jedem PHP-Skript mehr oder weniger am Anfang stehen.
Erst danach kann ich mit $_SESSION[...] auf Sessionvariablen zurückgreifen.
Da mir der von PHP vorbesetzte Namen der Session "PHPSESSID" nicht so gefällt, benutzt ich gerne meinen eigenen, dazu muss ich vor dem Session-Start
session_name ( name ) aufrufen. Aber dass muss dann penibel genau auch in
jedem Skript erfolgen! Sonst benutzen diese Skripte dann unterschiedliche Sessions (was u.U. an anderer Stelle gewünscht sein könnte).
Nehmen wir an, dass ich den Start-Wert mittels get übergebe. Wird ein neuer Wert übergeben, wird dieser in meiner Session gespeichert. In meiner späteren Verwendung greife ich dann ausschließlich auf diese Session-Variable zurück. Diese passt auch dann noch, wenn der User zwischendurch mal woanders war.
Oder aber, ich kann den Start-Wert in einem ganz anderen Skript überschreiben, falls gewünscht.
Klar, das hier noch einige Sachen fehlen - Gültigkeitsprüfungen und Standard-Werte. Aber das Prinzip sollte damit gezeigt sein, jetzt bist Du dran, damit herum zuexperimentieren...
Alles klar?
Micha