php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.02.2008, 23:55  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 20
sternschnuppe99 befindet sich auf einem aufstrebenden Ast
Standard Frage zu Sessions und Variablen in Session

Hallo,
habe folgendes Problem: auf meiner Startseite frage ich den Login-Namen ab. Damit ich diesen auf meinen anderen Seiten weiterverwenden kann, benutze die Session. Zur Kontrolle für mich gebe ich den Namen auf der Startseite aus.
PHP-Code:
<?php
session_start
();
if (
$_ENV['REMOTE_USER']<>"")
  {
  
$_SESSION['haendler']=$_ENV['REMOTE_USER'];
  }
echo 
"Händlername: ".$_SESSION['haendler']."

"
;
?>
Zunächst sieht es so aus, als ob es funktioniert. Von der Startseite kann man auf 3 weitere Seiten per Funktionsbuttons verzweigen. Von dort kommt man immer wieder zurück zur Startseite. Wenn ich zwischen den Seiten hin und her wechsle, verschwindet der Variableninhalt immer mal wieder und das schlimme daran ist, dass ich es überhaupt nicht reproduzieren kann.

Wenn ich dann wieder auf irgendeine andere Seite gehe, ist der Variableninhalt auf einmal wieder da.

Ich versteh das alles nicht, hab allerdings noch keine Erfahrung mit Sessions. Muss ich da noch irgendwas machen außer starten?

Weiß jemand Rat?
Gruß
sternschnuppe
sternschnuppe99 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.02.2008, 00:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ja, lies das besser noch einmal nach. Du mußt die SessionID übergeben, sofern dies nicht automatisch geschieht. Dies kann via GET/POST erreicht werden, wenn nicht ohnehin Cookies verwendet werden.

Dein Problem kann aber auch am Browsercache liegen, der Dir eine alte Seite zeigt. Das kannst Du mit einem variablen GET Parameter (indem Du bspw. dem Link den aktuellen Timestamp anhängst) verhindern.
nikosch ist offline  
Alt 16.02.2008, 00:51  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

hi,

in $_ENV (enviroment - server umgebung) sind nur server spezifische daten gespeichert. das REMOTE_USER darin existiert ist zwar möglich, mir aber noch nie untergekommen. auf jeden fall wird der server dort etwas reinschreiben.

was also steht in $_ENV['REMOTE_USER'] und wie stellst du dir diese einbindung vor?

gruß
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline  
Alt 17.02.2008, 16:47  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 20
sternschnuppe99 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

@brian:
die Verwendung der Variablen REMOTE_USER funktioniert grundsätzlich ja schon. Ich bekomme den Benutzernamen ja. Klar, kann auch $_SERVER nehmen. Aber das ist ja nicht das Problem. Nachdem ich den Benutzernamen in die Session-Variable übergeben habe, verschwindet er immer wieder.

Gruß
sternschnuppe
sternschnuppe99 ist offline  
Alt 17.02.2008, 16:53  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 20
sternschnuppe99 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
@nikosch77:

ich habe jetzt die Session-ID so eingebunden:
PHP-Code:
<input type="hidden" name="PHPSESSID" value="<?=session_id()?>">
Es funktioniert aber immer noch nicht. Zur Kontrolle gebe ich jetzt auch die Session ID auf der Seite aus. Die ist immer die gleiche, egal ob die Variable gerade leer ist oder nicht. Es sieht also nicht danach aus, als ob die Session irgendwie verloren geht.

Das mit dem Cache kann ich mir nicht so recht vorstellen. Sonst müßte ich da ja ständig damit rechnen, wenn ich mit sessions arbeite. Außerdem habe ich den auch schon ein paar Mal geleert. Ich hab's allerdings noch nicht mit dem Timestamp versucht. Hab das Problem aber sowohl mit Firefox, als auch mit IE6.

Hat du vielleicht noch eine Idee? An der if-Abfrage kann es doch eigentlich nicht liegen. Die habe ich ja extra deswegen gemacht, dass mir meine Variable nicht überschrieben wird, wenn $_ENV[remote_user] nicht mehr existiert.

