Ciao, qualcuno mi sa dire come mai non mi persistono le sessioni? Eppure ho aperto la
session_start(); all'inizio, nelle pagine dove mi servono, cosi:
codice:
<?php
session_start();
?>
Le ho usate 1000 volte adesso non capisco perchè non si memorizzano.
Inviato un modulo, catturo i valori nelle sessioni per poi ripresentarle in caso di errori.
Funziona l'applicazione perchè da una pagina all'altra le variabili cmq passano, ma se apro un'altra scheda del browser spariscono. Potete vedere qui
Grazie. Posto il codice:
Codice PHP:
<?php
session_start();
//funzioni che mi servono
include("functions.php");
//_____Variabili da impostare____________________________________
$arrayType = $_POST; //dove il modulo invia le variabili
$nInput = count($arrayType); //numero degli elementi da controllare
//_________________________________________________________
//***SE IL MODULO E' STATO INVIATO***
if($_GET or $_POST)
{
//***GESTIONE DEGLI ERRORI DEL MODULO***
//_____Includo il file con la lista dei parametri che userò per
//____________generare gli errori sui campi del modulo________
include("inputClass.php");
//_____________________________________________________________
$p = 0; // controlla gli errori
for($i=0; $i<$nInput; $i++)
{
//metto in sessione i valori del modulo inviato
$_SESSION["$i"]["value"] = $arrayType[$i];
$ID = $i;
$valore = $arrayType[$i];
//assegno ad ogni attributo il proprio valore (es. richiesto = SI)
$request = $inputClass[$i]["request"];
$valueType = $inputClass[$i]["valueType"];
$inputType = $inputClass[$i]["inputType"];
//se deve essere compilato ed è vuoto
if ($valore == "" and $request == "y")
{
//imposto il colore rosso alle celle desiderate
$_SESSION["$i"]["cella"] = "bgcolor='#ff0000'";
//imposto il messaggio di errore
$_SESSION["$i"]["ErrorMessage"] = "Inserire un valore";
$p = 1; //si è verificato un errore quindi $p = 1
}
//se deve essere numerico e non lo è
if($valueType == "numeric")
{
if(!getIntValue($valore))
{
//imposto il messaggio di errore
$_SESSION["$i"]["ErrorMessage"] = "Inserire un numero di telefono";
$_SESSION["$i"]["cella"] = "bgcolor='#ff0000'";
$p = 1; //si è verificato un errore quindi $p = 1
}
}
}
if($p == 1) //CI SONO ERRORI RIPRESENTO IL FORM
{
include("form.php");
}
if($p == 0) //NO ERRORI VADO AVANTI
{
//AVANTI ALL'AVVENTURA SENZA PAURA!
}
}
//***SE IL MODULO NON E' STATO INVIATO LO VISUALIZZO***
else
{
include("form.php");
}
?>
La pagina del form:
codice:
<?php
session_start();
?>
<form method="post" action="">
<table cellpadding="5">
<tr>
<td align="right" <?php echo $_SESSION["0"]["cella"];?>>
<input type="text" name="0" value="<?php echo $_SESSION["0"]["value"]; ?>">
<td align="left" <?php echo $_SESSION["0"]["cella"];?>>
Nome
<td>
<?php echo $_SESSION[0]["ErrorMessage"];?>
<tr>
<td align="right" <?php echo $_SESSION["1"]["cella"];?>>
<input type="text" name="1" value="<?php echo $_SESSION["1"]["value"]; ?>">
<td align="left" <?php echo $_SESSION["1"]["cella"];?>>
Cognome
<td>
<?php echo $_SESSION[1]["ErrorMessage"];?>
<tr>
<td align="right" <?php echo $_SESSION["2"]["cella"];?>>
<input type="text" name="2" value="<?php echo $_SESSION["2"]["value"]; ?>">
<td align="left" <?php echo $_SESSION["2"]["cella"];?>>
Telefono
<td>
<?php echo $_SESSION["2"]["ErrorMessage"];?>
<tr>
<td align="right">
<input type="submit" value="Invia">
<td>
</form>