Problema con sessioni

  • Creatore Discussione Creatore Discussione ste902
  • Data di inizio Data di inizio

ste902

Utente Attivo
15 Nov 2012
32
0
0
Ciao a tutti devo fare una pagina php con la possibilità di scegliere la lingua (italiano e inglese con italiano di default) e fare in modo che una volta scelto rimanga memorizzato fino alla chiusura della sessione. E' la prima volta che uso le sessioni e quindi mi sono andato ad incasinare sicuramente. Non so cosa sbaglio ma la pagina mi rimane sempre in italiano. Ecco il codice:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <Title>Torino</Title>
    <meta name="author" content="Stefano">
    <meta name="keywords" content="Informatica">
    <meta name="keywords" content="Esercitazione">
    <meta name="keywords" content="Html">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<a href="torino.php?language=it">Italiano</a>
<a href="torino.php?language=en">Inglese</a>
<?php
session_start();
if(isset($_SESSION["lingua"])){
if(isset($_GET["language"])){
	unset($_SESSION["lingua"]);
	$_SESSION["lingua"]=$_GET["language"];
}
}
else{
	$_SESSION["lingua"]="ita";
}
if($_SESSION="it"){
	echo"<p>Torino</p>";
}
elseif($_SESSION="en"){
	echo"<p>Turin</p>";
}
?>
</body>
</html>
Grazie
 
Ciao a tutti devo fare una pagina php con la possibilità di scegliere la lingua (italiano e inglese con italiano di default) e fare in modo che una volta scelto rimanga memorizzato fino alla chiusura della sessione. E' la prima volta che uso le sessioni e quindi mi sono andato ad incasinare sicuramente. Non so cosa sbaglio ma la pagina mi rimane sempre in italiano. Ecco il codice:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <Title>Torino</Title>
    <meta name="author" content="Stefano">
    <meta name="keywords" content="Informatica">
    <meta name="keywords" content="Esercitazione">
    <meta name="keywords" content="Html">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<a href="torino.php?language=it">Italiano</a>
<a href="torino.php?language=en">Inglese</a>
<?php
session_start();
if(isset($_SESSION["lingua"])){
if(isset($_GET["language"])){
	unset($_SESSION["lingua"]);
	$_SESSION["lingua"]=$_GET["language"];
}
}
else{
	$_SESSION["lingua"]="ita";
}
if($_SESSION="it"){
	echo"<p>Torino</p>";
}
elseif($_SESSION="en"){
	echo"<p>Turin</p>";
}
?>
</body>
</html>
Grazie
Che errori ti da? Cmq innanzitutto metti all'inizio il sessio_start();

Quindi le prime righe del tuo codice dovranno essere :

PHP:
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <Title>Torino</Title>
    <meta name="author" content="Stefano">
    <meta name="keywords" content="Informatica">
    <meta name="keywords" content="Esercitazione">
    <meta name="keywords" content="Html">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<a href="torino.php?language=it">Italiano</a>
<a href="torino.php?language=en">Inglese</a>
<?php
if(isset($_SESSION["lingua"])){
if(isset($_GET["language"])){
	unset($_SESSION["lingua"]);
	$_SESSION["lingua"]=$_GET["language"];
}
}
else{
	$_SESSION["lingua"]="ita";
}
if($_SESSION="it"){
	echo"<p>Torino</p>";
}
elseif($_SESSION="en"){
	echo"<p>Turin</p>";
}
?>
</body>
</html>
 
Fatto, il problema credo sia di progettazione perchè non mi da errori però mi stampa la pagina in italiano e anche se clicco sul link inglese rimane in italiano.
 
ciao
intanto due cose
avevi messo $_SESSION="ita"
ora
1) $_SESSION come fa php a sapere quale sessione?
2) prima dici "it" e poi (cerchi) di confrontarlo con "ita"
3) come hai fatto tu (a parte quanto detto in 1) fai una assegnazione non un confrotonto, in php il confronto sono due =
prova questo
PHP:
<?php
session_start();
?>
<!-- ..... -->
<a href="?language=it">Italiano</a>
<a href="?language=en">Inglese</a>
<?php
if(isset($_GET["language"])){
	$_SESSION["lingua"]=$_GET["language"];
}else{
	$_SESSION["lingua"]="it";
}
if($_SESSION['lingua']=="it"){
	echo"<p>Torino</p>";
}elseif($_SESSION['lingua']=="en"){
    echo"<p>Turin</p>";
}
?>
nota che se lo fai nella stessa pagina non serve che tu la indichi
 

Discussioni simili