Salve,
non sono molto pratico in php e vorrei creare un'area riservata per ogni utente che effettua l'accesso al sito.
ho già creato il login e iscrizione.
Mi servirebbe tipo una pagina con un riepilogo delle pratiche aperte dall'utente e in cui l'utente possa creare le pratiche il tutto se possibile con collegamento a mysql.
GRAZIE MILLE A TUTTI QUELLI CHE RISPONDONO.
Login:
Codice PHP:
<?php
# inizializzazione della sessione
@session_start();
# inclusione del file di funzione
@include_once 'functions.php';
# istanza della classe
$obj = new Iscrizioni();
# chiamata al metodo per la verifica della sessione
if ($obj->verifica_sessione())
{
# redirect in caso di esito positivo
@header("location:area_riservata.php");
}
# chiamata al metodo per l'autenticazione
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$login = $obj->verifica_login(htmlentities($_POST['email_o_nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES));
# controllo sull'esito del metodo
if ($login) {
# redirect in caso di esito positivo
@header("location:area_riservata.php");
}else{
# notifica in caso di esito negativo
echo 'I dati indicati non sono corretti.';
}
}
# form per l'autenticazione
?>
<!DOCTYPE html>
<html>
<style>
form {
border: 3px solid #f1f1f1;
}
input[type=text], input[type=password] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
box-sizing: border-box;
}
button {
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
cursor: pointer;
width: 100%;
}
button:hover {
opacity: 0.8;
}
.cancelbtn {
width: auto;
padding: 10px 18px;
background-color: #f44336;
}
.imgcontainer {
text-align: center;
margin: 24px 0 12px 0;
}
img.avatar {
width: 20%;
border-radius: 50%;
}
.container {
padding: 16px;
}
span.psw {
float: right;
padding-top: 16px;
}
/* Change styles for span and cancel button on extra small screens */
@media screen and (max-width: 300px) {
span.psw {
display: block;
float: none;
}
.cancelbtn {
width: 100%;
}
}
div {margin-left: 20px;}
p {margin-left: 10%;}
img {margin-left: auto;}
</style>
<body>
<h2>Login Form</h2>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="form_autenticazione" name="autenticazione">
<div class="imgcontainer">
<img src="https://www.w3schools.com/howto/img_avatar.png" alt="Avatar" class="avatar">
</div>
<div class="container">
<label><b>Username</b></label>
<input type="text" name="email_o_nome_utente" placeholder="Username" /><br/>
<label><b>Password</b></label>
<input type="password" name="password" id="password" placeholder=Password /><br/>
<button type="submit" name="invio_dati">Invia</button><br/><br/>
<input type="checkbox" checked="checked"> Remember me
<label><br><a href="iscrizione.php" title="Registrazione">Se non sei registrato puoi farlo adesso</a></label>
</div>
<div class="container" style="background-color:#f1f1f1">
<button type="button" class="cancelbtn">Cancel</button>
<span class="psw">Forgot <a href="mailto:services@youneshaoufadi.com?&subject=Recupero%20password&body=Nome utente:<br>%20ps:spedire con l'email usata per registrati nel sito o scrivila qui:%20">Password</a></span>
</div>
</form>
</body>
</html>
Functions
Codice PHP:
<?php
# inclusione del file di configurazione
@include_once 'config.php';
# definizione della classe che conterrà i metodi per la gestione degli iscritti
class Iscrizioni {
# definizione del costruttore
public function __construct()
{
# istanza della classe per la connessione al database
$data = new DATA_Class();
}
# metodo per la registrazione
public function registra($nome_reale, $nome_utente, $password, $email)
{
# tolgo eventuali spazi vuoti
$nome_reale = trim($nome_reale);
$nome_utente = trim($nome_utente);
$password = trim($password);
# verifico che il modulo sia stato compilato
if (strlen($nome_reale) == 0 || strlen($nome_utente) == 0 || strlen($password) == 0) return false;
else {
# cifratura della password
$password = @sha1($password);
# confronto degli input con i dati contenuti in tabella
$query = @mysql_query("SELECT id_utente FROM iscritti WHERE nome_utente = '$nome_utente' OR email = '$email'") or die('Errore: ' . mysql_error());
# controllo sulla presenza di corrispondenze prodotte dal confronto
$conta = @mysql_num_rows($query);
# se il confronto non genera corrispondenze..
if ($conta == 0)
{
# ..si procede con la registrazione..
$risultato = @mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente', '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error());
return $risultato;
}else{
# ..altrimenti l'esito della registrazione sarà negativo
return false;
}
}
}
# metodo per l'autenticazione
public function verifica_login($email_o_nome_utente, $password)
{
# cifratura della password
$password = @sha1($password);
# confronto degli input con i dati contenuti in tabella
$query = @mysql_query("SELECT id_utente FROM iscritti WHERE (email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente') AND password = '$password'") or die('Errore: ' . mysql_error());
# controllo sulla presenza di una corrispondenza prodotta dal confronto
$conta = @mysql_num_rows($query);
# se il confronto genera una corrispondenza..
if ($conta == 1)
{
# ..viene generata la sessione di login..
$risultato = @mysql_fetch_object($query);
$_SESSION['login'] = true;
$_SESSION['id_utente'] = $risultato->id_utente;
return true;
}else{
# ..altrimenti l'esito dell'autenticazione sarà negativo
return false;
}
}
# metodo per la visualizzazione del nome dell'utente loggato
public function mostra_utente($id_utente)
{
# estrazione del nome reale sulla base dell'identificatore memorizzato in sessione
$query = @mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error());
$risultato = @mysql_fetch_object($query);
# stampa a video del nome reale dell'utente
echo $risultato->nome_reale;
}
# metodo per il controllo sulla sessione
public function verifica_sessione()
{
# il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata
if(isset($_SESSION['login']))
{
return $_SESSION['login'];
}else{
return false;
}
}
# metodo per il logout
# la sessione viene distrutta a seguito di uno specifico input dell'utente
public function esci() {
$_SESSION['login'] = FALSE;
@session_destroy();
}
}
?>