php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.10.2008, 11:37  
Neuer Benutzer
 
Registriert seit: 05.10.2008
Beiträge: 20
JudGer befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Session und Header Location

Hallo,
ich habe das Problem, dass meine Session-Variablen verloren gehen, nachdem ich mit header('Location: xyz.php'); eine Weiterleitung veranlasse.

Folgender Code:

Datei 1:
PHP-Code:
session_start();
$_SESSION['message'] = "Dies ist eine Testnachricht";
session_write_close();
header('Location: xyz.php'); 
Datei 2:
PHP-Code:
session_start();
echo 
$_SESSION['message']; 
Ich habe bereits erfahren, dass PHP die Session-Variablen erst am Ende eines Scripts speichert, weshalb ich dies manuell per "session_write_close();" veranlasse.

Hat leider nicht funktioniert.
Habe auch folgendes versucht:
PHP-Code:
header('Location: xyz.php?' SID); 
Wenn ich mir in beiden Dateien die Session-ID ausgeben lasse, ist diese identisch, die Session wird also nicht neu gestartet, sondern es bleibt die gleiche. Egal ob ich SID anhänge oder nicht.

Es gehen nur die Variablen verloren.

Auf meinem lokalen LAMP-Server klappt mein Skript einwandfrei. Nur auf meinem Webspace nicht.
phpinfo auf lokalem Server
phpinfo auf Webspace

Hier im Forum gab es schon ein paar Threads dazu, die haben mir aber leider nicht geholfen.

LG
JudGer ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.10.2008, 11:59  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Hmmm vielleicht was in der Richtung: [gelöst] Session Variablen gehen verloren
cycap ist offline  
Alt 24.10.2008, 12:06  
Neuer Benutzer
 
Registriert seit: 05.10.2008
Beiträge: 20
JudGer befindet sich auf einem aufstrebenden Ast
Standard

Hm...dann müssten Sessions aber allgemein nicht funktionieren, oder?

Habe folgendes Skript mal zum testen erstellt:

PHP-Code:
<?php
    session_start
();
    if(isset(
$_GET['set']))
        
$_SESSION['msg'] = "Das hat geklappt";
    if(isset(
$_GET['unset']))
        unset(
$_SESSION['msg']);

    echo 
$_SESSION['msg'];
?>
Hier klappt es gut, wenn ich nun test.php?set aufrufe, erscheint danach immer der entsprechende Text, egal wie oft ich die Seite neu lade. Gehe ich auf index.php?unset ist der Text wieder verschwunden.

Das verlinkte Problem scheint also bei mir nicht zuzutreffen, da dies ja dann nicht gehen würde.

Es scheint also so, dass die header()-Anweisung nicht die Session-Variablen überträgt, weshalb ich sie manuell mit session_write_close() geschrieben habe. Aber das hat ja leider nicht funktioniert :/
JudGer ist offline  
Alt 24.10.2008, 13:08  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von JudGer Beitrag anzeigen
Hm...dann müssten Sessions aber allgemein nicht funktionieren, oder?
Die Session wird ja erst nach Ablauf des Scripts bzw. bei session_write_close() ins Dateisystem geschrieben... also könnte es durchaus sowas sein.

EDIT: ruf doch mal eine Datei auf in der du was in die Session schreibst und danach eine in der du es wieder ausliest, also so wie du es vorhattest nur ohne direkte Weiterleitung, sondern mit manuellem Aufruf.

EDIT 2: EDIT 1 is ja Blödsinn, haste ja schon im letzten Beispiel quasi so gemacht, sorry
cycap ist offline  
Alt 24.10.2008, 13:14  
Neuer Benutzer
 
Registriert seit: 05.10.2008
Beiträge: 20
JudGer befindet sich auf einem aufstrebenden Ast
Standard

Habe nochmal einen übersichtlicheren Test geschrieben, um die Umstände, die ich oben nicht schildern konnte, auszugrenzen.

PHP-Code:
<?php
    session_start
();
    if(isset(
$_GET['set'])) {
        
$_SESSION['msg'] = "Test";
        
session_write_close();
        
header('Location: test.php');
        exit();
    }
    if(isset(
$_GET['unset']))
        unset(
$_SESSION['msg']);
    echo 
$_SESSION['msg'];
?>
Dies geht nicht. Nichts wird angezeigt

PHP-Code:
<?php
    session_start
();
    if(isset(
$_GET['set'])) {
        
$_SESSION['msg'] = "Test";
    }
    if(isset(
$_GET['unset']))
        unset(
$_SESSION['msg']);
    echo 
$_SESSION['msg'];
?>
Dies geht. Auch nach dem neuladen (ohne url-Parameter) wird die Session-Variable noch korrekt ausgegeben.

Ich glaube ich wende mich mal an den Support vom Webspace. Auf meinem Server läuft es einwandfrei und normal sollte das ja auch so sein, oder?
JudGer ist offline  
Alt 24.10.2008, 13:16  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von JudGer Beitrag anzeigen
Ich glaube ich wende mich mal an den Support vom Webspace. Auf meinem Server läuft es einwandfrei und normal sollte das ja auch so sein, oder?
Jop so siehts aus. Bei mir läuft dein Code auch.
cycap ist offline  
Alt 24.10.2008, 15:49  
Neuer Benutzer
 
Registriert seit: 05.10.2008
Beiträge: 20
JudGer befindet sich auf einem aufstrebenden Ast
Standard

Das Problem ist behoben. Der Support hat mich um die phpinfo() meines lokalen Servers gebeten.

Leider habe ich keine weitere Rückmeldung mehr bekommen, wo das Problem jetzt lag, hätte es gerne gepostet, sorry.
JudGer ist offline  
Alt 24.10.2008, 15:57  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

lol was is das denn fürn hoster?
cycap 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
[Erledigt] header location krackmoe PHP Tipps 2008 10 30.07.2008 14:41
readfile vs. header location Adminator PHP Tipps 2008 8 11.09.2007 01:11
Session + header () = Referer nikosch PHP-Fortgeschrittene 6 16.09.2006 00:52
Header: 2 gesendet (Session, DL Script) möchtegernchegga PHP Tipps 2006 13 08.06.2006 15:56
header (location: ...) Tigermoon PHP Tipps 2006 4 21.04.2006 13:40
Header Location Suchmaschinentauglich? DonTermi Beitragsarchiv 5 16.08.2005 12:22
Header Location aus Frame für die ganze Seite laden Plague PHP Tipps 2005 3 22.05.2005 16:06
session + ETag (Header) PHP-Fortgeschrittene 3 25.04.2005 16:24
zu anderer php.seite umlenken (ohne header, location:) PHP Tipps 2005 8 06.04.2005 09:42
header (location: $var) PHP Tipps 2005 14 19.01.2005 10:37
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
header (Location - Problem PHP Tipps 2004 4 20.10.2004 02:01
header location andrew22 PHP Tipps 2004 1 07.09.2004 12:13
Header Location funktioniert nicht PHP Tipps 2004 10 12.08.2004 17:11
Warning: Cannot modify header... einbinden nicht möglich? PHP Tipps 2004 2 07.08.2004 15:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php session header location übergeben, header location session, session_write_close header location, session_write_close header, php header location session, header session, set _session, header location in session, $_session echo variablen komisch, header(\location:\.$test);, php $_session am ende des scripts, php header location session id anhängen, php header session anhängen, problem session header location neue id, if header location php, php location session sid, session header, php sesseion header location, session location header, php header session

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:11 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