SESSIONs - Variablen nicht verfügbar

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Iulius
Mitglied
Beiträge: 4
Registriert: 26.05.2005 16:08

SESSIONs - Variablen nicht verfügbar

Beitrag von Iulius »

Hi!
Ich tüftel gerad an Sessions rum und komm einfach nich weiter. folgendes beispiel:

<code>
<?php
session_Start();
if ( !isset($_SESSION['xxx'] ) {
$_SESSION['xxx'] = 10;
} else {
echo $_SESSION['xxx'];
}
?>
</code>

das script gibt immer einen weißen bildschirm. auch wenn ich es mit test.php?PHPSESSID=_session_id_ aufrufe funzt es nicht. die session id ist aber in $_REQUEST['PHPSESSID' drin. ich bin einfach verwirrt >D

thx
für eure hilfe

iulius
Scoutman
Mitglied
Beiträge: 278
Registriert: 11.02.2004 17:15
Wohnort: .at

Beitrag von Scoutman »

versuchs mal damit!

Code: Alles auswählen

session_start();

if ( !isset( $_SESSION['xxx'] ) ) {
	$_SESSION['xxx'] = 10;
} 

echo $_SESSION['xxx'];
deine variante funktioniert erst wenn man die seite reloaded. weil beim ersten besuch gibt es die $_session['xxx'] noch nicht und daher springt er in die IF schleife wo nur die variable deklariert wird. es kommt daher zu keiner ausgabe.
reloaded man dann die seite geht er über in die ELSE schleife da $_session schon vorhanden ist und zeigt den wert an.
KEIN Support per PM!!!
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Scoutman hat geschrieben: springt er in die IF schleife
Dann erkläre mir mal wo du
a) eine Schleife siehst
b) Wie diese Benennungskonvention "If Schleife" zustande kommt....

würde mich mal sehr interessieren.....
Iulius hat geschrieben:

Code: Alles auswählen

<?php 
session_Start(); 
if ( !isset($_SESSION['xxx'] ) { 
$_SESSION['xxx'] = 10; 
} else { 
echo $_SESSION['xxx']; 
} 
?> 
Dieser Code hätte in der Zeile bei !isset()....einen Parse Error erzeugen müssen....
Überprüfe mal deine Direktiven hinsichtlich...display_errors on und error_reporting(E_ALL);

Zum Testen reicht auch ganz banal:

Code: Alles auswählen

<?php
session_start();
echo 'Meine Session lautet: <b>'.session_id().'</b>'; 
?>
Scoutman
Mitglied
Beiträge: 278
Registriert: 11.02.2004 17:15
Wohnort: .at

Beitrag von Scoutman »

ja danke den fehler hab ich auch gesehen!
bin jetzt einfach mal davon ausgegangen das er sich hier verschrieben hat. ich hab das in meinen code eh richtig gestellt so das es dann funktioniert.
KEIN Support per PM!!!
Iulius
Mitglied
Beiträge: 4
Registriert: 26.05.2005 16:08

Beitrag von Iulius »

hi!
der parse-error kommt deswegen nicht, weil es einfach n übertragungsfehler ist. im script sind 2 ) .

Das in meinem Code, die $_SESSION['xxx'] erst beim reload ausgegeben wird ist mir klar, aber das problem besteht darin, dass sie nicht ausgeben wird, weil sie wohl nicht gesetzt ist, obwohl das beim ersten aufruf geschieht....

ich poste mal hier den code des original scripts (index.php):

Code: Alles auswählen

<?php
	session_start();
	session_id();
	error_reporting( E_ALL | E_ERROR );
......
	( !isset($_GET['mode']) ) ? $mode="default" : $mode=$_GET['mode'];
	( !isset($_GET['design']) ) ? $design="0" : $design=$_GET['design'];
	( isset( $_GET['design']) ) ? $_SESSION['design'] = $_GET['design'] : $design = $_SESSION['design'];
	( !isset($_GET['nav']) ) ? $nav="000000" : $nav = $_GET['nav'];
	echo $_SESSION['design'];
....
?>
Der Sinn ist dieser, das im Menu immer per GET design und navigations variablen ( design & nav ) übergeben werden, ich aber nicht immer in den unterschiedlichen bereichen der Seite diese design & nav sachen anhängen will. Deswegen wollte ich die in der Session speichern und nur verändern, falls was neues per $_GET übergeben wird. doch wenn ich auf die links klicke, die alle immer die index.php aufrufen, gehen die informationen aus der $_SESSION verloren :-?

cya
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Scoutman hat geschrieben:ja danke den fehler hab ich auch gesehen!
bin jetzt einfach mal davon ausgegangen das er sich hier verschrieben hat. ich hab das in meinen code eh richtig gestellt so das es dann funktioniert.
ich warte noch immer auf:
Blutgerinsel hat geschrieben:
Scoutman hat geschrieben: springt er in die IF schleife
Dann erkläre mir mal wo du
a) eine Schleife siehst
b) Wie diese Benennungskonvention "If Schleife" zustande kommt....

würde mich mal sehr interessieren.....
Überprüfe doch erstmal ob die Session auf jeder Seite vorhanden ist....Und deine Browsereinstellung hinsichtlich Cookie Erlaubnis bzw. PHP Einstelllung hinsichtlich explizite Cookie Verwendung
Antworten

Zurück zu „Coding & Technik“