Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problema con le sessioni

    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?

  2. #2
    session_start(); devi metterlo prima di ogni codice html...
    quindi

    <html><body>
    <?php
    session_start();
    ?>

    non va bene

    <?php
    echo "<html><body>";
    session_start();
    ?>

    neanche (perchè ogni sessione invia un cookie... e i cookie devono essere inviati prima di ogni output)

    quindi metti
    <?php
    session_start();
    ?>
    all'inizio di ogni file in cui usi le sessioni
    ciao
    visitate http://camicio.altervista.org per caxxate varie :d

  3. #3
    al massimo, per evitare troppi sbattimenti, metti anche solo ob_start(); in principio del file...anche qst prima del codice html, così poi nn hai troppi problemi quando crei cookies / sessioni (lo so che nn è tra le soluzioni più eleganti)...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.