- Home
- Categorie
- Coding e Sistemistica
- PHP
- [NEWBIE]Problem con sessioni
-
[NEWBIE]Problem con sessioni
Ciao a tutti.
Ho da poco iniziato a studiare php e mi sto soffermando sulle sessioni.
Tanto per provare qualcosa, ho scritto 4 righe di codice che dovrebbero proprio mostrarmi le funzionalità delle sessioni. In particolare, lo script chiede il nome all'utente e quando lo stesso utente aggiorna la pagina dovrebbe comparire un messaggio che informo l'utente che è già conosciuto dal sistema.
Il problema è che quando aggiorno mi viene presentato sempre il form di immissione del nome e cognome. Dareste uno sguardo al codice per vedere cosa non funziona? Grazie mille!<?php session_start(); session_register("your_name"); if (isset($your_name)) { echo "So già come ti chiami: $your_name"; } elseif (!isset($your_name) && !isset($submit)) { echo "<form name=myform method=post action={$_SERVER['PHP_SELF']}> <input type=text name=name> Nome<br><br> <input type=text name=last_name> Cognome<br> <input type=submit name=submit value=submit> </form>"; } elseif (!isset($your_name) && isset($submit)) { $your_name=$name . " " . $last_name; echo "Grazie $your_name"; } ?>
-
session_register() ti registra $_SESSION['your_name'] e non $your_name, per questo ti mostra il form.
-
e quindi come dovrei modificare il codice?
-
Prova così
[PHP]<?php
session_start();
$_SESSION['your_name'] = $_POST['name'];//così registri la variabile di sessioneif (isset($_SESSION['your_name'])) { echo "So già come ti chiami: $_SESSION['your_name']"; } elseif (!isset($_SESSION['your_name']) && !isset($submit)) { echo "<form name=myform method=post action={$_SERVER['PHP_SELF']}> <input type=text name=name> Nome<br><br> <input type=text name=last_name> Cognome<br> <input type=submit name=submit value=submit> </form>"; } elseif (!isset($_SESSION['your_name']) && isset($submit)) { $your_name=$name . " " . $last_name; echo "Grazie $your_name"; }
?>[/PHP]
-
C'è ancora qualche errore dato che ho dovuto aggiungere le parentesi graffe in
if (isset($_SESSION['your_name'])) { //ho aggiunto qui le {} echo "So già come ti chiami: {$_SESSION['your_name']}"; } ```Inoltre mi viene visualizzato questo messaggio Notice: Undefined index: name in c:\..... on line 3 ovvero sulla linea
$_SESSION['your_name'] = $_POST['name'];//così registri la variabile di sessione
Infine, quando invio per la prima volta "nome" e "cognome" non viene visualizzata la pagina di ringraziamento espressa da
elseif (!isset($_SESSION['your_name']) && isset($submit))
{
$your_name=$name . " " . $last_name;
echo "Grazie $your_name";
}if (isset($_SESSION['your_name']))
{
echo "So già come ti chiami: {$_SESSION['your_name']}";
}Grazie ancora!