$_SESSION wird nicht "weitergegeben", warum ?

Lord Alien

Lt. Junior Grade
Registriert
Apr. 2007
Beiträge
258
Hallo Community,

wie die Überschrift schon sagt, habe ich das problem, dass meine Variable bzw mein array $_SESSION['login'], welches ich mit true gefüllt habe auf meinem localen rechner nicht weitergegeben wird.

Und das komischste kommt noch: auf meinem Server tut's :confused_alt::confused_alt::confused_alt::confused_alt::confused_alt::confused_alt::confused_alt:

Dann hab ich mir gedacht da wird sicher irgendwas anderes in der php.ini stehen als bei mir local. Also hab ich das verglichen. Leider wusste ich nicht genau nach was ich suchen sollte, aber register_global is beidesmal auf off und die abteilung session is bei mir genauso wie aufm Server.

Jetzt weiß ich nicht mehr was ich noch machen könnte.... Bitte helft mir bin total am verzweifeln....

mfg :alien_alt:
 
AW: $_SESSION wird nicht "weitergegeben", warum ??

session_start(); ist aber drinne, oder?^^
Ansonsten wüsst ichs spontan nicht
 
AW: $_SESSION wird nicht "weitergegeben", warum ??

session_start() , wie Flyde schon gepostet hat.
Ansonsten mal ein wenig Quellcode zeigen, dann geht das einfacher ;)
 
AW: $_SESSION wird nicht "weitergegeben", warum ??

ich hatte mal den lustigen fall, das ich sessions übergeben konnte, ohne session_start() drinne zu haben (schlichtweg menschliches versagen bzw. ich habs vergessen *gg*), da war ich erstmal baff, und mein chef auch ;) villeicht ist das zufall.. villeicht serverabhängig, was weiß ich, aber auf jedenfall könntest du evtl den gleichen fehler haben :)
 
AW: $_SESSION wird nicht "weitergegeben", warum ??

Ich würd mal nicht auf Script sondern auf Config tippen. Wenn es auf einem Server tut und auf dem anderen nicht, wird es aller wahrscheinlichkeit nach was mit den Servern zu tun haben.
Deswegen:
Poste mal bitte noch die Session-Abschnitte aus der PHPinfo.

gruß
bassti

PS: Ihr könntet recht haben, dass ein session_start() fehlt, wenn auf dem Server session.auto_start enabled ist.
 
AW: $_SESSION wird nicht "weitergegeben", warum ??

Also session_start is natürlich drin ^^,
Flyde schrieb:
ich hatte mal den lustigen fall, das ich sessions übergeben konnte, ohne session_start() drinne zu haben
Das liegt wohl dann daran das du session.auto_start auf on hattest ;)

hier der link zu phpinfo()

/edit:@ Backslash: dein Link hat mir leider nicht geholfen, da ich alles was darin gepostet wurde schon wusste und denn link denn du gepostet hattest kannte ich auch schon.
 
Zuletzt bearbeitet:
AW: $_SESSION wird nicht "weitergegeben", warum ??

Ähem. Wenn wir dir helfen sollen, poste mal deinen Code.
 
AW: $_SESSION wird nicht "weitergegeben", warum ??

Ja klar:

