Registrazione e sessioni

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
Salve!
Vorrei mettere l'attivazione dell'email, ovvero che dopo la registrazione l'utente dovrà controllare la posta di hotmail.it e quindi potrà accedere nuovamente al sito. Inoltre vorrei che l'utente non può visitare le pagine del sito finché non accederà al sito. Come posso fare?
Pagina register:
PHP:
<?php 

	include 'header.php';
	
?>

	<div id="wrapper">
	
	<?php 

		if(!isset($_GET['passkey'])){
		
			if(!isset($_POST['invia'])){ ?>
			
				<form method="post" action="#" id="formregistrazione">
					
					<ul>
						<li><label for="username">Username</label>
							<input type="text" name="username" id="username" />
						</li>
						<li>
							<label for="password1">Password</label>
							<input type="password" name="password1" id="password1" />
						</li>
						<li>
							<label for="password2">Ripeti Password</label>
							<input type="password" name="password2" id="password2" />
						</li>
						<li>
							<label for="email">Email</label>
							<input type="text" name="email" id="email" />
						</li>
					</ul>
						<input type="submit" name="invia" id="registrati" value="Registrati" />
				</form>
			
	<?php	} else {
				
				// creazione di un codice di conferma
				$codiceconferma = md5(uniqid(rand()));
				
				// Valori del form
				
				$username = mysql_real_escape_string($_POST['username']);
				$password1 = mysql_real_escape_string($_POST['password1']);
				$password2 = mysql_real_escape_string($_POST['password2']);
				$email = mysql_real_escape_string($_POST['email']);
			
				// controllo campi vuoti e password
				
				if($username == "" || $email == ""){
					echo "Devi riempire tutti i campi";
				}elseif($password1 == "" || $password2 == ""){
					echo "Devi riempire tutti i campi";
				}elseif($password2 != $password1){
					echo "Le password devono coincidere";
				}else{
					
					$recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email'");	
					$contausermail = mysql_num_rows($recuperauseremail);
					
					if($contausermail > 0){
					
						echo "Nome utente o email già disponibili";
					
					} else {
					
						// Invia dati alla tb utenti_temp
						
						$inviautentitemp = mysql_query("INSERT INTO utenti_temp (codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");
						
						if($inviautentitemp){
							
							$to=$email;
							$subject="Conferma la Registrazione";
							$header="Da: Amministratore";
							$message="Ecco il tuo codice di attivazione \r\n";
							$message.="Clicca sul link per confermare la registrazione \r\n";
							$message.="http://127.0.0.1/sito/register.php?passkey=$codiceconferma";
							
							$sentmail=mail($to,$subject,$message,$header);
						
						}
						
						if($sentmail){
						
							echo "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
							
						}else{
						
							echo "Errore, link di attivazione non inviato.";
						
						}
					
					}
				}
				
			}
		
		} else {
			
			$passkey = $_GET['passkey'];
			
			$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
			$risultatouser = mysql_query($sqlrecuperauser);
			
			if($risultatouser) {
			
				$contauser = mysql_num_rows($risultatouser);
				
				if($contauser == 1){
				
					$rows = mysql_fetch_array($risultatouser);
					$username = $rows['username'];
					$email = $rows['email'];
					$password = $rows ['password'];
					
					$passwordcript = md5($password);
					
					$sqlconfermauser = mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username', '$passwordcript', '$email')");
					
					if ($sqlconfermauser) {
					
						echo "Il tuo account è stato attivato con successo";
						$sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");
					
					} else {
					
						echo "Errore!";
					
					}
				
				}
			
			}
			
		}

	?>
	
	
	</div>
	
	
</body>
</html>
 
22 Gen 2013
26
0
0
Salve!
Vorrei mettere l'attivazione dell'email, ovvero che dopo la registrazione l'utente dovrà controllare la posta di hotmail.it e quindi potrà accedere nuovamente al sito. Inoltre vorrei che l'utente non può visitare le pagine del sito finché non accederà al sito. Come posso fare?
Pagina register:
PHP:
<?php 

	include 'header.php';
	
