- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
Ciao! Se volessi dopo aver fatto il login mettere nella pagina privata "Benvenuto nome e cognome" come devo fare?
Ho provato con la sessione ma non mi viene...:?
-
Ciao Fabrizio23,
se non ricordo male ne avevamo già parlato nella discussione, hai cercato nelle varie pagine?
-
Ciao Theda, no non ne avevamo parlato, beh del login sì ma del fatto che nome e cognome in sessione no...
-
Se vuoi passareli come sessione è sufficiente che nella pagina di login modifichi al query per recuperare nome e cognome e li inserisci in varaibili di sessioni.
Un altra strada invece è fare una query nella pagina interessata e tenere in sessione solo l'id dell'utente recuperarndo quando necessario gli altri dati.
-
Ciao! Nella pagina interessata ho scritto così:
[PHP]$default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
echo "Bentornato $nome_utente $cognome_utente";
[/PHP]Mi scrive solo Bentornato...:?
-
Dovresti fare:
[php]
$default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
echo "Bentornato {$default['nome_utente']} {$default['cognome_utente']}";
[/php]
-
Certo...se la variabile è $default
Grazie Thedarkita, gentilissimo
-
Salve ragazzi, volevo provare questo script, e vorrei usare xampp in locale.
ora non riesco a configurare mercury mail per la posta in un secondo pc in lan, per simulare l'utente...
quancuno di voi ha una configurazione simile, da passarmi un esempio di dati dell'host e di configurazione di mercury...grazie e ottimo lavoro
max
-
maxmizer utilizza EasyPhp e leva tutto quel bordello di mezzo....
P.s. con questo codice
[php]
$default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
echo "Bentornato {$default['nome_utente']} {$default['cognome_utente']}";
[/php]
ad ogni login diverso stampa e trova sempre uno e un solo utente nel database cioè il primo della lista come mai ?
-
@Thedarkita said:
Se devi far accedere solo chi ha come permessi admin:
[php]
if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
{
header('Location: index.php');
exit;
}
[/php]Ciao ragazzi mi sono bloccato in questo punto.
Io ho sia l'attivazione che i permessi e naturalmente come ho pensato
di fare non funziona, cioè anche se mi loggo come user mei fa accedere
dunque ergo non vada a fare al comparazione nella tabella id utenti livello.questa è la parte del login:
[php]
// Controllo l'utente esiste
$query = mysql_query("SELECT id,attivazione AND livello 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);
// L'account è attivo?
if($login['attivazione'] == '')
{
// Creo una variabile di sessione
$_SESSION['login'] = $login['id'];
$_SESSION['permessi'] = $login['livello'];// reindirizzo l'utente header('Location: privata.php'); exit; } else { die('Attiva il tuo account!!!');
[/php]
e questa è la parte pagina dell'admin:
[php]
<?php
// Includo la connessione al database
require('config.php');
$_SESSION['login'] = $login['id'];
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
{
header('Location: index.php');
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="a.css" rel="stylesheet" type="text/css" />
</head>
<body >
<p class="testo24">Benvenuti nel sito <br /></p>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="1" rowspan="4" bgcolor="#000000"></td>
<td width="280"><?php
$default = mysql_fetch_array(mysql_query("SELECT user FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
echo "<span class="testo12"> Bentornato {$default['user']}</span>";
?></td>
<td> </td>
[/php]Nel database ho fatto una tabela livello con inserito Admin o user
e sulle pagine dell'user inserisco user al posto dell'admin.
-
Ciao maxmizer,
la query è errata, dovrebbe essere cosi:
[php]
SELECT id,attivazione,livello FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1
[/php]
-
@Thedarkita said:
Se devi far accedere solo chi ha come permessi admin:
[php]
if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
{
header('Location: index.php');
exit;
}
[/php]Perfetto funziona, grazie mille Thedarkita buona serata max.
-
Ciao a tutti, stasera ho avuto un po di tempo per mettere on line il mio lavoro, premettto che un locale funziona tutto, in remoto mi fa uno scherzetto con la sessione, per cui quando faccio il login la pagina privata mi rinvia alla index... qualche idea.
-
Ciao a tutti, stasera ho guardato ma non mi sembra che ci siano errori:
parte finale di login.php<?php
// prelevo l'id dal database
$login = mysql_fetch_array($query);
// L'account è attivo?
if($login['attivazione'] == '')
{
// Creo una variabile di sessione
$_SESSION['login'] = $login['id'];
$_SESSION['permessi'] = $login['livello'];// reindirizzo l'utente
header('Location: privata.php');
exit;
}
else
{
die('Attiva il tuo account!!!');
}
}
// se non esiste da l'errore
else
die('Nome Utente o Password errati');
}
?>e php di privata
<?php
// Includo la connessione al database
require('config.php');
$_SESSION['login'] = $login['id'];
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}
?>però non mi tiene la variabile di sessione.
-
Dovresti postare per intero anche il file login.php.
-
@Thedarkita said:
Dovresti postare per intero anche il file login.php.
[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,attivazione,livello 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); // L'account è attivo? if($login['attivazione'] == '') { // Creo una variabile di sessione $_SESSION['login'] = $login['id']; $_SESSION['permessi'] = $login['livello']; // reindirizzo l'utente header('Location: privata.php'); exit; } else { die('Attiva il tuo account!!!'); } } // se non esiste da l'errore else die('Nome Utente o Password errati');
}
?>
[/php]session_start() è in config
-
Sono riuscito solo stasera a mandarti l'intero file:
[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,attivazione,livello 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); // L'account è attivo? if($login['attivazione'] == '') { // Creo una variabile di sessione $_SESSION['login'] = $login['id']; $_SESSION['permessi'] = $login['livello']; // reindirizzo l'utente header('Location: privata.php'); exit; } else { die('Attiva il tuo account!!!'); } } // se non esiste da l'errore else die('Nome Utente o Password errati');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="belzoni.css" rel="stylesheet" type="text/css" />
<title>xxxx</title>
</head>
<body>
<p class="testo24">xxxx xxx<br />
Login</p>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="1" rowspan="4" bgcolor="#000000"></td>
<td> </td>
<td> </td>
<td class="testo12"><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></td>
<td width="1" rowspan="4" bgcolor="#000000"></td>
</tr>
<tr>
<td width="200"> </td>
<td width="200"> </td>
<td width="198" class="testo12"> </td>
</tr>
<tr>
<td colspan="3"><img src="images/xxx.jpg" width="597" height="58" alt="xxx" /></td>
</tr>
<tr>
<td colspan="3" bgcolor="#000000" height="1"></td>
</tr>
</table>
<table width="600" border="0" cellspacing="0" cellpadding="0" height="20">
<tr>
<td id="testo10">Proprietà del sito xxx <a id="testo10" href="xxxx </a></td>
<td id="testo10"><a id="testo" href="xxx"><img src="images/FaceBook_32x32.png" alt="xxx" width="16" height="16" border="0" /></a></td>
</tr>
</table>
</body>
</html>
[/php]
-
@Thedarkita said:
Dovresti postare per intero anche il file login.php.
Ciao Thedarkita, scusami del disturbo, oggi e domani ho tempo per vedere di far funzionare il tutto, tu vedi qualcosa di sbagliato dal file che ho postato.Grazie Max
-
Ciao ragazzi sono contento di essermi iscritto in questo forum... Mi sa che è proprio quello che cercavo... Ora inizio il lavoro sicuramente avrò bisogno di un vostro intervento anche perchè in php sto appena iniziando a capirci qualcosa... Vi chiedo solo una cosa che per voi è banale ma per me mi sta creando un po dubbi..... All'inizio della discussione a Thedarkita incomincia con:[QUOTEr]database
Codice PHP:
CREATE TABLEutenti
(
id
INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
user
TEXT NOT NULL ,
pass
TEXT NOT NULL ,
mail
TEXT NOT NULL
) ENGINE = MYISAM ; [/quote]
Ora studiando un po ho capito che è stat creata un area per la registrazione e un area di login se non vado errato questo database serve a memorizzare tutti gli utenti registrati,giusto??? E per creare questo io apro il mio affidabilissimo blocco note ci inserisco lo script e lo devo rinominare database.php??? Spero che on mi prendiate in giro anche perchè quest'area mi servirebbe tantissimo per creare un area dove gli altri utenti si possano scambiare le varie opinioni o consigli! Grazie.
-
Ciao dontorus,
fai attenzione alle maiuscole...
Per quanto riguarda la domanda da te posta, devi eseguire quel codice per creare la tabella secondo quella struttura, puoi farla eseguire ad esempio tramite phpmyadmin.