webForumDet fria alternativet

$_SESSION[] gillar mig inte...

3 svar · 600 visningar · startad av SprayMaphia

SprayMaphiaMedlem sedan jan. 2004128 inlägg
#1

Har lite problem med en site jag håller på att bygga upp. Siten ska vara både på svenska och engelska och det jag kommit fram till än så länge är en dropdown-meny i index.php som skickar vidare en till en sida som ser ut såhär:

<?php

	ob_start();
	
	$newlang = $_GET['lang'];
	$_SESSION['lang'] = $newlang;
	header("Location: index.php");
	
	ob_flush();

?>

För att sedan kontrollera språket på index.php så gör jag såhär:

<?php

session_start();

/* 
 * Language
 */

if(!isset($_SESSION['lang']) || (@$_SEEEION['lang']!='se'&&@$_SEEEION['lang']!='en')) {
	$_SESSION['lang'] = 'se';
}

$lang = $_SESSION['lang'];

?>

Om jag kollar värdet i den första filen så är allt korrekt där, både $newlang och $_SESSION['lang']. Men i index.php ändras ingenting.

Någon som vet varför och/eller har en bra lösning på detta?

MVH
Christian

SprayMaphiaMedlem sedan jan. 2004128 inlägg
#2

Never mind, jag har upptäckt mina gulliga stavfel. :P

Edit:
Vilket inte heller hjälpte att rätta till. Frågan kvarstår, någon som vet hur detta kan lösas?

The_HulkMedlem sedan juni 20031 837 inlägg
#3

bör vara så här:

<?php
session_start();
    ob_start();
    
    $newlang = $_GET['lang'];
    $_SESSION['lang'] = $newlang;
    header("Location: index.php");
    
    ob_flush();

?>

d.v.s. du måste ha med session_start() på alla sidor du vill använda $_SESSION[...]

får man fråga varför du gör en ob_start() och ob_flush på den sidan?

SprayMaphiaMedlem sedan jan. 2004128 inlägg
#4

Tack för svaret. Funkade bra.
Svar på din fråga: Jag gör det som principsak alltid när jag skickar iväg headers. Vet att det inte behövs när jag inte outputtat något till läsaren, men ändå, jag kanske ändrar på det i framtiden.

132 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)