Login Rocket PHP Login Manager

InVeRsIoNe

Nuovo Utente
25
1
Salve ragazzi sto utilizzando Rocket login il mio problema è che non so come fammi restituire i dati del utente che ha loggato qualcuno sa come fare ? non conosco php :/ cosa dovrei cambiare in questo codice per fare un funzione che mi restituisce un lista dei dati dell utente ? ho provato a fare un altra conessione al database pero mi da schermata bianca sembra che rimane connessa con l'altra connessione mqsql qrazie per l'aiuto mi :/
PHP:
<?php

    session_start();
    
    require_once 'protect.user.php';
    $session = new USER();
    $url =  "{$_SERVER["REQUEST_URI"]}";
    $base_url = config::get('base_url');


    // if user session is not active(not loggedin) this page will help 'home.php and profile.php' to redirect to login page
    // put this file within secured pages that users (users can't access without login)
    
    if(!$session->is_loggedin())
    {
        // session no set redirects to login page
        $session->redirect($base_url.'/login.php?return='.$url);
    }
PHP:
<?php

require_once('configurations.php');

class USER
{   

    private $conn;
    
    public function __construct()
    {
        $database = new Database();
        $db = $database->dbConnection();
        $this->conn = $db;
    }
    
    public function runQuery($sql)
    {
        $stmt = $this->conn->prepare($sql);
        return $stmt;
    }
    
    public function register($uname,$umail,$upass,$randomstring)
    {
        try
        {
            $new_password = password_hash($upass, PASSWORD_DEFAULT);
            
            $stmt = $this->conn->prepare("INSERT INTO users(user_name,user_email,user_pass,pr_id) VALUES(:uname, :umail, :upass, :randomstring)");
                                                  
            $stmt->bindparam(":uname", $uname);
            $stmt->bindparam(":umail", $umail);
            $stmt->bindparam(":upass", $new_password);
            $stmt->bindparam(":randomstring", $randomstring);                                         
                
            $stmt->execute();   
            
            return $stmt;   
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }               
    }

        public function changepass($password, $pr_id)
                {
            try
                {
            $hashpassword = password_hash($password, PASSWORD_DEFAULT);
            $stmt = $this->conn->prepare("UPDATE users SET user_pass=:hashpassword where pr_id=:pr_id");                                                   
            $stmt->bindparam(":hashpassword", $hashpassword);
            $stmt->bindparam(":pr_id", $pr_id);
            $stmt->execute();
            return $stmt;
                
            } catch(PDOException $e)
            {
            echo $e->getMessage();
            }               

            catch(PDOException $e)
            {
                echo $e->getMessage();
            }
    
                }



    public function doLogin($uname,$umail,$upass)
    {
        try
        {
            $stmt = $this->conn->prepare("SELECT user_id, user_name, user_email, user_pass FROM users WHERE user_name=:uname OR user_email=:umail ");
            $stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
            $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            if($stmt->rowCount() == 1)
            {
                if(password_verify($upass, $userRow['user_pass']))
                {
                    $_SESSION['user_session'] = $userRow['user_id'];
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }
    }
    
    public function is_loggedin()
    {
        if(isset($_SESSION['user_session']))
        {
            return true;
        }
    }
    
    public function redirect($url)
    {
        header("Location: $url");
    }
    
    public function doLogout()
    {
        session_destroy();
        unset($_SESSION['user_session']);
        return true;
    }
    
}
?>
 

Moffetta88

Moderatore
Staff Forum
6,024
3,083
azz, non consci php e già vorresti fare un qualcosa che fa login con gestione database e sessioni? un po' azzardato direi...

Comunque, assicurati di fare il logout e di pulire la sessione, altrimenti c'è la possibilità che ti mantenga i dati in sessione del precedente login. Rocket non lo conosco..
 
  • Mi piace
Reactions: Krona

InVeRsIoNe

Nuovo Utente
25
1
diciamo che riesco a scrivere qualcosa in php ma non riesco a capire dove si trova l'errore o come fammi restituire i dati del l'utente qualcuno di buon cuore puo dirmi come fare ? :deserto:
 

cdtux

Utente Èlite
1,718
756
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
Hard Disk
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
Scheda Video
EVGA GTX670 SC
Monitor
Dell U2412M
Alimentatore
Corsair TX850M
Case
Corsair Graphite 760T
Sistema Operativo
Debian / Kali Linux / Win
Non conosco Rocket nemmeno io, comunque sia (dal codice postato) quando esegue il login (funzione doLogin) salva nella sessione solamente lo user_id:

PHP:
$_SESSION['user_session'] = $userRow['user_id']
quindi l'unica informazione dell'utente a cui puoi accedere è l'id dell'utente.
Se devi aggiungere altre informazioni dell'utente nella sessione lo devi fare in fase di login.

NB. Inserire tutte o in parte dati sensibili dell'utente nella sessione è una BAD practice di sicurezza, quindi aggiungi sempre e solo il minimo indispensabile.

EDIT:
In alternativa puoi aggiungere una funzione con query al db (nel secondo file per capirci) che ti restituisce i dati utente che ti servono
 
Ultima modifica:
  • Mi piace
Reactions: Moffetta88

Entra

oppure Accedi utilizzando