- Home
- Categorie
- Coding e Sistemistica
- PHP
- [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???
-
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?
-
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
-
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 .
-
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.