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:
La pagina homecenter.phpcodice:<!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>
cosi strutturata:
e poi ho le 4 pagine di registrazione composte dai vari campi.. ora se inseriscocodice:<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>
<? session_start() ?> all'interno delle pagine di registrazione (_01, _02 _03 _04) questo mi riporta un errore che riporto:
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?codice:Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\apache![]()
![]()
![]()

Rispondi quotando