ciao
due parole sulle sessione e array
quello che hai fatto non è completamente sbagliato
hai creato un array con
$dati=array("nome","cognome","citta","via","cap","telefono","cellulare","evento","data_evento","persone","catering","note");
giusto, e la sessione
$_SESSION['dati']
giusto, ma c'è un però (grosso come una casa)
la variabile $dati diventa un array si ma del tipo
$dati[0] di valore nome
$dati[1] di valore cognome
$dati[2] di valore citta... ecc...
quindi con la tua assegnazione
$_SESSION['dati']=$dati;
non ottieni (come penso vorresti)
$_SESSION['nome']
$_SESSION['cognome'] ecc...
ma
$_SESSION['dati'][0] di valore nome
$_SESSION['dati'][1] di valore cognome..ecc...
come puoi vedere (oltre che dal var_dump che ti avervo postato) anche dal seguente ciclo
PHP:
<?php
if(!isset($_SESSION)){session_start();}//ricordati sempre l'istruzione session_start() prima di qualsiasi HTML in tutte le pag in cui usi sessioni
$dati=array("nome","cognome","citta","via","cap","telefono","cellulare","evento","data_evento","persone","catering","note");
$_SESSION['dati']=$dati;
//ottieni lo stesso mettendo
//$_SESSION=$dati;
foreach($_SESSION['dati'] as $chiave => $valore){
//di conseguenza da modificare il foreach in
//foreach($_SESSION as $chiave => $valore){
echo "la sessione[dati][$chiave] ha il valore $valore<br>";
}
?>
se al contrario costruisci l'array con chiave => valore (es. fatto con il valore vuoto)
$dati=array("nome"=>'',"cognome"=>'',"citta"=>'',"via"=>'',"cap"=>'',"telefono"=>'',"cellulare"=>'',"evento"=>'',"data_evento"=>'',"persone"=>'',"catering"=>'',"note"=>'');
otterrai una session dati di array ma del tipo
$_SESSION['dati'][nome] di valore vuoto
$_SESSION['dati'][cognome] di valore vuoto..ecc...
come puoi vedere da questo secondo ciclo
PHP:
<?php
if(!isset($_SESSION)){session_start();}
$dati=array("nome"=>'',"cognome"=>'',"citta"=>'',"via"=>'',"cap"=>'',"telefono"=>'',"cellulare"=>'',"evento"=>'',"data_evento"=>'',"persone"=>'',"catering"=>'',"note"=>'');
$_SESSION['dati']=$dati;
foreach($_SESSION['dati'] as $chiave => $valore){
if($valore==""){$valore="vuoto";}//per far vedere quale è il valore
echo "la sessione[dati][$chiave] ha il valore $valore<br>";
}
?>
se invece vuoi ottenere le varie sessioni
$_SESSION['nome']
$_SESSION['cognome'] ...ecc...
dovresti procedere in questo modo
PHP:
<?php
if(!isset($_SESSION)){session_start();}
$dati=array("nome"=>'',"cognome"=>'',"citta"=>'',"via"=>'',"cap"=>'',"telefono"=>'',"cellulare"=>'',"evento"=>'',"data_evento"=>'',"persone"=>'',"catering"=>'',"note"=>'');
$_SESSION=$dati;
foreach($_SESSION as $chiave => $valore){
if($valore==""){$valore="vuoto";}//per far vedere quale è il valore
echo "la sessione[$chiave] ha il valore $valore<br>";
}
?>
se provi i tre spezzoni di codice vedrai la differenza.
penso che quello che si avvicina di più a quello che volevi fare sia il III° spezzone, ma ti consiglio di usare (sino a che non sei bravo) le sessioni solo col loro nome anche se può essere un po' lungo