Ti sei perso il VI Convegno gt? Forse puoi rimediare... www.convegnogt.it X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 04-02-10, 13:09   #541 (permalink)
User Newbie
 
Data di registrazione: Feb 2010
Messaggi: 4
Ciao TheDarkita.Sono nuovo del forum.Complimenti per il tutorial!!!Veramente ben fatto.L'ho seguito passo passo e non ho avuto problemi,tranne uno.E spiego che tipo di problema ho avuto.Ho integrato i tuoi script per la registrazione degli utenti con la relativa attivazione via mail.Funziona tutto tranne l'attivazione in se per se.Mi spiego meglio.Quando registo un nuovo utente,questo viene inserito nel database e insieme a lui viene generata una stringa casuale di 32 caratteri.Fin qui ci sono.Ora,per scrupolo,ho provato ad effettuare il login prima di verificare l'email e attivare la registrazione.Mi fa entrare nella pagina privata.php.Cosa che non dovrebbe accadere fino a quando non viene confermata l'attivazione.Ora non so dove sbaglio.Ho controllato e ricontrollato il codice decine di volte.Ho seguito passo passo ma non riesco a capire perchè avviene ciò.Aiutoooo!!!Vi prego!!!
nellius non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 04-02-10, 17:25   #542 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,205
Invia un messaggio tramite Skype a Thedarkita
Ciao nellius,

grazie per i complimenti.
Devi fare un controllo nella pagina di login impedendolo se l'account non è attivo. Se non ricordo male questo argomento lo abbiamo già trattato, per cui se cerchi nelle varie pagine dovresti trovare tutte le informazioni del caso.
Thedarkita non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 05-02-10, 00:32   #543 (permalink)
User Newbie
 
Data di registrazione: Feb 2010
Messaggi: 4
Grazie TheDarkita
Ho riletto bene la questione e ho risolto.Il problema che avevo era che nel file di login,e precisamente,nella select query prima del controllo per vedere se è attiva la registrazione o meno,non avevo scritto il campo attivazione.Di conseguenza il controllo avveniva solo sul campo id,attivandomi automaticamente l'utente registrato.
Ma ora è tutto apposto.
Grazie ancora.
Ciaooo

Ho aperto una thread,non in questa sezione del tutorial all'area privata ovviamente,dove chiedo informazioni per un argomento che potrebbe essere interessante.
Mi interesserebbe il tuo punto di vista e,perchè no,anche il tuo aiuto
nellius non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 15-02-10, 11:24   #544 (permalink)
User
 
Data di registrazione: Apr 2008
Messaggi: 661
Ciao! E se io volessi invece vederla la password utente? Basta togliere questo? e basta, senza nessun'altra modifica?

Codice PHP:
// Crypt della password per garantire una miglior sicurezza
        
$pass md5($pass); 
Grazie!
Fabrizio23 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 19-02-10, 21:11   #545 (permalink)
User
 
Data di registrazione: Apr 2009
Messaggi: 18
Problema link di attivazione

Ciao utenti ma soprattutto ciao Thedarkita e grazie per questo meraviglioso script.
Ho seguito con attenzione tutto ciò che si è scritto senza riscontrare particolari problemi e quindi implementando lo script in base alle mie esigenze.
Vengo al dunque: effettuando, però, le modifiche nella pagina di registrazione, sul checkbox per accettare la privacy policy, al momento di cliccare sul link di attivazione mi compare "Errore, Link non valido".
Ho letto e riletto dalla prima all'ultima pagina e confrontato la pagina originaria con la pagina modificata e non sono riuscito a trovare l'errore.
Di seguito i codici delle due pagine.

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


// Se il modulo viene inviato...
if(isset($_POST['registra']))
{
    
    
// 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 ''
    
$mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' 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);
        
$mail addslashes($mail);
    }
    
    
    
// Controllo il Nome Utente
    
if(strlen($user) < || strlen($user) > 12)
        die(
'Nome Utente troppo corto, o troppo lungo');
    
// Controllo la Password
    
elseif(strlen($pass) < || strlen($pass) > 12)
        die(
'Password troppo corta, o troppo lunga');
    
// Controllo l'email
    
elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})"$mail))
        die(
'Email non valida');
    
// Controllo il nome utente non sia già occupato
    
elseif(mysql_num_rows(mysql_query("SELECT user FROM utenti WHERE user = '$user' LIMIT 1")) == 1)
        die(
'Nome Utente non disponibile');
    
// Controllo l'indirizzo email non sia già registrato
    
elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
        die(
'Questo indirizzo email risulta gi&agrave; registrato ad un altro utente');
    
// Registrazione dell'utente nel database
    
else
    {
        
        
// Crypt della password per garantire una miglior sicurezza
        
$pass md5($pass);
        
        
        
// Genero una stringa casuale di Attivazione
        
$attivazione '';
        for(
$x=1$x<=32$x++)
        
$attivazione.=rand(0,9);
        
$attivazione md5($attivazione);
        
$message 'Per attivare il Suo account deve visitare il seguente link:<br><a href="h00p://wwv.miosito.it/a/attivazione.php?code='.$attivazione.'">Attiva account</a>';
        
// Header dell'email, per mandarla in formato html
        
$headers "From: adwmaster <mail@mail.ext>\r\n";
        
$headers .= "Reply-To: mail@mail.ext\r\n";
        
$headers .= "Return-Path: mail@mail.ext\r\n";
        
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

        
// Invio L'email
        
mail($mail'Registrazione Tutorial TheDarkITA'$message$headers);
        
        
// Query per l'inserimento dell'utente nel database
        
$strSQL "INSERT INTO utenti (user,pass,mail,attivazione)";
        
$strSQL .= "VALUES('$user', '$pass', '$mail', '$attivazione')";
        
mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error());
        

        
// Reindirizzo l'utente ad una pagina di conferma della registrazione
        
header('Location: registrato.php');
        exit;
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h00p://wwv.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="h00p://wwv.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrazione</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="mail" type="text" id="mail" value="Em@il" onfocus="if(this.value=='Em@il') this.value='';" /><br />
 <input name="registra" type="submit" value="Registrati" /><br />
</form>
</body>
</html>
Pagina non funzionante:
Codice PHP:
<?php
session_start
();
// Includo la connessione al database
require('config.php');


// Se il modulo viene inviato...
if(isset($_POST['registra']))
{
    
    
// 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 ''
    
$mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''
    
$accept = (isset($_POST['accept'])) ? trim($_POST['accept']) : '';   // Metto nella variabile 'mail' 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);
        
$mail addslashes($mail);
        
$accept addslashes($accept);
    }
    
    
    
// Controllo il Nome Utente
    
if(strlen($user) < || strlen($user) > 12)
        die(
'Nome Utente troppo corto, o troppo lungo');
    
// Controllo la Password
    
elseif(strlen($pass) < || strlen($pass) > 12)
        die(
'Password troppo corta, o troppo lunga');
    
// Controllo l'email
    
elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})"$mail))
        die(
'Email non valida');
    
// Controllo il nome utente non sia già occupato
    
elseif(mysql_num_rows(mysql_query("SELECT user FROM utenti WHERE user = '$user' LIMIT 1")) == 1)
        die(
'Nome Utente non disponibile');
    
// Controllo l'indirizzo email non sia già registrato
    
elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
        die(
'Questo indirizzo email risulta gi&agrave; registrato ad un altro utente');
        
    elseif(
$accept != 1)
        die(
'Devi accettare l\'informativa');    
    
// Registrazione dell'utente nel database
    
