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

Discussione: Controlli sulla login

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Controlli sulla login

    Questo è il codice riferito al controllo di Login. "Scelta" è una variabile derivante da una select: lì si sceglie la categoria con cui logarsi (docenti, alunni, ecc.).

    Codice PHP:
    <?
    include("config.php");

    $scelta=$_POST['scelta'];
    $login=$_POST['login'];
    $pwd=$_POST['pwd'];

    $login=str_replace(";","",$login);
    $login=str_replace(":","",$login);
    $login=str_replace(",","",$login);
    $login=str_replace("'","",$login);
    $login=str_replace("*","",$login);
    $login=str_replace("?","",$login);
    $login=str_replace("=","",$login);
    $login=str_replace("&","",$login);
    $login=str_replace("%","",$login);
    $login=str_replace("$","",$login);
    $login=str_replace("<","",$login);
    $login=str_replace(">","",$login);

    $pwd=str_replace(";","",$pwd);
    $pwd=str_replace(":","",$pwd);
    $pwd=str_replace(",","",$pwd);
    $pwd=str_replace("'","",$pwd);
    $pwd=str_replace("*","",$pwd);
    $pwd=str_replace("?","",$pwd);
    $pwd=str_replace("=","",$pwd);
    $pwd=str_replace("&","",$pwd);
    $pwd=str_replace("%","",$pwd);
    $pwd=str_replace("$","",$pwd);
    $pwd=str_replace("<","",$pwd);
    $pwd=str_replace(">","",$pwd);

    if(
    trim($login)=="" OR trim($pwd)==""){
                        echo 
    "I campi Login e Password devono essere riempiti!";
    }

    if(
    $scelta=='doc'){

                        
    $q "SELECT * FROM InsegnantiLogin WHERE InsegnantiLogin_Login='$login'";
                        
    $query mysql_query($q) or die(mysql_error());
                        
    $password=mysql_result($query,0"InsegnantiLogin_Password");
                        if(
    $pwd==$password){
                          
    url("Docenti/docenti.php");
                        }
    }


    ?>

    1) Non dà errori di sintassi, ma quando fa il redirect mi apre una pagina vuota. Sbaglio il codice?

    2) Quali altri controlli dovrei fare per avere una buona login?

    Mi piacerebbe anche la storia di gestire le sessioni (ho dato una letta all'articolo su html.it), ma non ho ancora il bagaglio tecnico per riuscire a capirle con il tempo che ho a disposizione... Per adesso dovrò accontentarmi

  2. #2
    Per quanto riguarda il redirect utilizzi una funzione che non ho mai visto, ma potrei sbagliarmi io..
    prova a fare così (scusa ti cambio anche la pulizia della stringa in una funzione):
    Codice PHP:
    <?
    include("config.php");

    function 
    pulisci($login)
    {
    $login=str_replace(";","",$login);
    $login=str_replace(":","",$login);
    $login=str_replace(",","",$login);
    $login=str_replace("'","",$login);
    $login=str_replace("*","",$login);
    $login=str_replace("?","",$login);
    $login=str_replace("=","",$login);
    $login=str_replace("&","",$login);
    $login=str_replace("%","",$login);
    $login=str_replace("$","",$login);
    $login=str_replace("<","",$login);
    $login=str_replace(">","",$login);
    return 
    $login;
    }

    $scelta=$_POST['scelta'];
    $login=$_POST['login'];
    $pwd=$_POST['pwd'];

    $login pulisci($login);
    $pwd pulisci($pwd);

    if(
    trim($login)=="" OR trim($pwd)==""){
                        echo 
    "I campi Login e Password devono essere riempiti!";
    }

    if(
    $scelta=='doc'){

                        
    $q "SELECT * FROM InsegnantiLogin WHERE InsegnantiLogin_Login='$login'";
                        
    $query mysql_query($q) or die(mysql_error());
                        
    $password=mysql_result($query,0"InsegnantiLogin_Password");
                        if(
    $pwd==$password){
                          
    header("Location: Docenti/docenti.php"); //Qui non ti conviene mettere un path tipo [url]http://www.qualcosa.com/docenti/docenti.php??[/url]
                        
    }
    }


    ?>
    Comunque se vuoi togliere eventuale codice html/php da una stringa considera l'utilizzo di strip_tags()...

    EDIT: Mi ero dimenticato della seconda domanda... Beh per una autentcazione "normale" (cioè senza connessione sicura e certificati vari, se no esci di testa e non sempre ne vale la pena): penso che il tuo script più o meno ci sia... Se proprio vuoi essere pignolo e previdente oltre il limite puoi "pulire" ancora di più $login con strip_slashes() preparandolo per una query "sicura" al db... Però il tuo script mi sembra già ben più che soddisfacente... Così su due piedi non vedo "buchi"...
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3

    controllo autenticazione

    Ciao a tutti, devo fare anch'io delle pagine protette, ho capito come funzione la pagina di login, ma se qualcuno accede direttamente alla pagina "Docenti/docenti.php" cosa succede? Come faccio a controllare se arriva dalla pagina di login oppure no?

  4. #4
    potresti controllare se sono impostati delle variabili di sessione (tipo $_SESSION['username']) che hai impostato durante il login, e se così non fosse neghi l'accesso alla pagina...
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    La redirect non l'avevo mai vista, l'utilizzo di url lo trovato in giro per la rete ma non so se sia appopriato qui
    Comunque hai scritto

    header("Location: Docenti/docenti.php"); //Qui non ti conviene mettere un path tipo http://www.qualcosa.com/docenti/docenti.php??
    E' per ragioni di sicurezza che mi sconsigli di usare il path completo (anche se non avevo intenzione di usarlo)?

    Grazie per le risposte

  6. #6
    no non per sicurezza (il path completo (assoluto) si utilizza per sicurezza quando includi files), è per una questione di chiarezza, dipende dalle preferenze personali... Non è assolutamente necessario
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  7. #7

    session

    Ciao, sto provando a gestire le sessioni ma non trovo esempi chiari...

    Questa è la mia pagina:

    01 <?php
    02 $username = $_POST['username'];
    03 $password = $_POST['password']
    04 session_start();
    05 $_SESSION['username'] = $username;
    06 $_SESSION['password'] = $password;
    07 echo "Ciao " . $username . " la tua password è " . $password;
    08 ?>

    ma il risultato è questo:

    Parse error: parse error in c:\programmi\easyphp1-8\www\session\prova.php on line 4

    Faccio girare la pagina in locale tramite EasyPHP.

    Dove sbaglio?

    P.S. e poi come controllo una variabile di sessione nelle altre pagine?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Prova a mettere session_start() sopra la pagina.

    Per le altre pagine, metti sempre all'inizio (prima di tutto, anche del codice html)
    <?php
    session_start();
    ?>

    E le richiami con
    echo "{$_SESSION['username']}";

  9. #9

    session

    Funziona tutto! (avevo omesso il ; alla fine della riga 3)...

    Ora una cosa teorica: non penso sia necessario inserire username e password in variabili session, potrei verificare i dati direttamente dalle variabili $username e $password e poi impostare una variabile (es. autorizzazione) a 1 e nelle pagine successive controllo questa variabile...

    Il ragionamento è giusto?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Il ragionamento può filare, se riesci a controllare i dati in fase di login.
    In genere le variabili di sessione io le uso per richiamare il nome dell'utente logato (tipo "benvenuto $utente").


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