Si, non usandole ho letto nel manuale e farei attenzione ad usare session_register e is_registered perchè sono funzioni deprecate, se si usa $_session non si deve usare session_register e is_regestered.
Usare $_session e mettere in un array le nostre variabili che vogliamo usare nella sessione facendo partire con session_start.Ciau
Ps:esempio di convalida di login e di partenza di sessione e di come si recuperano l'id, lo user, il profilo e la pass presenti nella tabella utenti nel db sql.
Codice PHP:
session_start();
$username=$_GET['username'];
$password=$_GET['password'];
$sql = $db->prepare("SELECT * FROM utenti WHERE username = ? AND password = ?"); //l'utente inserisce username e password e controlliamo che sia un utente registrato cioè presente nella tabella utenti
$sql -> bind_param('ss', $username, $password);
$username = trim($username);
$password = md5($password);
$sql->execute();
$sql->store_result();
if ($sql->num_rows() == '1'){
$sql -> bind_result($id,$username, $profilo, $password);//bind dei risultati, sono tutti i campi presenti nella tabella utenti
if ($sql->fetch()){
//------------------------VALORI DELL'UTENZA-----------
$user_browser = $_SERVER['HTTP_USER_AGENT'];
$idUtente=$id;
$profilo=$profilo;
$username = $username;
$datiUtente = array('idUtente'=>$idUtente,
'username'=>$username,
'profilo'=>$profilo);
$_SESSION['datiUtente']=$datiUtente;
$msg = "|";
$msg .="OK";
$msg = str_replace("\n", "", $msg);
$msg = str_replace("\r", "", $msg);
print $msg;
exit;
}
}
In tutti i file dove voglio recuperare la sessione dell'utenza e controllare il profilo, l'id o lo user una volta effettuato il login ed avendo messo i valori dentro l'array datiutente mi basterà scrivere in una pagina php ad inizio file:
Codice PHP:
session_start();
$datiUtente = $_SESSION['datiUtente'];
$profilo = $datiUtente['profilo'];
$username = $datiUtente['username'];
$id=$datiutente['idUtente']
print "benvenuto " .$username ." il tuo profilo è : " .$profilo " ed il tuo id è : " .$id;
NB: USERNAME E PASSWORD vengono ripresi in GET o POST dal form di login ma $id e $profilo sono nel bind vengono creati lì...non sono inizializzati sono l'id e il profilo della riga corrispondente ad username e password.