 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
08.03.2002, 23:38
|
#1
|
|
TP-Member
Registriert seit: Mar 2002
Ort: berlin
|
PHP session abfrage
Hallo
Ich habe mal wieder eine Frage zu PHP Sessions. Ich habe folgendes Problem. Ich habe eine Seite auf der eine Session gestartet wird und auf den folgeden Seiten soll diese session mit Ihren Variablen die sie beinhaltet wieder abgefragt werden.
Problem auf allen Seiten sind auch links zu einer ( start bzw. index seite), wo keine session mehr benötigt werden. Problem wenn eine Session gestartet ist, und auf diese Seite ( start oder index )gesprungen wird ( durch den link auf allen seiten )ist die session immernoch aktiv und ich kann Sie nicht löschen.
Ich denke es gibt drei mögliche Lösungen, wo ich bei keiner weiss wie ich es umsetzen soll.
1. Auf den Button der den Link auf die ( index oder start seite enthält) den befehl sesion_destroy(); zu legen. Problem hierbei, man kann immernoch den Back Button des Browsers benutzen, den kann man glaube ich nicht mit einem Befehl belegen.
2. Man kann auf der Seite eine Abfrage in PHP schreiben, wo geprüft wird ob noch eine session aktiv ist, wenn ja wird Sie beendet, wenn nicht dann passiert garnichts. Ich denke diese Methode wäre am besten.
3. Man kann auf dem Server wo PHP und der Apache läuft sagen, wie Lnage ein session cookie maximal aktiv bleiben soll. Ich benutze wie gesagt apache mit php4. meine session cookies werden in c:\php4\tmp abgelegt und bleiben dort auch so bis ich sie per hand lösche oder per session_destroy();. Ich habe gelesen , dass man in der PHP.ini auch eine Einstellung tätigen kann, nach welcher Zeit ein session cookie gelöscht werden soll, klappt aber bei mir nicht. Warum keine Ahnung!
Also wenn jemand eine Lösung für mich hat, wäre ich sehr dankbar, wobei mir Lösung 2 und 1 am Besten gefallen, wäre aber nett wenn mir auch jemand schreiben könnte wie ich Lösung 2 realisiere.
Also vielen Dank im Voraus an euch Alle
Christian
|
|
|
09.03.2002, 01:54
|
#2
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Du kannst auf den Seiten, bei denen die Session sinnlos ist pauschal folgendes an einsetzen:
PHP-Code:
session_unset();
session_destroy();
__________________
Give up yourself into the moment — The time is now.
|
|
|
09.03.2002, 12:50
|
#3
|
|
TP-Member
Registriert seit: Mar 2002
Ort: berlin
|
geht leider so nicht
Hallo nochmal,
danke für deine schnelle Antwort, abe ich glaube nicht, dass es so einfach geht. Problem an deiner Lösung ist, das du davon ausgehst, das immer eine session geööfnet ist, wenn man auf die index.php oder index.html zurück geht. Dann würde mit dem session_destroy(); auch alles klar gehen. Was mache ich aber, wenn man auch auf die index.php kommen kann, obwohl keine session am laufen ist, dann bekomme ich ein Fehlermeldung., das er keine session zerstören konnte, weil ja logischer weise auch keine aktiv war!
Es muss doch eine möglichkeit geben, eine session abfragen zu können. Mal als dummes und falsches beispiel:
if (session_is_active) {
session_destroy
}else{
}
oder das else weglassen, aber so einen Befehl habe ich bis jetzt noch nicht gefunden!
Vielen Dank
Christian
|
|
|
09.03.2002, 19:45
|
#4
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Verstehe. Dann vielleicht so:
PHP-Code:
if(isset($HTTP_SESSION_VARS))
session_unset();
session_destroy();
}
__________________
Give up yourself into the moment — The time is now.
|
|
|
10.03.2002, 10:32
|
#5
|
|
TP-Member
Registriert seit: Mar 2002
Ort: berlin
|
cool danke
Ich denke das ist die abfrage, ob eine session läuft oder nicht. cool danke!!!
Wozu ist denn das "isset" , ich meine wofür steht das ??
Wozu ist denn " $HTTP_SESSION_VARS ", ich denke mal das es der Befehl ist, um zu checken ob eine session aktiv ist. bedeutet das HTTP_....., das es nur bei session_cookies geht, die an der URL angehängt sind ?
Aufjedenfall danke ......
Ich teste gleich mal!
|
|
|
10.03.2002, 12:44
|
#6
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
$HTTP_SESSION_VARS ist eine Konstante (deswegen die Großschreibung) in der alle in einer Session registrierten Variablen als Array vorliegen (z.B. $HTTP_SESSION_VARS['xyz']). Und da diese Konstante nur existent ist, wenn tatsächlich eine Session gestartet wurde, kannst Du damit prima eine solche Überprüfung durchführen.
Mit isset() kannst Du überprüfen, ob eine Variable zur Laufzeit des Scripts exitiert.
__________________
Give up yourself into the moment — The time is now.
|
|
|
15.03.2002, 12:14
|
#7
|
|
TP-Member
Registriert seit: Mar 2002
Ort: berlin
|
Button session_destroy()
Hallo,
kann ich auch mit druck auf einen Button eine session zerstören?
Also ich habe eine schrift " zurück ", wenn man darauf drückt, dann sollte sich die session zerstören .!!
Danke
|
|
|
15.03.2002, 12:30
|
#8
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Hmm... falls möglich solltest Du wie folgt vorgehen:
Baue Deinen "Zurück"-Link so um:
PHP-Code:
<a href="logout.php?back=<?php print("$HTTP_REFERER"); ?>>Zurück</a>">
Erstelle dann eine Datei namens logout.php (der Name ist irrelevant) mit folgendem Inhalt:
PHP-Code:
<?php
if(isset($HTTP_SESSION_VARS))
session_unset();
session_destroy();
}
header("Location($back)");
?>
Wenn Du jetzt auf den Link klickst, wird zuerst die Logout-Datei geöffnet, die Sesion zerstört und dann zur eigentlichen vorhergehenden Seite gesprungen. Das sollte eigentlich so schnell gehen, dass es keiner merkt. 
__________________
Give up yourself into the moment — The time is now.
|
|
|
15.03.2002, 17:02
|
#9
|
|
TP-Member
Registriert seit: Mar 2002
Ort: berlin
|
Alles Cool
Also wenn ich dich richtig verstehe, dann habe ich folgende dateistruktur.
Als Beispiel:
eins.php ( enthält den " Zurück Button " )
zwei.php ( enthält den "code" um die session zu zerstören )
Drücke ich auf den zurück button, dann lande ich am ende wieder auf " eins.php " richtig ?? denke schon. Ich will aber nicht auf der selben seite wieder landen, sondern ich stelle mir das so vor.
eins.php ( zurück button )
zwei.php ( session_destroy() befehl )
drei.php ( hier soll man dann landen, wenn man auf zurück gedrückt hat ).
Das habe ich versucht hinzubekommen, aber mit der Abrage, die du mir vorher schon mal geschrieben hattest ging es irgendwie leider nicht!
Kannst du mir vielleicht für dieses Beispiel noch mal ein quellcode example geben. Danke
P.S.: hast du eine ICQ nummer oder messenger oder etc . ??
|
|
|
15.03.2002, 18:08
|
#10
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Das heisst, der Benutzer soll immer auf einer bestimmten Seite landen, nachdem die Session zerstört wurde? Dann musst Du obiges Beispiel so ummbauen
PHP-Code:
...
header("Location: drei.php");
__________________
Give up yourself into the moment — The time is now.
|
|
|
16.03.2002, 00:23
|
#11
|
|
TP-Member
Registriert seit: Mar 2002
Ort: berlin
|
alles klar
danke...
was war mit der icq nummer oder etc.??
|
|
|
16.03.2002, 01:59
|
#12
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Ooops, habe ich ganz vergessen... Du erreichst mich per MSN unter schmobi@hotmail.com!
__________________
Give up yourself into the moment — The time is now.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:11 Uhr.
|
 |