Sich entwickelnde Zustand-ermöglichte Anwendungen mit PHP

| by John L | November 07, 2004
Ratenzahlung 1

Sich entwickelnde Zustand-ermöglichte Anwendungen mit PHP

Wenn ein Benutzer durch eine Web site grast und von einer Webseite zu anderen surft, manchmal muß die Web site sich an die Tätigkeiten (z.B. Wahlen) erinnern durchgeführt vom Benutzer. Z.B. in einer Web site, die DVDs verkauft, grast der Benutzer gewöhnlich durch eine Liste von DVDs und wählt einzelnes DVDs für überprüfung heraus am Ende des Einkaufenlernabschnittes vor. Die Web site muß sich erinnern, an welches DVDs der Benutzer vorgewählt hat, weil die vorgewählten Einzelteile dem Benutzer wieder dargestellt werden muß, wenn der Benutzer heraus überprüft. Das heißt, muß die Web site sich an den Zustand - d.h. die vorgewählten Einzelteile - der Grasentätigkeiten des Benutzers erinnern.

Jedoch ist HTTP ein Stateless Protokoll und ist schlecht ausgerüstet, Zustände anzufassen. Eine Standard-HTML Web site stellt im Allgemeinen Informationen zum Benutzer und eine Reihe Verbindungen zur Verfügung, die einfach den Benutzer auf andere in Verbindung stehende Webseiten verweist. Diese Stateless Natur von HTTP erlaubt, daß die Web site über vielen Bedienern zu Last ausgleichenden Zwecken wiederholt wird. Eine Hauptbeeinträchtigung ist, daß, beim Grasen von einer Seite zu anderen, die Web site sich nicht an den Zustand des Grasenlernabschnittes erinnert. Diese Marke Wechselwirkung fast unmöglich.

Um Wechselwirkung zu erhöhen, kann der Entwickler den Lernabschnitt verwenden, der Eigenschaften von PHP anfaßt um die Eigenschaften von HTTP zu vergrößern um sich an den Zustand des Grasenlernabschnittes zu erinnern. Sind im Allgemeinen 2 Möglichkeiten, die PHP dies tut:
  •  Verwenden der Plätzchen
  •  Verwenden von Lernabschnitten

Die folgende Ratenzahlung bespricht, wie man handhabt Lernabschnitte mit Plätzchen…

Ratenzahlung 2

Plätzchen

Plätzchen werden benutzt, um Zustand-Informationen in der Datenbanksuchroutine zu speichern. Datenbanksuchroutinen werden zu 20 Plätzchen für jedes Gebiet aufrechterhalten lassen und die Werte, die im Plätzchen gespeichert werden, können nicht 4 KBs übersteigen. Wenn mehr als 20 Plätzchen durch die Web site hergestellt werden, nur die neuesten 20 gespeichert werden. Plätzchen sind in den Fällen nur verwendbar, die nicht komplizierte Lernabschnittkommunikationen erfordern und werden nicht von etwas Entwicklern wegen der Privatlebenausgaben bevorzugt. Ausserdem sperren einige Benutzer Unterstützung für Plätzchen an ihren Datenbanksuchroutinen.

Das folgende ist eine typische Bedienerdatenbanksuchroutine Ereignisreihenfolge, die auftreten, wenn ein Plätzchen benutzt wird:
  •  Der Bediener weiß, daß er sich an den Zustand des Grasens des Lernabschnittes erinnern muß
  •  Der Bediener stellt ein Plätzchen her und benutzt die Einstellen-Plätzchen überschrift auffangen in der HTTP Antwort, um das Plätzchen zur Datenbanksuchroutine zu führen
  •  Die Datenbanksuchroutine liest das Plätzchen auffangen in der den HTTP Antwort und Speichern das Plätzchen
  •  Diese Plätzcheninformationen werden entlang zukünftige Datenbanksuchroutinebediener Kommunikationen geführt und können in den PHP Indexen als Variable verwendet werden

