Pagina login php-mysql

davidanna23

Utente Attivo
22 Lug 2012
43
0
0
Ciao ragazzi,
Ho un problema, ho creato una pagina di registrazione utenti in php-mysql:
PHP:
<?php 
// Includo la connessione al database 
require('connect.php'); 


// Se il modulo viene inviato... 
if(isset($_POST['registra'])) 
{ 
     
    // Dati Inviati dal modulo 
    $nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : ''; 
    $cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : '';    
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : ''; 
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';     
    $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : '';    
     
    // Filtro i dati inviati 
    if (!get_magic_quotes_gpc()) { 
        $nome = addslashes($nome); 
        $cognome = addslashes($cognome); 
        $user = addslashes($user); 
        $pass = addslashes($pass); 
        $mail = addslashes($mail); 
    } 
     
     
    // Controllo il Nome 
    if(strlen($nome) < 3 || strlen($nome) > 15) 
        die('Nome troppo corto, o troppo lungo'); 
    // Controllo il Cognome     
    if(strlen($cognome) < 3 || strlen($cognome) > 15) 
        die('Cognome troppo corto, o troppo lungo'); 
    // Controllo la Password 
    elseif(strlen($pass) < 3 || strlen($pass) > 15) 
        die('Password troppo corta, o troppo lunga'); 
    // Controllo l'email 
    elseif(!filter_var($mail, FILTER_VALIDATE_EMAIL)) 
        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('Username 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à registrato da un altro utente'); 
    // Registrazione dell'utente nel database 
    else 
    { 
         
        // Crypt della password  
        $pass = sha1($pass); 
          
         
        // Query per l'inserimento dell'utente nel database 
        $strSQL = "INSERT INTO utenti (nome,cognome,email,user,pass)"; 
        $strSQL .= "VALUES('$nome', '$cognome', '$mail', '$user', '$pass')"; 
  

        mysql_query($strSQL) OR die("Errore, 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 nuovo utente</title> 
</head> 

<body>
<p>Registrazione utente:</p>
<form action="" method="post"> 
  <input name="nome" type="text" id="nome" value="Nome" onfocus="if(this.value=='Nome') this.value='';" /><br /> 
 <input name="cognome" type="text" id="cognome" value="Cognome" onfocus="if(this.value=='Cognome') this.value='';" /><br /> 
 <input name="mail" type="text" id="mail" value="Email" onfocus="if(this.value=='Email') this.value='';" /><br /> 
 <input name="user" type="text" id="user" value="Username" onfocus="if(this.value=='Username') this.value='';" /><br /> 
 <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br /> 
 <input name="registra" type="submit" value="Registrati" /><br /> 
</form> 
</body> 
</html>
<?php include ("close.php"); ?>
Adesso dovrei creare la pagina di login per accedere al sito dopo essersi registrati. Come posso fare?
 
ciao
io faccio così
1. pagina loggati.php con un semplice form inserisce username (campo tipo text) e la password (campo tipo password) in cui l'utente inserisce l'user e la pass
il form punta ad una pag che io chiamo transito.php
2. transito.php
PHP:
<?php
if(!isset($_SESSION){session_start();}
$user = (isset($_POST['user'])) ? trim($_POST['user']) : '';
$pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';
if($user =="" || $pass ==""){
	header("location:loggati.php");//o altra pagina di tuo piacimento
	exit();
}else{
	//dati di connessione
       $user=$_POST['user'];
	$pass = sha1($_POST['pass']);
	$query=mysql_query("SELECT * FROM utenti WHERE user='$user' AND pass='$pass '");
	if(mysql_num_rows($query)==1){
		$_SESSION['user']=$user;
		$_SESSION['password']=$pass;
		header("location:riservata.php");//o altra pagina di tuo piacimento
		exit();
	}else{
		$_SESSION=array();
		header("location:loggati.php");//o altra pagina di tuo piacimento
		exit();
	}
}
?>
2. e poi le pag.e riservate
PHP:
<?php
//la parte di controllo delle sessioni deve essreci in tutte le pagine riservate
if(!isset($_SESSION){session_start();}
if(!isset($_SESSION['password'])){//la sessione esiste solo in caso di log positivo
	$_SESSION=array();
	header("location:index.php");//o altra pagina di tuo piacimento
	exit();
}else{
	echo "benvenuto ".$_SESSION['user']."<hr>";
	//e qui tutta la parte php e/o html che ti serve
}
?>
puoi usare qualcosa di simile poi per farti il tuo accesso alle tue pag di amministrazione
 
Ultima modifica:

Discussioni simili