[PHP] Riconoscimento Utente Loggato

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao Ragazzi,

ho di nuovo bisogno di voi.....

Allora ho messo in piedi un piccolo e banale sistema di login ,creando una tabella utenti ed implementando questo "codicino" per loggarsi:

PHP:
<?php
// Includo la connessione al database
require('config.php');


// Se il modulo viene inviato...
if(isset($_POST['login']))
{
    
    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Crypto la password e la confronto con quella nel database
    //$pass = md5($pass);
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
        // prelevo l'id dal database
        $login = mysql_fetch_array($query);
        
        // Creo una variabile di sessione
        $_SESSION['login'] = $login['id'];
        
        // reindirizzo l'utente
        header('Location: LOGINInserisci.php');
        exit;
    }
    // se non esiste da l'errore
    else
        die('Nome Utente o Password errati');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>

<body>
<form action="" method="post">
 <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
 <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
 <input name="login" type="submit" value="Login" /><br />
</form>
</body>
</html>

Ora quello che avrei bisogno di fare è riconscere l'utente loggato e riportarne il nome all'interno di un campo del form al quale si accede loggandosi.

In pratica ho un form con i campi DATA | OPERATORE | INTERVENTO | DESCRIZIONE | NOTE
.....e vorrei che il campo OPERATORE si autocompilasse con il nome dell'utente loggato

Mi date una mano ?.....

Grazie
 
Ciao
Quando crei la sessione di login ne crei un'altra col nome utente.
PHP:
$_SESSION['login'] = $login['id'];
$_SESSION['user'] = $login['user o nomeutente'];

Fammi sapere
 
Bubino8

Ottimo come sempre !!!!

Funzia!!!!

mi aiuti con questo altro...problemino???

sto provando ad implementare un sistema di log , tracciando diverse azioni compiute dagli utenti..... questa qui però proprio non vuole saperne:

LOGOUT utente , alla pressione del tasto dovrebbe scrivermi nel db l'azione effettuata...ma non va??????

Ecco il codice :

BUTTON

PHP:
<tr>
    <td><button name="logout" id="logout" onclick="location.href='logout.php'" style="
                                                  width: 163px;
                                              height: 40px;
                                                  font-size: large;
                                              margin-bottom: 20px;
                                              ">E S C I</button></td>
</tr>

QUERY

PHP:
<?PHP
 
 if(isset($_POST['logout'])){
    header("Cache-Control: no-cache");

include("connectDB.php");   

mysql_select_db("my_web1105");

        $id2 = 'NULL';
        $dataOra= date("d/n/Y g:i.s A");
        $tipo= 'LOGOUT';
        $oper = $_SESSION['login'];
        $idIsp = '---';
        $isp = '---';
        $rich = '---';
        $esito = '---';
        $viol = '---';
        $desc = '---';
        $note = '---';
 

   $toinsert2 = "INSERT INTO `RegistroIspezioni2017_Log`
        (id, tipo, data, id_ispezione, operatore, ispezione, richiedente, esito, violazione, descrizione, note)
            VALUES
            ('$id2',
             '$tipo',
             '$dataOra',
             '$idIsp',
             '$oper',
             '$isp',
             '$rich',
             '$esito',
             '$viol',
             '$desc',
             '$note'
                    )";         
    
    $res2 = mysql_query($toinsert2);

}
?>

dove sbaglio ??
 
Per prima cosa ti consiglio di utilizzare mysqli, perchè mysql è ormai obsoleto.

Per quanto riguarda il logout:
il button non è all'interno di un form, è un bottone che ti porta semplicemente alla pagina logout.php senza passare dati tramite POST.

potresti fare una cosa del tipo
HTML:
 onclick="location.href='logout.php?confermato'"

e recuperi con GET

PHP:
if(isset($_GET['confermato'])){



Fammi sapere;)
 
niente da fare.....

ho modificato in questo modo..... ma non funziona

BUTTON
PHP:
<td><button name="logout" id="logout" onclick="location.href='logout.php?confermato'" style="
                                                                                        width: 163px;
                                                                                        height: 40px;
                                                                                        font-size: large;
                                                                                        margin-bottom: 20px;
                                                                                        ">E S C I</button></td>

QUERY
PHP:
if(isset($_GET['confermato'])){
    header("Cache-Control: no-cache");

include("connectDB.php");   

mysql_select_db("my_web1105");

        $id2 = 'NULL';
        $dataOra= date("d/n/Y g:i.s A");
        $tipo= 'LOGOUT';
        $oper = $_SESSION['login'];
        $idIsp = '---';
        $isp = '---';
        $rich = '---';
        $esito = '---';
        $viol = '---';
        $desc = '---';
        $note = '---';

Qualcosa ancora non va ......
 
prova a stampare un echo e vedere se almeno if te lo legge, ma non esegue la query
 
Risolto!!!

ho dovuto fare un "accrocchio" perchè in pratica .... cambiando pagina alla pressione del tasto non mi eseguiva la query ..... mentre rimanendo sulla stessa pagina la query veniva eseguita regolarmente

Quindi ...(la pagina dove si trova il tasto si chiama Inserisci.php)

BUTTON
PHP:
td><button name="logout" id="logout" onclick="location.href='Inserisci.php?confermato'" style="
                                                                                        width: 163px;
                                                                                        height: 40px;
                                                                                        font-size: large;
                                                                                        margin-bottom: 20px;
                                                                                        ">E S C I</button></td>


alla fine della query ho inserito
PHP:
header("location: logout.php");

E così ...funzia!!1

Grazie per il supporto! ;)
 

Discussioni simili