PHP liefert eine Funktion, die setcookie genannt wird () um einfache Kreation der Plätzchen zu erlauben. Die Syntax für setcookie ist:

internes setcookie (Zeichenkettename, [Zeichenkette val], [internes expiration_date], [Zeichenketteweg], Zeichenkettegebiet, [intern sichern])

Die Parameter sind:
  •  Name - dieses ist ein vorgeschriebener Parameter und wird nachher verwendet, das Plätzchen zu kennzeichnen
  •  Wert - der Wert des Plätzchens - z.B., wenn das Plätzchen benutzt wird, um den Namen des Benutzers zu speichern, der Wertparameter speichert den tatsächlichen Namen - z.B. John
  •  expiration_date - die Lebenszeit des Plätzchens. Nach diesem Datum läuft das Plätzchen ab und ist unbrauchbar
  •  Weg - der Weg bezieht sich das auf URL, von dem das Plätzchen gültig ist und gewährte
  •  Gebiet - Gebiet verursacht dem Plätzchen und wird den Inhalt des Plätzchens lesen gelassen
  •  sicheres - spezifiziert, wenn das Plätzchen nur durch einen sicheren Anschluß gesendet werden kann - z.B. SSL ermöglichen Lernabschnitten

Das folgende ist ein Beispiel, das zum Benutzer anzeigt, wieviele Male eine spezifische Webseite zum Benutzer angezeigt worden ist. Copy der Code unten (das php und das HTML) in eine Akte mit der .php Verlängerung und prüfen sie heraus. [? php//check, wenn die $count Variable mit dem Zählimpuls cookieif verbunden gewesen ist (! isset ($count)) {$count = 0;} sonst {$count++;}setcookie („Zählimpuls“, $count, Zeit () +600,“/„, "", 0);?][HTML] [Kopf] [Titel] Lernabschnitt, der mit Plätzchen [/title] [/head] [Körper] ist diese, anfaßt Seite angezeigt worden: [? =$count?] Zeiten. [/body] [/html]

Die folgende Ratenzahlung bespricht, wie man Lernabschnitte mit dem PHP Lernabschnitt handhabt, der anfaßt Funktionen mit den ermöglichten Plätzchen…

Ratenzahlung 3

PHP Lernabschnitt-Behandlung - Plätzchen ermöglicht

Anstatt, Lernabschnittinformationen an der Datenbanksuchroutine durch den Gebrauch der Plätzchen zu speichern, können die Informationen am Bediener in den Lernabschnittakten anstatt gespeichert werden. Eine Lernabschnittakte wird für jeden Benutzerlernabschnitt hergestellt und beibehalten. Z.B. wenn es drei gleichzeitige Benutzer gibt, welche die Web site grasen, werden drei Lernabschnittakten - eine für jeden Benutzer hergestellt und beibehalten. Die Lernabschnittakten werden gelöscht, wenn der Lernabschnitt ausdrücklich durch den PHP Index oder durch einen Dämonabfall-Ansammlung Prozeß geschlossen wird, der von PHP bereitgestellt wird. Gute programmierenpraxis würde verlangen im Index die ausdrücklich geschlossen zu werden Lernabschnitte.

Das folgende ist eine typische Bedienerdatenbanksuchroutine Ereignisreihenfolge, die auftreten, wenn eine PHP Lernabschnittbehandlung verwendet wird:
  •  Der Bediener weiß, daß er sich an den Zustand des Grasens des Lernabschnittes erinnern muß
  •  PHP erzeugt ein sssion Identifikation und stellt eine Lernabschnittakte her, um zukünftige Informationen wie von folgenden Seiten gefordert zu speichern
  •  Ein Plätzchen ist erzeugtes wih der Lernabschnitt Identifikation an der Datenbanksuchroutine
  •  Dieses Plätzchen, das den Lernabschnitt Identifikation speichert, wird durchsichtig und automatisch zum Bediener für alle folgenden Anträge zum Bediener geschickt

Das folgende PHP Lernabschnitt-anfassenbeispiel vollendet das gleiche Resultat wie das vorhergehende Plätzchenbeispiel. Copy der Code unten (das php und das HTML) in eine Akte mit der .php Verlängerung und prüfen sie heraus.

[? php//starts ein sessionsession_start (); An //informs PHP, das zählen, Informationsbedarf, im Lernabschnitt fileif erinnert zu werden (! session_is_registered („Zählimpuls“)) {session_register („Zählimpuls“); $count = 0;}sonst {$count++;}$session_id = session_id ();?][HTML] [Kopf] [Titel] PHP Lernabschnitt-Behandlung - Plätzchen-Ermöglicht worden [/title] [/head] [Körper] ist die gegenwärtige Lernabschnittkennzeichnung: [? =$session_id?] Diese Seite ist angezeigt worden: [? =$count?] Zeiten. [/body] [/html]

Eine Zusammenfassung der Funktionen, die PHP für die Lernabschnittbehandlung voraussetzt, sind:
  •  Boolesches start_session () - initialisiert einen Lernabschnitt
  •  session_id aufreihen ([Zeichenkettekennzeichnung]) - entweder zurückbringt die gegenwärtige Lernabschnittkennzeichnung oder spezifiziert die verwendet zu werden Lernabschnittkennzeichnung, wenn der Lernabschnitt verursacht wird
  •  Boolesches session_register (Mischname [, gemischt…]) - in der Lernabschnittakte gespeichert zu werden Registervariablen. Jeder Parameter, der in die Funktion geführt wird, ist eine unterschiedliche Variable
  •  Boolesch session_is_registered (Zeichenkette variable_name) - überprüfungen, wenn eine Variable vorher registriert worden ist, in der Lernabschnittakte gespeichert zu werden
  •  session_unregister (Zeichenkette varriable_name) - unregisters eine Variable von der Lernabschnittakte. Nicht registrierte Variablen sind nicht mehr als Referenz im Lernabschnitt gültig.
  •  session_unset () - unsets alle Lernabschnittvariablen. Es ist wichtig, zu merken, daß alle Variablen registriert bleiben.
  •  Boolesches session_destroy () - zerstört den Lernabschnitt. Dieses ist Entgegengesetztes der start_session Funktion.

Die folgende Ratenzahlung bespricht, wie man Lernabschnitte mit dem PHP Lernabschnitt handhabt, der Funktionen anfaßt, wenn Plätzchen sind untauglich…

Ratenzahlung 4

PHP Lernabschnitt-Behandlung - ohne Plätzchen

Wenn Plätzchen an der Datenbanksuchroutine untauglich sind, kann das oben genannte Beispiel nicht arbeiten. Dieses ist, weil, obgleich die Lernabschnittakte, die alle Variablen speichert, am Bediener gehalten wird, ein Plätzchen noch an der Datenbanksuchroutine benötigt wird, um den Lernabschnitt Identifikation zu speichern, der verwendet wird, um den Lernabschnitt und seine verbundene Lernabschnittakte zu kennzeichnen. Die allgemeinste Weise um dieses würde sein, den Lernabschnitt Identifikation zurück zu dem Bediener von der Datenbanksuchroutine als Frage Parameter im URL ausdrücklich zu führen.

Z.B. erzeugt der PHP Index die Anträge, die dem start_session Anruf im folgenden Format folgend sind:

http://www.yourhost.com/yourphpfile.php?PHPSESSID= [tatsächlicher Lernabschnitt Identifikation]

Die folgenden ist Excerpts, die die Diskussion veranschaulichen:

Das URL manuell errichten:

$url = „http://www.yoursite.com/yourphppage.php?PHPSESSID=“. session_id ();
[ein href= " [? =$url?]„] Anker-Text [/a]

Errichten des URL mit SID:

[ein href= " http://www.yoursite.com/yourphppage.php? [? =SID?]„] Anker-Text [/a]

Article Source: http://www.articleset.com



About the Author

John L is the webmaster of http://www.bimmercenter.com..

daboss@bimmercenter.com » Read more articles by John L
You are welcome to publish or reprint this article free of charge, provided: