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 25-06-08, 18:57   #1 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,203
Invia un messaggio tramite Skype a Thedarkita
[Tutorial] Area privata

Ho scritto un piccolo tutorial, una basilare area privata, con ovviamente registrazione e login.
Manca la grafica visto che l'obiettivo era solo quello di dare le basi a chi si avvicina da poco al php.

database
Codice PHP:
CREATE TABLE `utenti` (
`
idINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`
userTEXT NOT NULL ,
`
passTEXT NOT NULL ,
`
mailTEXT NOT NULL
ENGINE MYISAM 
config.php
Codice PHP:
<?php
// avvio la sessione
session_start();

// Dati connessione al database
$db_host 'localhost';        // Host - solitamente localhost
$db_utente 'root';        // Nome utente del Database
$db_password 'pass';        // Password del Database
$db_nomedb 'thedarkita';     // Nome del Database

// Effettua la connessione al database
$dbh=mysql_connect ($db_host$db_utente$db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
mysql_select_db($db_nomedb);
?>
index.php
Codice PHP:
<?php
// Includo la connessione al database
require('config.php');
?>
<!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>Tutorial by TheDarkITA</title>
</head>

<body>
Menu:<br />
<br />
<br />
<?php
if(isset($_SESSION['login']))
    echo 
'<a href="privata.php">Area privata</a><br /><a href="logout.php">Logout</a><br />';
else
    echo 
'<a href="registrati.php">Registrazione</a><br /><a href="login.php">Login</a><br />';
?>
</body>
</html>
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 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: 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>
logout.php
Codice PHP:
<?php
// Includo la connessione al database
require('config.php');

// Esegue il logout cancellando la sessione
session_destroy();
?>
<!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>Logout</title>
</head>

<body>
Logout eseguito<br />
<a href="index.php">Vai all'index</a><br />
</body>
</html>
privata.php
Codice PHP:
<?php
// Includo la connessione al database
require('config.php');

// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
    
header('Location: index.php');
    exit;
}
?>
<!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>Area privata</title>
</head>

<body>
Pagina privata!<br />
<br />
<br />
<a href="logout.php">Logout</a><br />
</body>
</html>
registrati.php
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);
        
        
// Query per l'inserimento dell'utente nel database
        
$strSQL "INSERT INTO utenti (user,pass,mail)";
        
$strSQL .= "VALUES('$user', '$pass', '$mail')";
        
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" "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>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>
registrato.php
Codice PHP:
<!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>Registrazione Completa</title>
</
head>

<
body>
Registrazione completa!<br />
<
br />
<
br />
<
a href="index.php">Vai allindex</a><br />
</
body>
</
html
Per i più pigri è possibile scaricare lo script completo a questo indirizzo scarica i file

Ultima modifica di Thedarkita : 02-08-09 13:33. Motivo: Corretto errore SQL
Thedarkita ora è in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 25-06-08, 19:08   #2 (permalink)
Moderatore
 
L'avatar di ceccus
 
Data di registrazione: Oct 2006
Messaggi: 912
Grazie Thedarkita,
un ottimo tutorial.
__________________

ceccus non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 12-07-08, 16:23   #3 (permalink)
 
Data di registrazione: Jul 2008
Messaggi: 300
Invia un messaggio tramite ICQ a Privacy-Impresa Invia un messaggio tramite MSN a Privacy-Impresa Invia un messaggio tramite Skype a Privacy-Impresa
Veramente ben fatto... e ben commentato soprattutto

keiske
__________________
21,60 euro a cliente: PPS di Privacy-Impresa
Privacy-Impresa non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 13-07-08, 01:15   #4 (permalink)
User
 
Data di registrazione: Jul 2008
Ubicazione: Genova
Messaggi: 10
Ho utilizzato i tuoi script per creare la pagina di log in e registrazione ma ottengo sempre degli errori.

Ci sono delle parti da cambiare negli script?
Guazzo non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 13-07-08, 01:19   #5 (permalink)
User
 
L'avatar di danny1975
 
Data di registrazione: Jun 2007
Messaggi: 375

