Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Mi corregete?

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    103

    Mi corregete?

    Sto cercando di imparare l OOP, e probabilmente non ne so parecchio anche di php..

    Posto una ciofeca che ho provato a scrivere e che ovviamente non funzioni (non restituisce mai notlogged..)

    Codice PHP:
    class auth {
        
      public function 
    _constructor() 
      {
        if(!isset(
    $_SESSION['userStatus'])) {
          return 
    $_SESSION['userStatus'];
        } elseif (isset(
    $_GET['username'])) {
          
    $this->userLogin();
        } elseif (isset(
    $_GET['logout'])) {
          
    $this->userLogout();
        } else {
          
    $_SESSION['userStatus'] = 'notlogged';
          return 
    $_SESSION['userStatus'];
        }
      }
      
      private function 
    userLogin() 
      {
        
    $rs $conn->Execute('SELECT * FROM admin_users WHERE username="$_GET[username]" AND password="$_GET[password]"');
        if (
    $rs->RecordCount 0) {
          
    $_SESSION['userStatus'] = $rs->Fields['type'];
          
    $_SESSION['userName'] = $rs->Fields['name'];
          
    $_SESSION['userSurname'] = $rs->Fields['surname'];
          
    $_SESSION['userEmail'] = $rs->Fields['email'];
          
    $_SESSION['userLastLogin'] = $rs->Fields['lastlogin'];
          
    $conn->Execute('UPDATE admin_users SET lastlogin="'.time().'" WHERE username="$user"');
          return 
    $_SESSION['userStatus'];
        } else {
          
    $_SESSION['userStatus'] = 'notlogged';
          return 
    $_SESSION['userStatus'];
        }
      }
      
      private function 
    userLogout() 
      {
        unset(
    $_SESSION['userName']);
        unset(
    $_SESSION['userSurname']);
        unset(
    $_SESSION['userEmail']);
        unset(
    $_SESSION['userLastLogin']);
        
    $_SESSION['userStatus'] = 'notlogged';
        return 
    $_SESSION['userStatus'];
      }
      

    Se qualche buon anima potesse correggermi, e darmi qualche consiglio in generale sarebbe di grande aiuto.. Grazie

  2. #2
    Qualche suggerimento:

    hai inizializzato la sessione con
    codice:
    session_start()
    prima dell'header?

    Inoltre potresti sostiuire il codice della fx userLogout() con

    codice:
    private function userLogout()
      {
        unset($_SESSION);
        session_destroy();
      }
    Ciao!
    Stefano
    Il saggio coltiva Linux poichè Windows si pianta da solo

  3. #3
    Inoltre penso tu abbia un problema nel costruttore:

    Codice PHP:
    public function _constructor()
      {
        if(!isset(
    $_SESSION['userStatus'])) {      //-- se la var userStatus non e' settata
          
    return $_SESSION['userStatus'];   //-- restituisce la var userStatus (che e' unset tanto quanto e' vero l'if di cui sopra)
        
    } elseif (isset($_GET['username'])) {
          
    $this->userLogin();
        } elseif (isset(
    $_GET['logout'])) {
          
    $this->userLogout();
        } else {
          
    $_SESSION['userStatus'] = 'notlogged';
          return 
    $_SESSION['userStatus'];
        }
      } 
    Il saggio coltiva Linux poichè Windows si pianta da solo

  4. #4
    Il titolo della discussione non è conforme al regolamento
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

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.