SESSION_ID ovvero pagina personale !

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao CRIRIC, scusami ma ho provato a fare seguendo l'esempio che mi hai scritto, ma non mi funziona, ho rifatto tutto da zero, creato un login, la verifica, tabella e database, ma proprio non va, ho 2 utenti, e ho chiesto con una query di estrarre il nome dell'utente loggato, ma non mi estrae nulla.
Se sei sicuro che il tuo esempio funziona è possibile che non sia compatibile con il mio file di verifica.php?
grazie ancora






E' li che devi creare la sessione, dopo aver fatto la query per vericare il dati di login metti l'id in sessione

PHP:
if(query di login ha successo) {
  $_SESSION['idUtente'] = $row['idUtente'];
}
nella pagina riservata puoi fare le query usando l'id in sessione
PHP:
if(isset($_SESSION['idUtente'])) {
  $query = "SELECT * FROM articoli WHERE idUtente = " . $_SESSION['idUtente'] ;
}
quando usi le sessioni a inizio pagina devi mettere
PHP:
session_start();
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ma non hai un login funzionante? La verifica dei dati dovrebbe venire eseguita lì. Se vuoi invece eseguirla in ogni pagina per vedere se i valori in sessione corrispondono ancora a quelli dell'utente nel database (un amministratore potrebbe aver cambiato la password dell'utente nel frattempo) ti consiglio di creare una funzione che automatizzi il processo:
PHP:
function checkUser($username, $password)
{
    // ottieni un'istanza di $pdo in qualche modo, come parametro della funzione
    // oppure usando l'iniezione delle dipendenze, ma evita le variabili globali

    $stm = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = MD5(:password)');
    $stm->execute(array(
        ':username' => $username,
        ':password' => $password,
    ));

    return ($stm->rowCount() == 1);
}
Quindi in cima alle tue pagine inserirai:
PHP:
<?php
if (!checkUser($_SESSION['username'], $_SESSION['password'])) {
    // onestamente qui sono indeciso se utilizzare 401 Unauthorized
    // oppure 403 Forbidden, vedi un po' tu
    header('HTTP/1.0 401 Unauthorized');
    header('Location: login.php');

    exit();
}

// ...
?>

Ciao,

Ho provato solo ora il tuo codice e mi da il seguente errore:

Fatal error: Call to undefined function checkUser() in /volume1/web/utenti/fabio/provasessionialivelli/login.php on line 5


Ti posto qua come ho fatto tante volte avessi sbagliato:

checkUser.php

PHP:
<?php
require_once("connetti.php");

function checkUser($username, $password)
{
    // ottieni un'istanza di $pdo in qualche modo, come parametro della funzione
    // oppure usando l'iniezione delle dipendenze, ma evita le variabili globali

    $stm = $pdo->prepare('SELECT * FROM utenti WHERE username = :username AND password = MD5(:password)');
    $stm->execute(array(
        ':username' => $username,
        ':password' => $password,
    ));

    return ($stm->rowCount() == 1);
}  
?>

login.php


PHP:
<?php

require_once("connetti.php");
if(isset($_POST['log'])){
 if (!checkUser($_SESSION['username'], $_SESSION['password'])) {
    // onestamente qui sono indeciso se utilizzare 401 Unauthorized
    // oppure 403 Forbidden, vedi un po' tu
    header('HTTP/1.0 401 Unauthorized');
    header('Location: login.php');

    exit();
}


    
}
?>

<center>
<h2>DIGITARE USERNAME & PASSWORD. PREMERE <a href="iscrizione.php"> QUI</a> </h2> 

<form action= "<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<font face="Comic Sans MS">
Username: <input type="text" name="username"  maxlength="30" size ="32"> <br /> <br />
Password: <input type="password" name="password"  maxlength="12" size ="14"><br /><br />
</font>
<input type="submit" name="log" value="Loggati" />
</center>
</form>
<!-- qui il tag center (obsoleto) era indentato col form -->
</center> 
</body>
</html>

Tante volte vedi se hai tempo di dargli un'occhiata te ne sarei grato.
 
Discussioni simili
Autore Titolo Forum Risposte Data
L login e session PHP 4
max1974 Session Timeout Javascript 0
L [PHP] login e protezione pagine con session PHP 3
P [PHP] Multi-session PHP 1
Y [PHP] The session is lost PHP 8
G [PHP] Problema - Warning: session_start() [function.session-start] PHP 9
L [WordPress] creare un plugin , come faccio ad utilizzare le session. WordPress 5
M [Java] Session Attribute Spring MVC Java 1
M [PHP] ID in SESSION PHP 1
P Session e cookie funzionano solo dopo passaggio valori tramite POST PHP 8
W Session e htaccess PHP 2
M Non aggiorna valore session PHP 5
Nik Cannot send session cache limiter - ERRORE utilizzando session_start(); PHP 3
I registrazione (SESSION) PHP 5
K problemi con nome della session PHP 3
N Problema con le SESSION PHP 6
P problema salvataggio e richiamo SESSION PHP 0
M Session timeout in ASP.NET ASP.NET 1
S VS2010: Variabili Session in ASP net ASP.NET 2
Emix Problema Session PHP 1
S codeigniter session problem PHP 1
A session hijacking PHP 0
A Problema SESSION e LOGIN PHP 1
T Cambiare session id PHP 1
Monital Errore solo per alcuni utenti, colpa delle session? PHP 5
Fabrizio Fiorita header e session funzionano perfettamente in locale ma creano problemi in remoto PHP 32
J PhPBB , e le session di login phpBB 1
helpdesk Nessuna session start in login PHP PHP 12
S session come mettere l'id utente PHP 1
G problema con session.gc_maxlifetime PHP 3
T problema con le session PHP 3
ciacos74 PHP errore function.session-start PHP 25
max_400 blog con session si può fare? PHP 10
M problema con Session PHP 3
M Problema con l'utilizzo delle Session PHP 3
H Warning: session_start() [function.session-start]: Cannot send session cache limiter PHP 8
foki problema misterioso session ID PHP 30
A session sid PHP 12
borgo italia session evanescente PHP 4
G problema con session.cookie_lifetime PHP 1
A session start() PHP 7
L Session o cookie? Classic ASP 3
M Warning: session_start(): Cannot send session cache... ???? PHP 5
P problema sessioni php [function.session-start] PHP 2
L Abbinare ad una session un determinato valore Classic ASP 16
L Più session Classic ASP 1
A problema con Session Classic ASP 4
T variabili session Classic ASP 2
E passaggio parametro con session Classic ASP 0
D Aprire più session..come?? Classic ASP 9

Discussioni simili