?>

	<div id="wrapper">
	
	<?php 

		if(!isset($_GET['passkey'])){
		
			if(!isset($_POST['invia'])){ ?>
			
				<form method="post" action="#" id="formregistrazione">
					
					<ul>
						<li><label for="username">Username</label>
							<input type="text" name="username" id="username" />
						</li>
						<li>
							<label for="password1">Password</label>
							<input type="password" name="password1" id="password1" />
						</li>
						<li>
							<label for="password2">Ripeti Password</label>
							<input type="password" name="password2" id="password2" />
						</li>
						<li>
							<label for="email">Email</label>
							<input type="text" name="email" id="email" />
						</li>
					</ul>
						<input type="submit" name="invia" id="registrati" value="Registrati" />
				</form>
			
	<?php	} else {
				
				// creazione di un codice di conferma
				$codiceconferma = md5(uniqid(rand()));
				
				// Valori del form
				
				$username = mysql_real_escape_string($_POST['username']);
				$password1 = mysql_real_escape_string($_POST['password1']);
				$password2 = mysql_real_escape_string($_POST['password2']);
				$email = mysql_real_escape_string($_POST['email']);
			
				// controllo campi vuoti e password
				
				if($username == "" || $email == ""){
					echo "Devi riempire tutti i campi";
				}elseif($password1 == "" || $password2 == ""){
					echo "Devi riempire tutti i campi";
				}elseif($password2 != $password1){
					echo "Le password devono coincidere";
				}else{
					
					$recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email'");	
					$contausermail = mysql_num_rows($recuperauseremail);
					
					if($contausermail > 0){
					
						echo "Nome utente o email già disponibili";
					
					} else {
					
						// Invia dati alla tb utenti_temp
						
						$inviautentitemp = mysql_query("INSERT INTO utenti_temp (codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");
						
						if($inviautentitemp){
							
							$to=$email;
							$subject="Conferma la Registrazione";
							$header="Da: Amministratore";
							$message="Ecco il tuo codice di attivazione \r\n";
							$message.="Clicca sul link per confermare la registrazione \r\n";
							$message.="http://127.0.0.1/sito/register.php?passkey=$codiceconferma";
							
							$sentmail=mail($to,$subject,$message,$header);
						
						}
						
						if($sentmail){
						
							echo "Per completare la registrazione controlla la tua casella di posta elettronica e clicca sul link di attivazione.";
							
						}else{
						
							echo "Errore, link di attivazione non inviato.";
						
						}
					
					}
				}
				
			}
		
		} else {
			
			$passkey = $_GET['passkey'];
			
			$sqlrecuperauser = "SELECT * FROM utenti_temp WHERE codiceconferma = '$passkey'";
			$risultatouser = mysql_query($sqlrecuperauser);
			
			if($risultatouser) {
			
				$contauser = mysql_num_rows($risultatouser);
				
				if($contauser == 1){
				
					$rows = mysql_fetch_array($risultatouser);
					$username = $rows['username'];
					$email = $rows['email'];
					$password = $rows ['password'];
					
					$passwordcript = md5($password);
					
					$sqlconfermauser = mysql_query("INSERT INTO utenti (username, password, email) VALUES ('$username', '$passwordcript', '$email')");
					
					if ($sqlconfermauser) {
					
						echo "Il tuo account è stato attivato con successo";
						$sqleliminadati = mysql_query("DELETE FROM utenti_temp WHERE codiceconferma = '$passkey'");
					
					} else {
					
						echo "Errore!";
					
					}
				
				}
			
			}
			
		}

	?>
	
	
	</div>
	
	
</body>
</html>

Puoi utilizzare le sessioni ad inizio pagina creando un login che le setta. In ogni pagina quindi controlli se la sessione è presente, consentendo quindi l'accesso
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Meglio creare una pagina che includi in ogni pagina del sito nel quale controlli le credenziali dell'utente AUTENTICAZIONE e verifichi se ha accesso alla risorsa selezionata AUTORIZZAZIONE (per dividere meglio i livelli di accesso al sito).
 

Salvo Salvi

Utente Attivo
14 Nov 2012
230
0
0
PHP:
session_start();
if ($_SESSION['id'] != "") {

//CODICE PAGINA

 } else {

//REINDIRIZZA L'UTENTE ALLA PAGINA DEL LOGIN

}

prova se funziona.
Questo è un esempio base
 

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
PHP:
session_start();
if ($_SESSION['id'] != "") {

//CODICE PAGINA

 } else {

//REINDIRIZZA L'UTENTE ALLA PAGINA DEL LOGIN

}