Gruß
sternschnuppe
sternschnuppe99 ist offline  
Alt 17.02.2008, 16:59  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hast du wikrlich auf allen Seiten auch ein session_start() im Script stehen?
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 17.02.2008, 17:22  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 20
sternschnuppe99 befindet sich auf einem aufstrebenden Ast
Standard

Hallo agrajag,

ja, sind ja nur 4 Seiten.
...und ich denke wenn nicht, wäre es ja auch reprodzierbar, immer dann, wenn die Seite aufgerufen wurde.

Gruß
sternschnuppe
sternschnuppe99 ist offline  
Alt 17.02.2008, 17:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Also ich habe öfter Probleme mit dem Browsercaching. Versuchs halt mal.
nikosch ist offline  
Alt 17.02.2008, 23:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard Re: Frage zu Sessions und Variablen in Session

Zitat:
Zitat von sternschnuppe99
Wenn ich zwischen den Seiten hin und her wechsle, verschwindet der Variableninhalt immer mal wieder
Wie wechselst du denn zwischen denen hin und her, mit dem Browser-Buttons Zurück/Vorwärts oder mit "deinen" Buttons und Links?
Zergling-new ist offline  
Alt 18.02.2008, 13:30  
Neuer Benutzer
 
Registriert seit: 05.02.2008
Beiträge: 20
sternschnuppe99 befindet sich auf einem aufstrebenden Ast
Standard

HI,

habe jetzt wohl die Lösung gefunden. Es hatte gar nichts mit Session, Cache oder so was zu tun.

Es sieht so aus, als ob die Variable trotz meiner If-Abfrage manchmal überschrieben wurde. Warum und vor allem, warum so unregelmäßig ist mir zwar unverständlich, aber mit folgender Abfrage scheint es jetzt zu funktionieren:

PHP-Code:
if( isset($_SERVER['REMOTE_USER']) &&
   !isset(
$_SESSION['haendler'])
  ) {
    
$_SESSION['haendler'] = $_SERVER['REMOTE_USER'];

Gruß
sternschnuppe
sternschnuppe99 ist offline  
 


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variablen Frage krackmoe PHP Tipps 2008 11 13.07.2008 16:13
Frage zu Session SmileMan PHP Tipps 2008 1 08.10.2007 11:22
Session in Session tinchen PHP Tipps 2007 22 21.03.2007 19:53
Session Variablen zusammenfassen? Peoples PHP Tipps 2006 3 10.05.2006 02:13
Frage zu Session Variablen Cyberbob_at_tot PHP Tipps 2006 3 13.03.2006 16:52
Frage zur Anwendung einer Session mehrfach... GELight PHP Tipps 2006 10 12.03.2006 16:47
Fehlermeldung bei Ausführen von session variablen karl PHP Tipps 2007 3 07.12.2005 10:34
Sessions Array $_FILES. 1001 Frage PHP Tipps 2005-2 2 20.09.2005 12:03
Shared Session Variablen RcRaCk2k PHP-Fortgeschrittene 3 06.09.2005 19:01
problem mit session bzw übergeben von variablen! PHP Tipps 2005 21 16.05.2005 03:20
session variablen PHP Tipps 2005 4 28.02.2005 19:57
Algemeine Frage Sessions PHP Tipps 2005 3 21.02.2005 00:35
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
Frage zu Session PHP Tipps 2004 2 21.09.2004 05:46
Session variablen PHP Tipps 2004 6 13.07.2004 20:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php $_env ist leer, hilfe wert wird trotz if abfrage in session schreiben?, ($_server{\'remote_user\') session, php session kontrolle, remote_user mal leer, session variablen verschwinden server, php remote_user session, $_env[\'remote_user\'], http://www.php.de/php-tipps-2008/45512-frage-zu-sessions-und-variablen-session.html, variable im link an session übergeben, php remote_user, php session wird automatisch geleert

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.