[php] Sessions

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Also ich bin auf der Suche nach einem Einfachen "Howto" zu Sessions :) ich hatte hier schonmal was geschrieben aber der Herr der mir da freundlicherweise geholfen hat hat mich leider nur total verwirrt :> ich hab das mal getestet und es kommen nur fehlermeldungen :( wäre also nett wenn da jemand ein ausführliches einfaches Howto zu sessions hat.

Danke
 
^^auch auf die gefahr hin, dass ich dich nochmal verwirre hier mal ein Zitat aus dem PHP-Manual von PHP.net

Beispiele
Anmerkung: Seit PHP 4.1.0 steht $_SESSION genau wie $_POST, $_GET, $_REQUEST und so weiter, als globale Variable zur Verfügung. Im Gegensatz zu $HTTP_SESSION_VARS ist $_SESSION immer global. Deshalb brauchen Sie für $_SESSION nicht das Schlüsselwort global zu verwenden. Bitte beachten Sie, dass in dieser Dokumentation nun überall $_SESSION verwendet wird. Sie können $_SESSION durch $HTTP_SESSION_VARS ersetzen, wenn Sie Letzteres bevorzugen. Beachten Sie auch, dass Sie Ihre Session mit session_start() starten müssen, bevor die Verwendung von $_SESSION zur Verfügung steht.

Für die Schlüssel des assoziativen $_SESSION-Arrays gelten die selben Beschränkungen, wie für die Bezeichnungen von regulären Variablen in PHP, d.h. sie dürfen nicht mit einer Zahl, sondern müssen mit einem Buchstaben oder Unterstrich beginnen. Um weitere Deteils zu erhalten, siehe Abschnitt Variablen.

Falls register_globals deaktiviert ist, können nur Bestandteile des globalen assoziativen Arrays $_SESSION als Session-Variablen registriert werden. Wiederhergestellte Session-Variablen stehen nur im Array $_SESSION zur Verfügung.

Aus Gründen der Verbesserung der Sicherheit und der Lesbarkeit des Codes wird die Verwendung von $_SESSION (oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder niedriger) empfohlen. Mit $_SESSION werden die Funktionen session_register(), session_unregister() und session_is_registered() nicht benötigt. Auf die Session-Variablen kann wie auf jede normale Variable zugegriffen werden. Beispiel 1. Registrierung einer Variablen mit $_SESSION.

PHP:
<?php
session_start();
// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS
if (!isset($_SESSION['zaehler'])) {
    $_SESSION['zaehler'] = 0;
} else {
    $_SESSION['zaehler']++;
}
?>


Beispiel 2. Aufheben der Registrierung einer Variablen mit $_SESSION und deaktiviertem register_globals.

PHP:
<?php
session_start();
// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS
unset($_SESSION['zaehler']);
?>


Beispiel 3. Aufheben der Registrierung einer Variablen mit aktiviertem register_globals, nachdem sie unter Verwendung von $_SESSION registriert wurde.

PHP:
<?php
session_start();
// Ab PHP 4.3, können Sie auch einfach das vorige Beispiel benutzen.
session_unregister('count');
?>




Wenn register_globals aktiviert ist, kann jede globalen Variable als Session-Variable registriert werden. Beim Neustart einer Session werden diese Variablen als entsprechende globale Variablen wiederhergestellt. Da PHP wissen muss, welche globalen Variablen als Session-Variablen registriert sind, muss der Benutzer Variablen mit der Funktion session_register() registrieren. Sie können das vermeiden, indem Sie einfach Einträge in $_SESSION setzen.
 
Ok danke habs nun hinbekommen :) Ne andere Frage wie suche ich in dem Array nach einem bestimmten wer? damit ein wert halt nicht 2 mal drin vorkommt oder ich den wert löschen möchte ?
 
array_unique
(PHP 4 >= 4.0.1)

array_unique -- Entfernt doppelte Werte aus einem Array
Beschreibung
array array_unique ( array array)


array_unique() nimmt array und gibt ein neues Array zurück, aus dem alle doppelten Einträge entfernt wurden.

Beachten Sie, dass Schlüssel bewahrt bleiben. Erst behandelt array_unique() die Werte als Strings und sortiert sie, danach wird der erste gefundene Schlüssel behalten, und alle folgenden Schlüssel ignoriert. Das heißt nicht, dass der Schlüssel des ersten zugehörigen Wertes aus dem unsortierten array behalten wird.

Anmerkung: Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In Worten: Wenn die String-Repräsentation die gleiche ist.

Das erste Element wird verwendet.

^^sollte dir helfen.

Ansinsten versuch "array_search" oder "in_array". Evtl auch "array_flip".
 
Also das unique ist glaub nicht so sinnvoll ich habe halt vor ein eintrag zu speichern im Array aber vorher abzufragen ob genau dieser wert schon einmal irgendwo im array enthalten ist.. wenn dies der fall ist soll er halt sagen mööp eintrag schon vorhanden und wenn nicht soll er es normal adden.

Und das 2. ist ich möchte den wert blubb im array suchen und dann löschen
 
quicksilver schrieb:
Also das unique ist glaub nicht so sinnvoll ich habe halt vor ein eintrag zu speichern im Array aber vorher abzufragen ob genau dieser wert schon einmal irgendwo im array enthalten ist.. wenn dies der fall ist soll er halt sagen mööp eintrag schon vorhanden und wenn nicht soll er es normal adden.

