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

    Problema con Post e registrazione!!!

    ciao a tutti!!!
    ho una pagina in cui c'è un form per la registrazione... questa invia i dati ad un'altra pagina che li elabora e li inserisce in un database... pero quando vado a controllare che i dati non siano vuoti con empty mi restituisce che è vuoto...
    questo è il form:
    Codice PHP:
    <form action=inviodati2.php?registrazione=ok method=post name=registrazione>
    <
    div id=datiInserisci i tuoi dati:
     


    Nome:<input type=text name="nome"></input>&nbsp Inserisci il tuo nome vero(no il cognome).</p>


    Username:<input type=text name="username"></input>&nbsp Inserisci il nome che vuoi che gli altri vedano.</p>


    Password:<input type=text name="password"></input>&nbsp La password devi conoscerla solo tu.</p>


    Ripeti password:<input type=text name="password2"></input>&nbsp Le due password devono coincidere.</p>


    Email:<input type=text name="email"></input>&nbsp L'email deve essere valida.</p>
    <input type=submit value=invia dati id=invia></input> </div> </form> 
    e questo è il file che elabora i dati:
    Codice PHP:
    <html> <head> 
    <style> div {font-size:50px; position:relative; top:35%; left:35%;}</style>
    <?php
    $nome
    =$_POST['nome'];
    $username=$_POST['username'];
    $password=$_POST['password'];
    $password2=$_POST['password2'];
    $email=$_POST['email'];?>
    </head>
    <body>
    <?php 
    if($_GET['registrazione']==ok)
    {if(!empty(
    $nome) && !empty($username) && !empty($password) && !empty($password2)
         && !empty(
    email))
    {echo 
    "ciao";} 
    else{echo 
    "ciau";}
    }
    else{
    header("location:[url]http://giacomo1999.altervista.org/registrazione.php[/url]");}
    ?>
    </body></html>
    praticamente se esistono i vari dati dovrebbe scrivere "ciao" altrimenti "ciau" (è solo un esempio)... con tutti i post funziona tranne che con quello del nome... come mai??

  2. #2
    ho risolto... era solo uno stupido errore di scrittura...
    comunque mi potreste dare un aiuto su come controllare i campi in modo che le due password siano uguali, fargli l'md5 e controllare che l'email contenga una chiocciola e un punto???
    magari anche rendendo il codice piu sicuro e contro l'sql injiection???
    forse chiedo un po troppo ma ve ne sarei molto grato!!!

  3. #3
    ...

    Innanzitutto (cosa che spero sia dovuta al fatto che hai messo il codice html qui), ti ricordo che i campi html si scrivono <tag attributo="valore"></tag>

    Alcuni campi accettano il <tag /> direttamente, ma meglio sempre mettere attributo = "valore" anche per i campi form (method ed action e name), così come id e classi di fogli di stile.

    Data questa piccola parentesi OT, torniamo IT:

    Come controllare i campi?

    1) Controllare che i campi esistano

    Codice PHP:
    // Esempio 1
    if (isset($_POST['campo']))

    // Esempio 2
    if (isset($_GET['campo'])) 
    2) Controllare che i campi non siano vuoti

    Codice PHP:
    // Esempio 1
    if (trim($_POST['campo']) != "")

    // Esempio 2
    if (trim($_GET['campo']) != ""
    3) Controllare che le due password siano uguali

    Codice PHP:
    if ($_POST['password1'] == $_POST['password2']) 
    4) Viene sconsigliato l'md5 (sul sito php.net), io ad esempio uso il crypt:

    Codice PHP:
    $chiave "test"// mia chiave di criptazione
    $password $_POST['password'];
    $password crypt($password$chiave); // password criptata 
    il sistema md5 dovrebbe funzionare in maniera simile salvo che forse non devi indicare tu una chiave

    5) Controllare che l'email contenga una e solo una chiocciola ed almeno un punto devi usare le espressioni regolari (preg_match).

    6) Per essere tranquillo contro le Sql Injection devi fixare tutti i campi, filtrare tutto quello che ti viene scritto anche vietando determinati caratteri (con le espressioni regolari) e trasformando alcuni caratteri speciali come lettere accentate e/o backslashes e/o etcetera almeno nella loro entità html.

    Bastano come informazioni iniziali?

  4. #4
    grazie!!!!
    Mi sei stato di grande aiuto!!!!
    (l'errore dell'html era perche l'ho scritto al volo)

  5. #5
    Grazie delle risposte veloci e molto utili!!!!
    Poi ti volevo chiedere come funzionava crypt e se si puo decriptare... Poi perche md5 è sconsigliato??

  6. #6
    Il sistema crypt non credo si possa decriptare.

    Per la domanda perchè non sono consigliate ecco la risposta (presa da php.net):

    http://it.php.net/manual/en/faq.pass...words.fasthash

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.