pagina registrazione con mail contenente link di attivazione profilo

mickey123

Utente Attivo
17 Gen 2015
59
0
6
salve ragazzi,

sono nuovo del forum, scusate forse la banalità della mia domanda, ma sto studiando da poco il php. :)

io vorrei fare un form di registrazione, dove quando si clicca su "Registrati", viene sì inserito il nuovo record, ma allo stesso tempo viene inviata la mail con il link di attivazione del profilo.

Mi è stato detto che per permettere l'attivazione/disattivazione del profilo, basta creare un campo booleano chiamato "status", che assumerà il valore 1 cliccando sul link nella mail che viene inviata.

Qual'è il codice da aggiungere, per la parte relativa all'attivazione del profilo tramite link nella mail?

io sono arrivato qui, alla INSERT:

PHP:
if($num == 0) {

mysql_query("INSERT INTO iscritti VALUES('', '$user', '$password', '$email', '$nome', '$cognome', '$sesso', '$data_nascita')");
echo "La tua registrazione ha avuto buon fine. Benvenuto.<br><a href=index.php>Vai alla home</a>";

} else {

echo "La username è già stata scelta. Riprova<br><a href=registrazione.php>Indietro</a>";
}
 
Ultima modifica di un moderatore:
ciao
intanto devi aggiungere alla tabella un campo del tipo
stato set('0', '1') e nell'insert aggiungere '0', poi farti un'altra pagina in puro php chiamata es conferma.php e aggiungere l'invio dell emeil col link a tale pagina
PHP:
<?php
if($num == 0) {
	mysql_query("INSERT INTO iscritti VALUES('', '$user', '$password', '$email', '$nome', '$cognome', '$sesso', '$data_nascita', '0')");
	//semplifico anche perche sarebbe giusto che l'email fosse inviata in formato html
	//ti converrebbe al posto di mail() usare la classe phpmailler
	$to=$email;
	$subject="conferma iscrizione";
	$message="ciao $user per confermare l'iscrizione clicca <a href=\"http://www.tuo_sito.it/tua_cartella/conferma.php?em=$email\">qui</a>";
	if(mail($to,$subject,$message)){
		echo "c'è stato un errore riprova più tardi.<br><a href=index.php>Vai alla home</a>";
	}else{
		echo "La tua registrazione ha avuto buon fine. Benvenuto.<br><a href=index.php>Vai alla home</a>";
	}
	
}else{
	echo "La username è già stata scelta. Riprova<br><a href=registrazione.php>Indietro</a>";
}  
?>
poi nella pagina conferma.php
PHP:
<?php
$utente=$_GET['em'];
//un minimo di controllo, il $_GET è sempre pericoloso
if(!filter_var($utente, FILTER_VALIDATE_EMAIL)){//quanto inviato NON E' un indirizzo email
	header("location=index.php");
	exit();
}else{
	//dati di connessione al db
	$q=mysql_query("SELECT email FROM iscritti WHERE email=$utente");
	if(mysql_num_rows($q) === 1){
		$con= mysql_query("UPDATE iscritti SET stato='1' WHERE email=$utente");
	}
	header("location=index.php");
	exit();
}
?>
guarda che ho semplificato molto, per cose del genere ci vorrebbero controlli e controlli
poi un consiglio: abbandona le vecchie istruzioni mysql obsolete e passa alle mysqli
 

Discussioni simili