PHP:
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<?php
	//Variablen übergeben
	$pass			= $HTTP_POST_VARS['pass'];  // werden beide
	$benutzername	= $HTTP_POST_VARS['user'];  // von meinem formular übergeben
	
	// Restliche Variablen deklarierien und Konstanten einfügen
	$root_path = "";
	include ($root_path.'includ/config_local.php');
	
	//Verbindung zur MySQL-Datenbank aufnehmen
	mysql_connect (MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
	mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
	
	//login Datenbank nach Datensatz mit passendem Benutzername und Passwort durchsuchen und Ergebnis in Array schreiben
	$read = "SELECT
				passwort, benutzername, vorname, nachname, id
			 FROM
				user
			WHERE
				benutzername	= '".$benutzername."' AND
				passwort		= '".$pass."'  ";
	$result = mysql_query($read) OR die (mysql_error());
	while ($rowset=mysql_fetch_assoc($result)) $user[]=$rowset; //<-- Array umbennen von $rowset in $user
	
	// Daten in die $_SESSION einfügen
	if (!isset($_SESSION['benutzername']))
	{
	$_SESSION['benutzername']	= $user[0]['benutzername'];
	$_SESSION['vorname']		= $user[0]['vorname'];
	$_SESSION['nachname']		= $user[0]['nachname'];
	}
	if(!empty($user))
	{
	$_SESSION['login']			= true;
	}

	// "Login-Abfrage" login falsch wenn $_SESSION['login'] auf false
	if (!$_SESSION['login']) // <-- Hier der Teil wenn login falsch
	{
	session_destroy();
     // HTML-Code
     }
     else
     //HTML-Code
     }
 
>> Und wie gibst du die SID weiter ??

gar nicht ...

Nur das komische is halt das es aufm Server tut und das problem nur aufm localen rechner ist. Gibts da irgendne einstellung in der php.ini die da was rummacht. Das vielleicht aufm server die SID irgendwie automatisch weitergegeben wird ??
 
PHP:
session_destroy();

Du zerstörst doch deine Session, was wunderst du dich da. :p

@ Backslash
Das passiert automatisch. ;)
 
Computer Freak schrieb:
PHP:
session_destroy();

Du zerstörst doch deine Session, was wunderst du dich da. :p

Naja eigentlich ja net, vll hast du's übersehen aber das mit Session destroy wird nur ausgeführt wenn $_SESSION['login'] auf false ist. Aber ich setze ja vorher wenn login richtig war $_SESSION['login'] auf true. Deshalb wird der else teil der if-abfrage ausgeführt und da steht kein session_destroy().
Daran kann es nicht liegen
 
tewes schrieb:
Hast du schon alle php.inis durchsucht und geguckt ob die Werte richtig gesetzt sind?

Sag ma so ich hab se mir angeschaut... Da ich leider nicht genau wusste nach was ich suchen muss, hab ich mir nur denn session's teil genau angeschaut und der is auf'm server identisch mit dem auf'm localen rechner...
 
Es reicht wenn du nach session.use_only_cookies, session.use_cookies und session.auto_start guckst.
Aber ich mein es gibt verschieden PHP.inis in verschieden Verzeichnissen.
Durchsuch am besten mal dein Xampp? Verzeichnis danach und änder es in allen Datein.

Grüße

tewes
 
tewes schrieb:
Es reicht wenn du nach session.use_only_cookies, session.use_cookies und session.auto_start guckst.
Aber ich mein es gibt verschieden PHP.inis in verschieden Verzeichnissen.

Klar gibt es mehrere php.ini aber nur eine davon wird benutzt, welche das is steht ja auch ganz oben im phpinfo() befehl.

Was verstehst du unter "nach ... gucken" ?? Es gibt zwischen server und local keinen unterschied, bei denn einstellungen die SESSIONS betreffen, trotzdem wird mein script aufm server korrekt ausgeführt aufm localen rechner net ...

/edit: HABS !! session_use.cookie war auf off geschalten. Habs jetzt auf on gestellt und es tut .... Ich würde jetzt nur noch gern wissen warum!! Weil ich hab ja kein einziges mal cookies überhaupt erwähnt in meinem code. warum brauch ich sie dann ??
 
Zuletzt bearbeitet:
Weil irgendwie muss ja die Session ID mit übergeben werden. Und da es am Link nicht schön aussieht und zu Sicherheitslücken führt wird dies in Coockies gespeichert.
 
Damit ich das jetzt richtig versteh:

Er speichert automatisch die Session-id in nem cookie obwohl ich keinen Befehl dazu geben??
 
Zurück
Oben