Und das 2. ist ich möchte den wert blubb im array suchen und dann löschen

Das sind alle "Array Funktionen" laut Manual. Such dir was aus:
Inhaltsverzeichnis
array_change_key_case -- Liefert ein Array mit allen String-Schlüsseln in Klein- oder Großbuchstaben
array_chunk -- Splittet ein Array in Teile auf
array_count_values -- Zählt die Werte eines Arrays
array_diff_assoc -- Computes the difference of arrays with additional index check
array_diff -- Ermittelt die Unterschiede von Arrays
array_fill -- Füllt ein Array mit Werten
array_filter -- Filtert Elemente eines Arrays mittels einer Callback-Funktion
array_flip -- Vertauscht Werte und Schlüssel in einem Array
array_intersect_assoc -- Computes the intersection of arrays with additional index check
array_intersect -- Ermittelt die Schnittmenge von Arrays
array_key_exists -- Prüft, ob ein Schlüssel in einem Array existiert
array_keys -- Liefert alle Schlüssel eines Arrays
array_map -- Wendet eine Callback-Funktion auf die Elemente von Arrays an
array_merge_recursive -- Führt zwei oder mehr Arrays rekursiv zusammen
array_merge -- Führt zwei oder mehr Arrays zusammen
array_multisort -- Sortiert mehrere oder multidimensionale Arrays
array_pad -- Vergrößert ein Array auf die spezifizierte Länge mit einem Wert
array_pop -- Liefert das letzte Element eines Arrays
array_push -- Fügt ein oder mehr Elemente an das Ende eines Arrays
array_rand -- Liefert einen oder mehrere zufällige Einträge eines Arrays
array_reduce -- Iterative Reduktion eines Arrays zu einem Wert mittels einer Callback Funktion
array_reverse -- Liefert ein Array mit umgekehrter Reihenfolge der Elemente
array_search -- Durchsucht ein Array nach einem Wert liefert bei Erfolg den Schlüssel
array_shift -- Liefert ein Element vom Beginn eines Arrays
array_slice -- Extrahiert einen Ausschnitt eines Arrays
array_splice -- Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
array_sum -- Liefert die Summe der Werte in einem Array
array_unique -- Entfernt doppelte Werte aus einem Array
array_unshift -- Fügt ein oder mehr Elemente am Anfang eines Arrays ein
array_values -- Liefert alle Werte eines Arrays
array_walk -- Wendet eine Benutzerfunktion an jedem Element eines Arrays an
array -- Erstellt ein Array
arsort -- Sortiert ein Array in umgekehrter Reihenfolge und behält die Verbindung zum Index
asort -- Sortiert ein Array und behält die Indexverbindungen
compact -- Erstellt ein Array mit Variablen und deren Werten
count -- Zählt die Elemente einer Variable
current -- Liefert das aktuelle Element eines Arrays
each -- Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Array Cursor vor.
end -- Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
extract -- Importiert Variablen eines Arrays in die aktuelle Symboltabelle
in_array -- Prüft, ob ein Wert in einem Array existiert
key -- Liefert einen Schlüssel eines assoziativen Arrays
krsort -- Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge
ksort -- Sortiert ein Array nach Schlüsseln
list -- Weist Variablen zu, als wären sie ein Array
natcasesort -- Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert
natsort -- Sortiert ein Array in "natürlicher Reihenfolge"
next -- Rückt den internen Zeiger eines Arrays vor
pos -- Liefert das aktuelle Element eines Arrays
prev -- Verkleinert den internen Zeiger eines Arrays
range -- Erstellt ein Array mit einem Bereich von Elementen
reset -- Setzt den internen Zeiger eines Arrays auf sein erstes Element
rsort -- Sortiert ein Array in umgekehrter Reihenfolge
shuffle -- Mischt die Elemente eines Arrays
sizeof -- Liefert die Anzahl Elemente einer Variable
sort -- Sortiert ein Array
uasort -- Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei.
uksort -- Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion.
usort -- Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion.
 
So nochwas :) Wie kann ich schauen ob das array Existiert? also ich möchte abfragen ob das array schon erstellt ist bzw ob dort schon werte drin sind ?
 
mit isset() wie bei jeder variablen ;)

und nach werten kannste mit count($array)==0 schaun ;)
 
Jo ok aber das geht irgendwie nicht ich habe beides probiert :(

einmal das hier:
PHP:
if (count($_SESSION["zip"]) == 0)
{
echo"blubb";
}

und einmal:

PHP:
if (isset($_SESSION["zip"]))
{
echo"blubb";
}

Er zeigt das dann leider nicht an wenn im array was drin steht :(
 
PHP:
if(!isset($_SESSION[zip]))
{
  echo '$_SESSION[zip] existiert nicht.';
}
else
{
  echo '$_SESSION[zip] enthält '.count($_SESSION[zip]).'Elemente.';
}

^^versuch das mal ;)
 
Hm verstehe ich nicht der Text wird trotzdem Angezeigt obwohl das Array definitv leer ist laut
PHP:
print_r($_SESSION["zip"]);

Ich hab dort stehen:
PHP:
if(isset($_SESSION[zip]))
{
echo"Es sind einträge vorhanden";
}

Und auch wenn das array leer ist wird der eintrag angezeigt :(
 
du musst das array aus $_SESSION mir session_unset oder so löschen, wenn du es mal benutzt hast.
 
Zurück
Oben