- Home
- Categorie
- Coding e Sistemistica
- Coding
- Cambio sessione con $_SERVER['PHP_SELF'];
-
Cambio sessione con $_SERVER['PHP_SELF'];
Ciao a tutti.
Sto facendo un sito multilingua. Per cambiare da una lingua all'altra vorrei usare e sto usando le sessioni.
Ora all'interno della pagina x.php vorrei mettere dei link in modo che se uno clicca si ricarica la stessa pagina con la sessione cambiata e quindi la lingua cambiata.
E' possibile?
Io ho provato mettendo nella pagina x.php un link<a href="scelta.php" target="_self">Questa pagina contiene [PHP]<?
session_start();
$_SESSION['lingua'] = "ing";
//$_SESSION['lingua'] = $lingua_scelta;$_SERVER['PHP_SELF'];
?>[/PHP]
Però non mi restituisce la pagina x.php con la lingua cambiata ma rimane scelta.php ...
Come posso fare ?Grazieeeeeee
-
L'attributo target non serve a non fare cambiare pagina XD
Ma a scegliere la finestra target nel caso di frame, iframe o popups.Le scelte migliori che mi vengono in mente sono due:
-
Fai una richiesta ajax alla pagina scelta.php passandogli come get la lingua scelta, e subito dopo fai fare un refresh alla pagina.
-
Apri un popup a scelta.php e dopo far fare il refresh
Oppure, potresti fare il link a scelta.php e da lì fare un reindirizzamento alla pagina di provenienza.
-
-
Cominciamo col dire che, secondo me, non è una buona idea dal punto di vista SEO usare le sessioni per tenere traccia della lingua, mentre sarebbe più utile avere dei "siti" completamente separati ad esempio con un sottodominio diverso (it.sito.com / en.sito.com) oppure in una directory diversa (www.sito.com/it e www.sito.com/en)
Detto ciò, semplicemente richiama la pagina in cui ti trovi con nella query string la lingua che desideri, creando poi un include in ogni pagina che metta la lingua nella sessione<span style="font-family: monospace;">, ad esempio:
[html]<a href="index.php?lang=en">[/html]e poi in index.php (e in tutte le pagine, ecco perchè ti suggerisco di usare un include):
[php]
session_start();
$_SESSION['lingua'] = "ing";
[/php]Ciaooo!
-
Ciao,
ecco cosa intendevo io.
A questo indirizzo ```
http://www.parallels.com/it/Ecco come ho risolto: creo la pagina cambia.php [php]<? // Inizia sessione, usato per la lingua session_start(); // Imposto la lingua $_SESSION["lingua_teile"] = $_GET["lingua"]; // Redirect header("Location: {$_SERVER["HTTP_REFERER"]}"); ?>[/php]e nelle mie pagine inserisco dei link con questa dicitura [php]<a href="cambia.php?lingua=ita" target="_self">[/php]e funziona il cambio lingua che volevo!