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

Discussione: Sessioni e cookies

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

    Sessioni e cookies

    Buongiorno e buona domenica a tutti apro questa discussione per chiedervi consigli, sto lavorando ad un sito che ha accesso da amministratore ! E da user , adesso io sia all user che all admin ho settato lo stesso nome cookies userid e la stessa sessione
    soltanto che se accedo dal pc di admin e poi vado al sito mi loggia automaticamente ! Cosa pensate? Grazie in anticipo
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Che è normale, se setti il cookie e il controllo del login lo fai tramite cookie cos'altro ti aspetteresti?

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Se sei admin automaticamente non sei più user è una regola gerarchica assoluta un livello superiore annulla il livello inferiore
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,773
    Lo faccio sia cookies e sessioni
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,773
    Codice PHP:
    class UserLogin
    {


    function 
    LoginUser($username $password $remember=false)
    {
    global 
    $dbcore $smarty$cookie;
        
        
    $password $password;
    $passwordmd5 md5($password);
    $result $dbcore->getquery("SELECT user.*, usergroup.* FROM `user` AS user LEFT JOIN `usergroup` AS usergroup ON(user.usergroupid = usergroup.groupid) WHERE user.username = '" $dbcore->escape($username) . "' AND user.password = '" $dbcore->escape($passwordmd5) . "';");
            if(
    $result){
                  if(
    $result['leveluser'] == '3' and $result['isadmin'] == '1' and $result['levelgroup'] == '3'){
                       
    $type 'admin';
                       
    $this->UpdateTimeLogged$result['userid']);
                      
                  }else if(
    $result['leveluser'] == '3' and $result['isadmin'] !='1' and $result['status'] !='1'){  
                                       echo
    'User suspes';
                        return 
    false
                  }else if(
    $result['leveluser'] == '3' and $result['isadmin'] !='1'){  
                                       echo   
    'User does not have admin privileges';
                        return 
    false;
                  }else if (
    $result['leveluser'] == '2' and $result['isadmin'] != '1'){
                                       echo 
    'User does not have admin privileges';
                        return 
    false
                  }else if (
    $result['leveluser'] == '2' and $result['status'] != '1'){
                                       echo
    'User suspes';
                        return 
    false;
                  }else if (
    $result['leveluser'] == '2'){
                       
    $this->UpdateTimeLogged($result['userid']);
                       
    $type 'staff';
                  }else if (
    $result['leveluser'] == '1' and $result['status'] != '1'){
                       echo
    'User suspes';
                  }else if (
    $result['leveluser'] == '1' and $result['status'] == '1' and $result['activation'] != '1'){
                       echo
    'User activation not';
                  }
                  else if (
    $result['leveluser'] == '1'){
                       
    $this->UpdateTimeLogged($result['userid']);
                       
    $type 'user';
                  }else{
                        return 
    false
                  } 
                          if(
    session_id()== "")
                             
    session_start();
    $_SESSION['sessionid'] = session_id() ;
    $_SESSION['userid']    = $result['userid'] ;
    $_SESSION['username']  = $result['username'] ;
    $cookie->SetCookie('userautenticate''1'$remember);
    $cookie->SetCookie('userid'$result['userid'], $remember);
    $cookie->SetCookie('username'$result['username'], $remember); 
           return 
    true;
            }
    return 
    false
    }
    function 
    LoadUser(){
    global 
    $dbcore $smarty $RCW $cookie;



       
    $useraut $cookie->GetCookie('userautenticate')?$cookie->GetCookie('userautenticate'):'';
    if(
    $useraut == 1){
       
    $userid   =  $cookie->GetCookie('userid')?$cookie->GetCookie('userid'):'';
       
    $email    =  $cookie->GetCookie('username')?$cookie->GetCookie('username'):'';
       
    $result   $dbcore->query("SELECT user.*, usergroup.* FROM `user` AS user LEFT JOIN `usergroup` AS usergroup ON(user.usergroupid = usergroup.groupid) WHERE user.userid  = "intval($userid). "");
       
    $row $dbcore->fetch_array($result);
       
    $RCW['user'] = $row;
      if(!
    is_array($RCW['user'])) {return false; }else{$smarty->assign("username" $RCW['user']['username']);
      if(!empty(
    $RCW['user']['timezone']) && $RCW['user']['timezone'] !='99'){$RCW['timezone'] = $RCW['user']['timezone'];}
    return 
    $RCW['user']['userid'];
    }
    }
    }
    function 
    UpdateLastActivity($userid){
    global 
    $dbcore;
    return 
    $dbcore->query("UPDATE LOW_PRIORITY `user` 
                                           SET `lastactivity` = '"
    .$dbcore->escape(NEWTIME)."' 
                                         WHERE `userid` = "
    .intval($userid)."");
    }
    function 
    UpdateTimeLogged($userid){
    global 
    $dbcore ;
    return 
    $dbcore->query("UPDATE LOW_PRIORITY `user`  
                                           SET `lastvisit` ='"
    .$dbcore->escape(NEWTIME)."'  
                                           WHERE `userid` = "
    .intval($userid)."");
    }
    function 
    UpdateTimeChanged($userid){
    global 
    $dbcore ;
    return 
    $dbcore->query("UPDATE LOW_PRIORITY `user` 
                                           SET `lastchange` ='"
    .$dbcore->escape(NEWTIME)."'  
                                         WHERE `userid` = '"
    .intval($userid)."'");
    }
    function 
    SendPass($email)
    {
     global 
    $RCW $dbcore $settings;
     
    if(!
    formatoemail($email)){
    echo 
    " L'email <b>".$email."</b> e formata da caratteri non ammessi";  ;
    return 
    false;
    }
    $sendpass $dbcore->query("SELECT *  FROM `user`  WHERE `email` = '"$dbcore->escape($email) ."'    LIMIT  1");
    $rowsp $dbcore->fetch_array($sendpass);
    if(
    $rowsp){
    $array array_merge(range(0,9),range('A','Z'),range('a','z')); 
    shuffle($array); 
    $password =  substr(implode('',$array),0,8);
    $password $password ;
    $passwordmd5 md5($password);
    $updpass $dbcore->query("UPDATE user SET password ='".$dbcore->escape($passwordmd5)."'  WHERE email='$email' ");
    /* 
    if($updpass){
    require_once ("./includes/functions_mail.php");
    $mailObj = new HtmlMail();
    $mailObj->setSubject('Lost Password for '. $settings['company']);
    $mailObj->setData("","fffff");
    $mailObj->sendMail($email , $settings['emailreplay'] , $settings['company'] );
    $this->UpdateTimeChanged($rowsp['staffid']);
    $RCW['errorstring'] = "La pass e stata inviata al seguente indirizzo email <b>".$email."</b>"; 
    return true;
    }
     */
    }else{
     
    /* echo  " L'email <b>".$email."</b>  non e  presente";   */
      
    return false;
    }

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

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Non serve il codice in questo caso, non c'è un errore.
    Il problema è che non hai chiaro come funzionino le cose.
    Se tu quando fai il login lo fai da amministratore e salvi i dati d'accesso in un cookie ed usi questi dati per stabilire se un utente è loggato o no e il suo livello d'accesso, anche se chiudi il browser e poi lo riapri, il cookie (a meno che non scada) sarà ancora lì, lo script lo vede, lo legge, interpreta i dati che ci sono salvati (sono quelli dell'accesso admin) e ti logga come admin.

    Cosa c'è che non ti torna?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,773
    Ciao grazie non mi torna se dovrei fare due diversi parametri sia per l admin che per l user
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Nella tabella dell'utente oppure in un'altra ad essa riferita, ci metti il livello d'accesso di ogni utente, il codice te lo inventi tu, per esempio 100=admin, 110=user.
    Quando fai il login leggi tale dato, lo metti sia in sessione che nel cookie e lo usi nelle pagine ad accesso riservato per decidere chi può vedere cosa.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,773
    Si c e già il campo leveluser admin 3 staff 2 user 1 guest 0
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    E allora spiegati bene, perché non riesco a capire che problemi hai.
    Cosa intendi per "due diversi parametri"?

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.