Ultima modifica di Andrez : 03-08-09 10:43.
danny1975 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 13-07-08, 03:05   #6 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,203
Invia un messaggio tramite Skype a Thedarkita
Grazie
devi modificare solo il file config.php mettendo i dati di accesso al database...
Thedarkita ora è in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 16-07-08, 10:55   #7 (permalink)
User
 
Data di registrazione: May 2008
Messaggi: 80
ciao ragazzi,
davvero un utile tutorial!!!

ma... in questo modo tutti gli utenti potranno vedere la stessa pagina???
quindi sia l'utente cia che l'utente tantisaluti vedranno la pag. privata???
Motherboard non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 16-07-08, 11:04   #8 (permalink)
 
L'avatar di Inverter
 
Data di registrazione: Jun 2008
Messaggi: 135

Ultima modifica di Andrez : 03-08-09 10:43.
Inverter non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 16-07-08, 16:25   #9 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,203
Invia un messaggio tramite Skype a Thedarkita
Quote:
Motherboard Visualizza il messaggio
ciao ragazzi,
davvero un utile tutorial!!!

ma... in questo modo tutti gli utenti potranno vedere la stessa pagina???
quindi sia l'utente cia che l'utente tantisaluti vedranno la pag. privata???
Si
Thedarkita ora è in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 16-07-08, 16:34   #10 (permalink)
 
Data di registrazione: Jul 2008
Messaggi: 300
Invia un messaggio tramite ICQ a Privacy-Impresa Invia un messaggio tramite MSN a Privacy-Impresa Invia un messaggio tramite Skype a Privacy-Impresa
Ovviamente sarai tu poi a diversificare i contenuti a seconda dell'utente...

se si logga l'utente PIPPO e vuoi fargli vedere cose solo sue e queste cose le estrai da un database farai una query al database chiedendo tutti i dati necessari che coincidono con PIPPO o che coincidono col numero utente di PIPPO e siccome PIPPO deve loggarsi, salvando nelle variabili di sessione il suo nome o il suo numero lo puoi ricavare da $_SESSION['nome'] o $_SESSION['id'] precedentemente salvate

keiske
__________________
21,60 euro a cliente: PPS di Privacy-Impresa
Privacy-Impresa non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 26-07-08, 21:42   #11 (permalink)
Ricercatore
 
L'avatar di supercapocc
 
Data di registrazione: Apr 2007
Ubicazione: Roma
Messaggi: 605
salve a tutti, la mia domandina è :
come integrare l'autologin, il "ricordami" sul file login e credo poi su tutti gli altri file qui in questione ?
__________________
Atlantide Web Island
supercapocc non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 26-07-08, 21:44   #12 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,203
Invia un messaggio tramite Skype a Thedarkita
dovresti creare dei cookie con user e pass. e all'accesso dovresti vedere se sono settati i cookie e in quel caso mandarlo ad una pagina di login che prenda i valori dai cookie invece che dal form
Thedarkita ora è in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 09-08-08, 16:50   #13 (permalink)
User
 
Data di registrazione: Aug 2008
Messaggi: 64
scusate ho sbagliato ho risposto ad un altro post !!!!!!!!!perdonatemi

Ultima modifica di tapin : 09-08-08 16:53.
tapin non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 09-08-08, 17:41   #14 (permalink)
Moderatore
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,203
Invia un messaggio tramite Skype a Thedarkita
nel database manca una virgola nel codice sql
il file corretto è il seguente:
Codice PHP:
CREATE TABLE `utenti` (
`
idINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`
userTEXT NOT NULL ,
`
passTEXT NOT NULL ,
`
mailTEXT NOT NULL
ENGINE MYISAM 
Thedarkita ora è in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 10-08-08, 19:56   #15 (permalink)
User Newbie
 
L'avatar di tensen
 
Data di registrazione: Aug 2008
Messaggi: 1
Mi chiedo come mai l'ho installato ma non mi fa il redirect quando mi registro e quando mi loggo.

Lo script aggiunge correttamente i dati sul database.

Dove sto sbagliando?
tensen 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 02:18.




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

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.