Visualizzazione dei risultati da 1 a 3 su 3

Discussione: funzione per il login

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804

    funzione per il login

    salve ragazzi ho fatto una funzione per l autenticazione dell amministratore, pero non riesco a capire perce non funziona premetto che passo il tutto a smarty template,

    nel index ho inserito la funzione , e nel form ho messo un campo nascosto hidden, chamato action con valore login ,
    Codice PHP:
    if(isset($_POST['action'])&&($_POST['action']=="login")){
    if(!isset(
    $_POST['login'])){$login="";}else{$login trim(addslashes($_POST['login']));}
    if(!isset(
    $_POST['pass'])){$pass_cript="";}else{$pass_cripttrim(addslashes($_POST['pass']));}
    if(!
    LoginAdministrator($login,$pass_cript,$remember)){
    $smarty->display('adminhome.tpl');
    exit;

    e questa e la funzione
    Codice PHP:

    function LoginAdministrator($login,$pass_cript,$remember=false){
        global 
    $dbcore $smarty;
        
        
    $sql mysql_query(  "select *
                                        from amministrator
                                        where`nick` ='
    $login
                                        and `pass` = '"
    .md5($pass_cript)."'
                                        and `stato` = 1 
                                        and `tipo` = 3 
                                        limit  1"
    ) or die ("error");
                                        
                
                if(
    $result mysql_num_rows($sql) ==1)
                {
                
    session_start();
               
    $_SESSION['areaprivata_login']=$login;
               
    $_SESSION['areaprivata_password']=$pass_cript;
                   
                                       return 
    true;   
                             
                                 }
                 else
                 {
                  return 
    false;
                 }    

    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    - Quando si ha un problema non si scrive "non funziona", si descrive il problema
    - Migliorabile l'uso di addslashes sulle variabili in input (meglio le funzioni apposite per il db, vedere pillola)
    - Infelice l'uso di addslashes fuori dalla funzione che passa le variabili al db, invece che dentro
    - Assai infelice l'applicazione di md5() su una stringa DOPO che ci hai fatto l'addslashes!!
    - Perché usi 'or die ("error")' invece di 'or die (mysql_error())' che ti spiegherebbe qual è il problema?
    - Perché salvi la password in sessione?
    - Perché usi un'espressione così inutilmente complicata?
    if($result = mysql_num_rows($sql) ==1)
    Non ricordo quale dei due operatori prende la precedenza, ma se è il primo l'espressione non si comporterà come ti aspetti

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804
    ciao luca non riesco a capire il motivo , perche non avvia la sessionee dovrebbe caricarmi il template index il fatto e propio che non mi da nesun errore ma non effettua il controllo del login secondo me perche rimane sempre ad un punto , sarebbe a dire il template dove c e il form del controllo user e password e remember questo e l index
    Codice PHP:
    if(isset($_POST['action'])and ($_POST['action']=="login")){
    if(!isset(
    $_POST['login'])){$login="";}else{$login trim(addslashes($_POST['login']));}
    if(!isset(
    $_POST['pass'])){$pass_cript="";}else{$pass_cript trim(addslashes($_POST['pass']));}
    if(!isset(
    $_POST['remember'])){$remember="";}else{$remember intval($_POST['remember'])?0:1;}

    if(!
    LoginAdministrator($login,$pass_cript,$remember)){
    $smarty->display('adminlogin.tpl');
    exit;
    }
    Redirect("index.php");
    }


    if(
    LogedAdmin()){

    $smarty->display('adminhome.tpl');
    }
    else
    {
    $smarty->display('adminlogin.tpl');

    e le fuzioni
    Codice PHP:
    function LoginAdministrator($login,$pass_cript,$remember=false){
        global 
    $dbcore $smarty;
        
        
    $sql mysql_query(  "select *
                                        from amministrator
                                        where`nick` ='
    $login
                                        and `pass` = '"
    .md5($pass_cript)."'
                                        and `stato` = 1 
                                        and `tipo` = 3 
                                        limit  1"
    ) or die ("error");
                                        
                
                if(
    $result mysql_num_rows($sql) ==1)
                {
                
    session_start();
               
    $_SESSION['areaprivata_login']=$login;
               
    $_SESSION['areaprivata_password']=$pass_cript;
               return 
    true;   
               }
               else
               {
                return 
    false;
          }
        
    }
        
    function 
    LogedAdmin(){
    if((isset(
    $_SESSION['areaprivata_login']))and(isset($_SESSION['areaprivata_password'])))
    {
        
        return 
    true;
    }else{
        return 
    false;
    }
        } 
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

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.