- Home
- Categorie
- Coding e Sistemistica
- Coding
- [Tutorial] Area privata
- 
							
							
							
							
							Ciao a tutti. Ho un grosso dubbio sulle sessioni. 
 Come faccio a permettere l'accesso ad una pagina al solo utente a cui la pagina è riservata?
 Il dubbio è che l'utente una volta loggato possa accedere a pagine riservate ad altri cambiando l'indirizzo della pagina.
 Grazie per un chiarimento.
 
- 
							
							
							
							
							Ciao, ecco il mio problema... ho fatto una prova x vedere se riuscivo a registrarmi al mio sito ma dopo aver compilati i campi e cliccato registra mi dice:Errore 033, contattare l'amministratore No database selected. 
 Io per creare la tabella utenti, visto che il mio sito è su altervista, sono andato su tools►PhpMyAdmin e vado su Sql e ci copio quello che hai scritto tu per creare la tabella utenti.
 Ora non so se è questo il problema ma non so come risolverlo, mi aiuti??? ma non so come risolverlo, mi aiuti???
 
- 
							
							
							
							
							Ciao xDPasqualeDx, 
 fai attenzione alle maiuscole e ad non usare lo stile sms nei tuoi messaggi.
 Per quanto riguarda il problema, hai modificato il file di configurazione scrivendo i dati corretti per la connessione al database?
 
- 
							
							
							
							
							Beh veramente ho usato il solito copia e incolla del codice html o php (a me sembrano uguali) e li ho creati in file .php con il nome indicato.  
 
- 
							
							
							
							
							Si, ma i dati per la connessione al database devi modificarli, mettendo i tuoi corretti. 
 
- 
							
							
							
							
							 Non so come si fa e quale file va modificato, me lo potresti spiegare? Non so come si fa e quale file va modificato, me lo potresti spiegare?
 
- 
							
							
							
							
							Ciao xDPasqualeDx, 
 fai attenzione alle maiuscole nei tuoi messaggi.
 Nel file config.php trovi le variabili da modificare, i valori da inserire deve darteli il tuo provider.
 
- 
							
							
							
							
							Bhe, io non capisco niente di queste cose :bho: l'unica cosa che so è l'indirizzo del mio sito yourbestsite.altervista.org e so come accedere al mio database per inserirci nuove pagine o file oppure utilizzare il PhpMyAdmin. 
 Non so neanche che cosa è il provider e come contattarlo :bho: sono disperato . .
 
- 
							
							
							
							
							Ho risolto  ho inserito i miei dati in config.php e ora mi ha registrato, grazie mille Thedarkita ho inserito i miei dati in config.php e ora mi ha registrato, grazie mille Thedarkita 
 
- 
							
							
							
							
							Il tuo provider è altervista in questo caso, da qualche parte di avranno fornito nome database, host del database, nome utente e password, e devi inserire questi dati nel file config.php 
 
- 
							
							
							
							
							Si si :-), in effetti ho inserito quelli, però ora se una persona si iscrive e fa il log-in non può fare niente... perchè dove che ha effettuato il log-in gli esce una pagina bianca con scritto "area privata" e un link sotto che gli fa il log-out. non posso creare un profilo per ogni utente? 
 
- 
							
							
							
							
							Questo è un tutorial per creare un'area riservata, non sono previste altre operazioni, ma puoi comunque modificare lo script in base alle tue esigenze. Ovviamente bisogna imparare php, questo tutorial serve proprio a spiegare il funzionamento di certe cose, non è un semplice script da utilizzare cosi com'è. 
 
- 
							
							
							
							
							A capito... per caso sai se c'è un codice che legge il nome dell'utente che ha fatto il log-in e lo inserisce nella pagina dopo il log-in?grazie 
 
- 
							
							
							
							
							Puoi farlo modificando il file login: 
 [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, user 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['login_user'] = $login['user']; // 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>
 [/php]E nella variabile di sessione $_SESSION['login_user'] hai il nome dopo aver effettuato il login. 
 
- 
							
							
							
							
							Ok grazie  ho fatto,scusa se ti chiedo molte cose, il fatto è che sò poco e niente... però ora mi puoi dire come mandare un e-mail con i dati di iscrizzione e un codice per la modifica della password? ti ringrazio già per le altre risposte ho fatto,scusa se ti chiedo molte cose, il fatto è che sò poco e niente... però ora mi puoi dire come mandare un e-mail con i dati di iscrizzione e un codice per la modifica della password? ti ringrazio già per le altre risposte . .
 
- 
							
							
							
							
							Il codice per la modifica della password, lo trovi in una delle pagine di questa discussione. 
 Mentre per l'email ti basta leggere la documentazione relativa alla funzione mail, che è molto semplice:
 http://php.net/mail
 
- 
							
							
							
							
							
Ciao, volevo farti un paio di domande: - Il tuo tutorial risale al 2008 (o almeno cosi leggo nel primo post) dopo 4 anni, va ancora bene, oppure andrebbe aggiornato?
- Vorrei creare un log delle connessioni, vorrei salvare nel db l'ultima volta che x utente ha fatto i login, è possibile? io avevo pensato di mettere un update di un campo nel db subito dopo aver creato la sessione, secondo te va bene?
- E' possibile utilizzarlo su un proprio sito? non ho trovati info al riguardo, se si visto che si tratto di un sito con dati sensibili, me lo consigli come script oppure e meglio trovare altro?
 Scusa per le troppe domande, e ti ringrazio per il tutorial, mi sei stato molto utile. 
 
- 
							
							
							
							
							Ciao sixdas, 
 ti rispondo per punti:- Il tutorial va più che bene, non c'è alcun problema di compatibilità con la versione corrente di PHP (PHP 5.4).
- Utilizzare una tabella apposita sarebbe meglio, se desideri tenere traccia di tutte le connessioni, e non solo dell'ultima.
- Puoi utilizzarlo sul tuo sito, lo script tratta anche la sicurezza per evitare SQL INJECTION per cui non c'è motivo per non utilizzarlo.
 
 
- 
							
							
							
							
							
@Thedarkita said: Ciao sixdas, 
 ti rispondo per punti:- Il tutorial va più che bene, non c'è alcun problema di compatibilità con la versione corrente di PHP (PHP 5.4).
- Utilizzare una tabella apposita sarebbe meglio, se desideri tenere traccia di tutte le connessioni, e non solo dell'ultima.
- Puoi utilizzarlo sul tuo sito, lo script tratta anche la sicurezza per evitare SQL INJECTION per cui non c'è motivo per non utilizzarlo.
 Grazie per la velocissima risposta  - Perfetto.
- Se non chiedo molto, potresti farmi un esempio? tipo ho visto che wordpress, salva anche altri dati, tipo ip etc... Per me sarebbe l'ideale.
- Oltre alla sicurezza, io mi riferivo alla licenza d'uso, chiedevo se potevo utilizzarlo in un sito che sto facendo.
 Grazie ancora.  
 
- 
							
							
							
							
							Per salvare ip, ora di connessione, ecc devi semplicemente creare una tabella e poi eseguire una query insert, ci sono vari esempi nel tutorial di query di questo tipo. 
 Puoi tranquillamente utilizzarlo nel sito che stai facendo.