Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Registrazione sito

  1. #1

    Registrazione sito

    Ho provato a fare un form per la registrazione, ho messo giusto qualche controllo tanto per, ovviamente dovrà essere perfezionato, l'unico problema è che non funziona... sapete dove ho sbagliato? Contate che questo è il mio primo approccio con il php
    codice:
    <?
     $nome=$_POST['nome'];
     $cognome=$_POST['cognome'];
     $nick=$_POST['nick'];
     $password=$_POST['password'];
     $cpassword=$_POST['cpassword'];
     $email=$_POST['email'];
     $errore='';
     $sep='|';
     $control='true';
     
      
     
     function ctrl_nome($nome)
      {
        for($i=0;$i<strlen($nome);$i++)
          {
            if(is_numeric($nome{i}))
            $control=false;
          } return $control;
      }                 
     function ctrl_psw($password,$cpassword)
      {
         if($password!=$cpassword)
          $control=false;
         return $control; 
      }
     function ctrl_email($email)
      {
         if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email) and !empty($email))
           $control=false;
         return $control;    
      }
      
     if(!ctrl_nome)
       { echo'ciao';
         $errore=$errore.'Il nome non puo contenere numeri.';
        }  
     if(!ctrl_psw)
        {echo'ciao';
        $errore=$errore.'Le password non coincidono.';
         }
     if (!ctrl_email)  
        $errore=$errore.' Email non corretta.'; 
        
     if($errore=="")    
       {
        $rigo=$nome.$sep.$cognome.$sep.$nick.$sep.$password.$sep.$email.$sep ;
        $file=fopen(getenv('DOCUMENT_ROOT')."utenti.txt",'a');
        fwrite($file,$rigo);
        fclose($file);
       }
      else
       echo $errore; 
    ?>
    
    
    
    <form method="POST" action="registrazione.php">
     Nome  <input type="text" name="nome" <? echo " value=\"".stripslashes($nome)."\""; ?>  
    
     Cognome <input type="text" name="cognome" <? echo " value=\"".stripslashes($cognome)."\""; ?>>   
    
     Nome Utente <input type="text" name="nick" <? echo " value=\"".stripslashes($nick)."\""; ?>>   
    
     Password  <input type="password" name="password" <? echo " value=\"".stripslashes($password)."\""; ?>>  
    
     Conferma Password  <input type="password" name="cpassword" <? echo " value=\"".stripslashes($cpassword)."\""; ?>> 
    
      E-mail<input type="email" name="email" <? echo " value=\"".stripslashes($email)."\""; ?>>  
    
     Registrati <input type="submit" name="registrati" value="submit">  
    
    </form>

  2. #2
    Che errore ti da di preciso?
    Se ti sono stato utile seguimi su Twitter: @AdileoBarone
    Sito web/blog:http://www.adileo.com

  3. #3
    Praticamente non fa la registrazione

  4. #4
    mmmm... ci sono un po' troppi errori pertanto ti riscrivo il codice a modo mio:

    codice:
    <?php
    if ( ! empty( $_POST ) )
    {
     $nome=$_POST['nome'];
     $cognome=$_POST['cognome'];
     $nick=$_POST['nick'];
     $password=$_POST['password'];
     $cpassword=$_POST['cpassword'];
     $email=$_POST['email'];
     $errore='';
     $sep='|';
     $sep2='&';
     $control='true';
     
      
     
     function ctrl_nome($nome)
      {
        if(preg_match('/[\^<,\"@\/\{\}\(\)\*\$%\?=>:\|;#]+/i', $nome)){//SE IL NOME CONTIENE CARATTERI NON ADATTI
          return 0;
        }else{return 1;}
      }                 
     function ctrl_psw($password,$cpassword)
      {
         if($password!=$cpassword){
         return 0;
       }else{return 1;}
        
      }
     function ctrl_email($email)
      {
         if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)){return 0;}else{return 1;}
            
      }
      
     if(!ctrl_nome($nome))
       { 
         $errore=$errore.'Il nome non puo contenere numeri.';
        }  
     if(!ctrl_psw($password,$cpassword))
        {
        $errore=$errore.'Le password non coincidono.';
         }
     if (!ctrl_email($email)) { 
        $errore=$errore.' Email non corretta.'; 
    }
        
     if($errore=="")    
       {
        $rigo=$nome.$sep.$cognome.$sep.$nick.$sep.$password.$sep.$email.$sep2 ;
        $file=fopen("utenti.txt",'a');
        fwrite($file,$rigo);
        fclose($file);
    echo "Registrazione Avvenuta";
       }
      else{
       echo $errore; 
    }
    }
    ?>
    
    
    
    <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
     Nome  <input type="text" name="nome" > 
    
     Cognome <input type="text" name="cognome" >  
    
     Nome Utente <input type="text" name="nick"> 
    
     Password  <input type="password" name="password" > 
    
     Conferma Password  <input type="password" name="cpassword" >
    
      E-mail<input type="email" name="email" >  
    
     Registrati <input type="submit" name="registrati" value="submit">  
    
    </form>
    Dimmi se ti funziona
    Se ti sono stato utile seguimi su Twitter: @AdileoBarone
    Sito web/blog:http://www.adileo.com

  5. #5
    Ti ringrazio intanto per l'aiuto

    Comunque l'ho provato, la registrazione la fa, però non ho capito ad esempio a che serve il secondo separatore, inoltre vorrei che, per questione di organizzazione, nel file gli utenti fossero inseriti in righe diverse, invece così me li inserisce tutti su una...

  6. #6
    Allora il separatore l'avevo aggiunto nel caso fosse servito salvarli senza il ritorno a capo.
    Per mandare su una nuova riga basta che alla stringa ci aggiungi un "\n".

    Comunque ti ricordo che il metodo che utilizzi per salvare i dati non è molto sicuro e nel caso di molti utenti diventa parecchio problematico .
    Se ti sono stato utile seguimi su Twitter: @AdileoBarone
    Sito web/blog:http://www.adileo.com

  7. #7
    Per quale motivo non sarebbe sicuro?
    Ah inoltre mi ero scordato di scrivere che inserendo, ad esempio, un numero nel nome, teoricamente dovrebbe darmi errore e restituirmi la stessa pagina con gli stessi valori inseriti, invece continua con la registrazione

  8. #8
    Non è sicuro perchè se riescono a trovare quel file hanno accesso a tutti i dati .

    Sì l'errore per il quale accetta anche i numeri è l'espressione, prova con questa:
    codice:
    /^[a-z ,.'-]+$/i
    Se ti sono stato utile seguimi su Twitter: @AdileoBarone
    Sito web/blog:http://www.adileo.com

  9. #9
    Sì, è vero, però se cripto i dati con un algoritmo non credo ci siano grossi problemi, tu come consiglieresti di salvarli?

    (il codice ancora devo provarlo, sono leggermente impegnato)

  10. #10
    Allora, ecco alcuni consigli:
    -Meglio usare un database come Mysql.
    -Se però non hai grandi esigenze puoi usare anche SQLite.
    -Ricordati sempre di "parsare" i POST e i GET con una funzione per evitare SQLinjection etc.
    -Nel caso del file di testo, sì io lo cripterei e magari gli darei anche un nome generato casualmente.(Ricordati che per accedere a un file di testo, ritrovare tutti gli utenti ecc, ci mette un eternità php, quindi nel caso di molti utenti/iterazioni ti consiglio un database)
    Se ti sono stato utile seguimi su Twitter: @AdileoBarone
    Sito web/blog:http://www.adileo.com

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 © 2024 vBulletin Solutions, Inc. All rights reserved.