Ciao gente, dopo aver smanettato un po con le sessioni, non riesco a concludere nulla.. come da i miei precedenti post in cui abbiamo risolto vari problemi inerenti al controllo dei vari campi ora nelle stesse pagine ho il problemi di far persistere i dati dalla prima pagina di registrazione fino alla 4 pagina nella quale dovrei inserire i dati nel db.
da premettere che la pagina index.php e cosi struttutata:
codice:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title> index </title>
<link href="css/portale.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="800" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="800" height="72"><? include ("header.php"); ?></td>
</tr>
<tr>
<td width="800" height="620"><? include ("homecenter.php"); ?></td>
</tr>
<tr>
<td width="800" height="30" valign="baseline"><? include ("footer.html"); ?></td>
</tr>
</table>
</body>
</html>
La pagina homecenter.php
cosi strutturata:
codice:
<table width="800" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="185"><? include ("homecentersx.php"); ?></td>
<td valign="top">
<table width="400">
<tr>
<td align="center"><? //include ("news.php"); ?></td>
</tr>
<tr>
<td>
<?
function CheckReg1() {
$errori = array();
$nome_utente = $_POST["nome_utente"];
if ($nome_utente == "")
{
$errori[0] = "Il Nick Name è obbligatorio";
}
elseif (strlen(trim($nome_utente)) < 6)
{
$errori[0] = "Il Nick Name non deve essere inferiore a sei caratteri";
}
elseif (!eregi("^([a-zA-Z]{3})([a-zA-Z0-9]*)$", $nome_utente))
{
$errori[0] ="caratteri invalidi";
}
$password = $_POST["password"];
if ($password == "") $errori[1] = "Il campo password è obbligatorio";
elseif (strlen(trim($password)) < 6)
{
$errori[1] = "La password non deve essere inferiore a sei caratteri";
}
elseif (!eregi("^([a-z0-9]*)$", $password))
{
$errori[1] ="password con caratteri invalidi";
}
$email = $_POST["email"];
if ($email == "" ) $errori[2] ="L'indirizzo E-mail è obbligatorio";
elseif (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
{
$errori[2] ="E-mail inserita è invalida
";
}
return $errori;
}
function CheckReg2() {
$errori = array();
$compleanno = $_POST["compleanno"];
if ($compleanno == "")
{
$errori[0] = "la data del tuo compleanno è obbligatoria";
}
else
{
list ($mese, $giorno, $anno) = explode ("/", $compleanno);
if (!checkdate($mese, $giorno, $anno))
{
$errori[0] ="La data inserita non è corretta formato mm/gg/anno";
}
$gap=18;
$annominimo=1930;
if ($anno > $annominimo)
{
if (date("Y") - $anno < $gap)
{
$errori[0] ="Sei minorenne...";
}
elseif (date("Y") - $anno < $gap && mktime(0,0,0,$mese,$giorno,$anno) > mktime(0,0,0,$mese,$giorno,$anno))
//elseif (date("Y") - $anno > $gap)
$errori[0] ="ok ";
}
else
$errori[0] ="La data inserita non è corretta mm/gg/anno";
}
$citta = $_POST["citta"];
if (!eregi("^([a-zA-Z]*)$", $citta))
{
$errori[1] ="Inserire una città valida";
}
$cap = $_POST["cap"];
if (!eregi("^([0-9]*)$", $cap))
{
$errori[2] ="Il cap non è corretto";
}
$provincia = $_POST["provincia"];
if (!eregi("^([a-zA-Z]*)$", $provincia))
{
$errori[3] ="Inserire una provincia valida";
}
return $errori;
}
function CheckReg3() {
$errori = array();
$consenso = $_POST["consenso"];
if ($consenso != "si")
{
$errori[0] = "Devi dare il consenso";
}
return $errori;
}
switch ($_GET["action"]) {
case "invia1":
$errori = CheckReg1();
if (count($errori) == 0) {include ("registrazione_02.php");}
else {include ("registrazione_01.php");}
break;
case "invia2":
$errori = CheckReg2();
if (count($errori) == 0) {include ("registrazione_03.php");}
else {include ("registrazione_02.php");}
break;
case "invia3":
$errori = CheckReg3();
if (count($errori) == 0) {include ("registrazione_04.php");}
else {include ("registrazione_03.php");}
break;
default:
include ("registrazione_01.php");
}
?>
</td>
</tr>
<tr>
<td></td>
</tr>
</table>
</td>
<td width="185" height="600"><? include ("homecenterdx.php"); ?></td>
</tr>
</table>
e poi ho le 4 pagine di registrazione composte dai vari campi.. ora se inserisco
<? session_start() ?> all'interno delle pagine di registrazione (_01, _02 _03 _04) questo mi riporta un errore che riporto:
codice:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\apache
se lo metto in index.php e provo a fare un echo nel momento in cui passo da register_01 a register_02 il dato che voglio vedere lo perdo... perchè? dove devo mettere l'inizio della sessione? qual'è la procedura giusta da seguire?