else
    {
        
        
// Crypt della password per garantire una miglior sicurezza
        
$pass md5($pass);
        
        
        
// Genero una stringa casuale di Attivazione
        
$attivazione '';
        for(
$x=1$x<=32$x++)
        
$attivazione.=rand(0,9);
        
$attivazione md5($attivazione);
        
$message 'Per attivare il Suo account deve visitare il seguente link:<br><a href="h00p://wwv.miosito.it/a/attivazione.php?code='.$attivazione.'">Attiva account</a>';
        
// Header dell'email, per madnarla in formato html
        
$headers "From: adwmaster <mail@mail.com>\r\n";
        
$headers .= "Reply-To: mail@mail.com\r\n";
        
$headers .= "Return-Path: mail@mail.com\r\n";
        
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

        
// Invio L'email
        
mail($mail'Registrazione Tutorial TheDarkITA'$message$headers);
        
        
// Query per l'inserimento dell'utente nel database
        
$strSQL "INSERT INTO utenti (user,pass,mail,accept)";
        
$strSQL .= "VALUES('$user', '$pass', '$mail', '$accept')";
        
mysql_query($strSQL) OR die("Errore 003. <br>
  Possibile cause: <br>
  - non ha spuntato la casella per l'informativa. <br>
  - non ha inserito i suoi dati correttamente.<br>
  - errore del sistema.<br>
  Si prega tornare indietro e riprovare a registrarsi o<br>
  contattare l'amministratore.<br>
  Failure because: "
.mysql_error());
        

        
// Reindirizzo l'utente ad una pagina di conferma della registrazione
        
header('Location: registrato.php');
        exit;
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h00p://wwv.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="h00p://wwv.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registrazione</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="mail" type="text" id="mail" value="Em@il" onfocus="if(this.value=='Em@il') this.value='';" /><br />
 <span class="Stile14">Accetto l' <a href="/informativa.php">informativa</a></span>
 <input name="accept" type="checkbox" id="accept" checked="checked" value="1" /> 
<br />
 <input name="registra" type="submit" value="Registrati" /><br />
</form>
</body>
</html>
Grazie anticipatamente.
adwmaster non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 21-02-10, 13:04   #546 (permalink)
User Newbie
 
Data di registrazione: Feb 2010
Messaggi: 1
Ciao Ragazzi sono un nuovo utente del forum e anch'io avrei bisogno di un aiuto NO PICCOLO ma penso abbastanza grande perche sono proprio ignorante in materia. Prima di tutto ringrazio Thedarkitaper questo script.
Io ho messo nella cartella principale del mio sito la cartella "giorgiotave" e all'interno di essa ho modificato il file config.php cosi:
<?php
// avvio la sessione
session_start();

// Dati connessione al database
$db_host = 'hostingmysql02.register.it'; // Host - solitamente localhost
$db_utente = 'VA1406_valasc'; // Nome utente del Database
$db_password = 'miapasswod'; // Password del Database
$db_nomedb = 'valentinoascione_com_utenti'; // Nome del Database

Poi non ho modificato nessun file e quando vado sulla pagina

valentinoascione.com/valentinoascione/giorgiotave/registrati.php mi campare una scritta strana all'inizio della pagina

Chi mi può aiutare?
valasc non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 23-02-10, 00:03   #547 (permalink)
User
 
Data di registrazione: Apr 2009
Messaggi: 18
Quote:
valasc Visualizza il messaggio
Ciao Ragazzi sono un nuovo utente del forum e anch'io avrei bisogno di un aiuto NO PICCOLO ma penso abbastanza grande perche sono proprio ignorante in materia. Prima di tutto ringrazio Thedarkitaper questo script.
Io ho messo nella cartella principale del mio sito la cartella "giorgiotave" e all'interno di essa ho modificato il file config.php cosi:
<?php
// avvio la sessione
session_start();

// Dati connessione al database
$db_host = 'hostingmysql02.register.it'; // Host - solitamente localhost
$db_utente = 'VA1406_valasc'; // Nome utente del Database
$db_password = 'miapasswod'; // Password del Database
$db_nomedb = 'valentinoascione_com_utenti'; // Nome del Database

Poi non ho modificato nessun file e quando vado sulla pagina

valentinoascione.com/valentinoascione/giorgiotave/registrati.php mi campare una scritta strana all'inizio della pagina

Chi mi può aiutare?
Ciao, premetto che non sono un esperto di PHP ma da quello che vedo dalla pagina che hai indicato, lo spazio che hai acquistato su register non supporta il php.
Mi spiego meglio: il PHP è un linguaggio di programmazione lato server (server-side) cioé un linguaggio elaborato dal server. Quando l'utente (client) apre il browser e digita l'url valentinoascione.com/etc/etc/registrati.php, il server elebora il codice php contenuto nella pagina richiesta e restituisce solo codice html.
Se tu richiedi la pagina registrati.php e ti viene restituito il codice PHP contenuto nella tua pagina, il server non ha elaborato nulla.
Contatta register e richiedi l'attivazione.
Ovviamente chiedo agli utenti esperti di confermare se corretto o darmi mazzate se sbagliato.
adwmaster non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 15-03-10, 16:13   #548 (permalink)
User Newbie
 
Data di registrazione: Mar 2010
Messaggi: 2
Buon giorno, ho letto con vivo interesse il tutorial e, anche se non sono un programmatore ma al massimo un "copy-paster", più o meno ho capito la funzione e dove vanno a finire i vari files tranne uno, il primo, che nel tuo post si chiama database.sql

quello che mi sfugge è: io uso un dominio con server linux + sql e non ho problemi a compilare il file config.php inserendo i vari dati necessari ma purtroppo non ho idea di dove debba essere messo o come debba essere usato quel file (database.sql)

spero in una risposta che mi illumini la buia strada

grazie in anticipo.
stek non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 15-03-10, 16:34   #549 (permalink)
User Newbie
 
Data di registrazione: Mar 2010
Messaggi: 2
Ok, dopo aver chiesto aiuto mi son detto: proviamoci!

sono entrato nel DB associato al mio dominio e ho aggiunto una tabella utilizzando i dati del file database.sql

incredibilmente funziona!

per voi sarà scontato ma per me è ancora un pò come "magia"

per ora grazie comunque.
stek non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 29-03-10, 18:58   #550 (permalink)
User Newbie
 
Data di registrazione: Mar 2010
Messaggi: 6
controllo autorizzazioni

Ciao e grazie anticipatamente per ogni dritta...
Vorrei associare ad ogni utente che si logga dei livelli di autorizzazione (es. user, poweruser, admin) in modo da fargli visualizzare o meno determinate pagine, ho già aggiunto una colonna "livello" nella tabella utenti che è una stringa admin o user.
Mi sapete indirizzare su come muovermi?
Grazie
guzbox non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 29-03-10, 19:00   #551 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,205
Invia un messaggio tramite Skype a Thedarkita
Ciao guzbox,

puoi recuperare il valore del campo con il livello di autorizzazione dell'utente o al login e salvarlo in una variabile di sessione, o facendo una query in ogni pagina per recuperare di volta in volta il livello di autorizzazione corrente.
Una volta che hai quel valore, è sufficiente fare un semplice if e controllare i permessi dell'utente.
Thedarkita non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 29-03-10, 22:25   #552 (permalink)
User Newbie
 
Data di registrazione: Mar 2010
Messaggi: 6
Eh eh calma calma sono ai primi esperimenti con php...
Vediamo se sono sulla strada giusta: nella login.php modifico la query aggiungendo il parametro "livello"
Codice PHP:
// Controllo se l'utente esiste e se ha livello user
    
$query mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' AND livello = 'user' LIMIT 1");
// Se ha trovato un record
    
if(mysql_num_rows($query) == 1
Pensavo di fare degli elseif partendo dal livello più basso, quindi prima user e a seguire i livelli via via più alti, ad ognuna di queste condizioni se soddisfatta associo una sessione ma qui non ho ben capito come funziona la "grammatica":
Codice PHP:
$_SESSION['user'] = $login['id']; 
per una sessione con livello user e
Codice PHP:
$_SESSION['admin'] = $login['id']; 
per una sessione livello admin hanno senso?
guzbox non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 29-03-10, 23:37   #553 (permalink)
User Newbie
 
Data di registrazione: Mar 2010
Messaggi: 6
dovrebbe funzionare?
Codice 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 se l'utente esiste e con che livello
    
$query mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' AND livello = 'user' LIMIT 1");
    
$query1 mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' AND livello = 'admin' 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 "user"
        
$_SESSION['user'] = $login['id'];
        
        
// reindirizzo l'utente
        
header('Location: privata.php');
        exit;
        }elseif(
mysql_num_rows($query1) == 1)
    {
        
// prelevo l'id dal database
        
$login mysql_fetch_array($query1);
        
        
// Creo una variabile di sessione "admin"
        
$_SESSION['admin'] = $login['id'];
        
        
// reindirizzo l'utente
        
header('Location: privata_admin.php');
        exit;
        }
    
    
// se non esiste da l'errore
    
else
        die(
'Nome Utente o Password errati');
}
?>
guzbox non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 30-03-10, 15:07   #554 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,205
Invia un messaggio tramite Skype a Thedarkita
Sarebbe più conveniente cosi:
login.php
Codice 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,permessi 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'];
        
$_SESSION['permessi'] = $login['permessi'];

        
// reindirizzo l'utente
        
header('Location: privata.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>
Thedarkita non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 31-03-10, 14:51   #555 (permalink)
User Newbie
 
Data di registrazione: Mar 2010
Messaggi: 6
Scusa ma non mi è chiaro, col tuo codice creo 2 variabili di sessione giusto?
Nel mio caso la query diventa
Quote:
$query = mysql_query("SELECT id,livello FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");

e le variabili
Quote:
$_SESSION['login'] = $login['id'];
$_SESSION['permessi'] = $login['livello'];
Ma fatto questo come modifico le pagine che devono essere viste solo dal livello "admin"? L'istruzione di verifica
Quote:
if(!isset($_SESSION['permessi']))
{
header('Location: index.php');
exit;
}
non deve leggere anche il livello?

Grazie
guzbox non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Rispondi
Tags: , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 06:01.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.