prova se funziona.
Questo è un esempio base

Scusa, in quale riga dovrei inserirlo? Inoltre questo sarebbe il codice per inviare l'email o per le sessioni? (scusa, sono ancora ai primi livelli con il php!)
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Quel codice andrebbe messo all'inizio di ogni pagina scritto in quel modo.
Dovresti prima settarla una variabile di sessione (cosa che si fa durante il login).
 

Z0MB13

Utente Attivo
30 Mar 2013
34
0
0
PHP:
ession_start(); 
if ($_SESSION['id'] != "") { 

//CODICE PAGINA 

 } else { 

//REINDIRIZZA L'UTENTE ALLA PAGINA DEL LOGIN 

}

Alla fine dovrei modificare: "//CODICE PAGINA" e //REINDERIZZA L'UTENTE ALLA PAGINA DEL" mettendo il codice del sito su CODICE PAGINA e il codice redirect su REINDERIZZA L'UTENTE...?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
io farei in un altro modo
PHP:
<?php
session_start(); 
if (!isset($_SESSION) || $_SESSION['id'] == ""){
   header("location: pagina_che_vuoi.php");
   exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<!--tutto il codice della pagina html e/o php -->
</body>
</html>
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Plugin per Registrazione Utente e Pagamento prodotto WordPress 2
T Modificare ruolo utenti in fase di registrazione E-Commerce 0
G Registrazione utente su pagina asp Classic ASP 13
F [PHP]Errore registrazione PHP 8
R Obbligare all'utente un pagamento al momento della registrazione PHP 3
A [PHP] registrazione utente in un database sql con confronto PHP 1
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
A [PHP] Controllo nome utente form di registrazione PHP 4
Tommy03 Generare file PHP dopo registrazione PHP 2
G [PHP] Revisione codice per registrazione PHP 8
B Data Registrazione Dominio Domini 1
B [PHP] Mail di Avvenuta registrazione PHP 4
S registrazione video su dvr in caso di rilevamento di movimento IP Cam e Videosorveglianza 12
Laskot [Javascript] Registrazione e salvataggio utenti in LocalStorage Javascript 8
V Domande: registrazione sito fonti esterne SEO e Posizionamento 0
M registrazione in relazione ai commenti Programmazione 0
damiano.f [PHP] variabili su immagine e registrazione dati su db PHP 0
X__WELBO__X [css] form registrazione utente HTML e CSS 9
marino51 problema con registrazione al forum Supporto Mr.Webmaster 4
L [PHP] Registrazione/Logina la psw deve contenere.. PHP 3
G [WordPress] Redirect dopo registrazione WordPress 0
ANDREA20 [PHP] problema registrazione PHP 50
P [PHP] come criptare una password in un form di registrazione PHP 4
S Vecchio articolo registrazione utenti, errore MySQL PHP 2
M Sito "e-commerce", stampare dati di registrazione e dati dell'acquisto da pagine diverse PHP 7
S appinventor, aggiungere tasto registrazione Sviluppo app per Android 1
M problema registrazione nuovi utenti su pagine asp Classic ASP 1
S email di registrazione e Plugin WP Mail SMTP WordPress 0
F form registrazione PHP 3
F Codic e php visibile su form registrazione utenti PHP 2
matteoraggi Contratto per registrazione domini internet e servizio di hosting Domini 1
L errore mysql per form di registrazione PHP 3
D Form Registrazione con conferma via email - problema PHP 10
M problema mostrare data di registrazione formattata in italiano PHP 8
P Problema con file di registrazione in php, non funziona e dà continui errori PHP 0
M pagina registrazione con mail contenente link di attivazione profilo PHP 1
felino [Wordpress] Plugin iscrizione / registrazione WordPress 1
M Problema con modulo registrazione e inserimento dati in database PHP 8
M Creazione sito con autenticazione utente (registrazione) PHP 3
I Registrazione con Ajax Ajax 1
L Form di registrazione e log in. PHP 2
I Parte di una registrazione con ajax Javascript 1
I sostituzione registrazione PHP 1
I registrazione (SESSION) PHP 5
A Pulsanti login e registrazione PHP 3
I registrazione PHP 1
I problema registrazione PHP 11
I registrazione sicura PHP 13
I Bloccare registrazione Javascript 1
I Registrazione PHP PHP 14

Discussioni simili