Visualizzazione risultati 1 fino 1 di 1

Discussione: aggiungere filtro a un form

  1. #1
    Guest

    Predefinito aggiungere filtro a un form

    salve ultimamente ho dovuto cancellare il mio sito perchè mi ritenevo incapace di farlo quindi attualmente utilizzo il sito per fare delle prove una di queste prove è quella di effettuare il login il mio codice è questo:
    Codice PHP:
    <?php
    //variabili di connessione
    $db_host = "localhost";
    $db_user = "arcadeprehacks";
    $db_password = "*********************";
    $db_name = "my_arcadeprehacks";
    //connetto il database
    $db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
    mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');
    ?>
    <html>
    <head>
    <title>Pagina di Prova Login in Php e Mysql</title>
    </head>
    <body>

    <form action='<? echo $_SERVER['PHP_SELF']; ?>?login=ok' method='POST'>

    <b>Username</b><br>
    <input type='text' name='user'><br>
    <b>Password</b><br>
    <input type='password' name='pass'><br>

    <input type='submit' value='Effettua il login'>


    </form>

    <?php

    // recupero di valori inviati dal form: user e pass

    $user = $_POST['user'];
    $pass = $_POST['pass'];

    $risp = "ok";
    $login = $_GET['login'];

    // questo serve per evitare di ricevere subito un messaggio dallo script

    if ( $login == $risp ) {

    // controllo che entrambi i valori siano stati compilati

    if ( $user && $pass ) {

    // effettuo l'escape per i valori speciali per evitare problemi con le query

    $user = mysql_real_escape_string($user);
    $pass = mysql_real_escape_string($pass);

    // preparo una query cioè una richiesta al database che vede se esistono i valori appena inseriti nella tabella creata precedentemente

    $sql = "SELECT * FROM utenti WHERE username = '$user' AND password = MD5('$pass')";
    $res = mysql_query($sql) or die (mysql_error());

    // ora se i dati inseriti sono quelli esatti presenti all'interno della tabella possiamo far effettuare il login

    if ( $res == TRUE ) {

    // ora creo una sessione con l'id dell'utente che lo farà restare connesso tutto il tempo della navigazione alle pagine protette da login


    while($row = mysql_fetch_array($res)) {

    session_start();

    $idutente = $row['id'];

    $nomeutente = $row['username'];

    $_SESSION['id_utente'] = $idutente;

    $_SESSION['nome_utente'] = $nomeutente;

    // e infine reindirizzo l'utente nella pagina protetta da login

    header("location: paginasegreta.php");


    }


    }



    echo
    "Username o Password non corrette";





    } else {

    echo
    "Non sono stati compilati tutti i dati obbligatori";


    }

    }


    ?>


    </body>
    </html>
    a questo punto vorrei farvi due domande:
    1) è abbastanza corretto il codice? se no potreste aiutarmi a correggerlo e/o a ridurlo

    2) vorrei applicare un filtro che non permatta che i caratteri < , > e la parola script

    inoltre vi posto il codice per le registrazioni:

    Codice PHP:
    <html>
    <head>
    <title>Modulo di Registrazione</title>
    </head>
    <body>

    <form action='registrazione.php?reg=1' method='POST'>

    <b>Nickname</b><br>
    <input type='text' name='nick'><br>
    <b>Password</b><br>
    <input type='password' name='pass1'><br>
    <b>Ripeti Password</b><br>
    <input type='password' name='pass2'><br>
    <b>Mail</b><br>
    <input type='text' name='mail'><br>
    <b>Nome</b><br>
    <input type='text' name='nome'><br>
    <b>Cognome</b><br>
    <input type='text' name='cognome'><br>
    <b>Sesso</b><br>
    <input type='text' name='sesso'><br>
    <b>Anno</b><br>
    <input type='text' name='anno'><br>



    <input type='submit' value='Registrati'><br>

    </form>

    <?

    // connettiamoci il nostro database

    $db_host = "localhost";
    $db_user = "arcadeprehacks";
    $db_password = "****************";
    $db_name = "my_arcadeprehacks";

    //connetto il database
    $db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
    mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');


    // recuperiamo il get per evitare di ricevere subito i messaggi dei vari if sotto

    $reg = $_GET['reg'];

    if (
    $reg == 1 ) {

    // recuperiao tutti i dati inviati via post

    $nick = $_POST['nick'];
    $pass1 = $_POST['pass1'];
    $pass2 = $_POST['pass2'];
    $mail = $_POST['mail'];
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $sesso = $_POST['sesso'];
    $anno = $_POST['anno'];

    // vediamo se tutti i campi sono stati compilati

    if ( $nick == TRUE && $pass1 == TRUE && $pass2 == TRUE && $mail == TRUE && $nome == TRUE && $cognome == TRUE && $sesso == TRUE && $anno == TRUE ) {

    // controlliamo se il campo mail è stato scritto in maniera errata

    $email = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail);

    if(
    $email == TRUE ) {

    // controlliamo se l'e-mail è già inserita all'interno del db


    $query = "SELECT mail FROM utenti WHERE mail = '$mail'";

    $risultato = mysql_query($query) or die (mysql_error());

    $risp = mysql_fetch_assoc($risultato);

    if (
    $risp == FALSE ) {

    // ora controlliamo che pass1 e pass2 sono uguali

    if ( $pass1 == $pass2 ) {

    // criptiamo la password per sicurezza

    $pass_md5 = md5($pass1);

    // e infine registriamo l'utente

    mysql_query("INSERT INTO utenti
    (id , username , password , mail , nome , cognome , sesso , anno )
    VALUES
    ('','
    $nick', '$pass_md5', '$mail', '$nome', '$cognome', '$sesso', '$anno' )") OR DIE(mysql_error());

    // inviamo una mail per comunicare all'utente che si è appena registrato


    $destinatario = $mail;

    $nostro_recapito = "admin@arcadeprehacks.altervista.org";

    $oggetto= "Iscrizione al nostro sito";

    $testo= "

    Complimenti ti sei appena iscritto al nostro sito.\n

    Questa è il tuo nickname :
    $nick \n
    Questa è la tua password :
    $pass1 \n

    "
    ;

    mail ("$destinatario", "$oggetto", "$testo", "From: $nostro_recapito");

    echo
    "Complimenti registrazione effettuata con successo.";


    } else {

    echo
    "Le due Password inserite non sono uguali";

    }

    } else {


    echo
    "Mail già utilizzata";

    }



    }else{

    echo
    "Devi inserire un indirizzo di Mail Valido";


    }

    } else {

    echo
    "Tutti i campi sono obbligatori";


    }

    }

    ?>


    </body>
    </html>
    anche questo secondo voi è abbastanza "pulito" se no come potrei migliorarlo? anche questo farà parte del sistema di login/registrazione del nuovo sito ma cercherò di cambiare i nomi ad esempio di mail in qualche carattere random ad esempio ahsufuaoas per rendere più difficile trovare delle informazioni in un modo "non lecito".
    Ultima modifica di arcadeprehacks : 23-06-2010 alle ore 21.37.30

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •