- Home
- Categorie
- Coding e Sistemistica
- PHP
- Strumento verifica via e-mail
-
Strumento verifica via e-mail
Ciao a tutti,
Dovrei fare un sistema in cui:
Dopo che l'utente abbia inserito la sua e-mail e dato invio, gli arrivi un'email con un link, che cliccandolo faccia arrivare a me un'e-mail di avviso.
Come faccio???
Grazie
-
Ciao lorflea
Puoi creare due script di invio mail:
-il primo raccoglie i dati del form riempito dall'utente, salva i dati inseriti in un Db e manda un link via mail all'utente, link che punta alla pagina del secondo script. Nel link metti bbb.domain.ext/[email protected]
-il secondo script riceve via GET il valore di mail lo confronta con quello contenuto nel Db, se lo trova fa partire la mail verso di teIn via teorica dovrebbe funzionare così. Ovviamente bada bene a rendere più sicuro tutto il passaggio, mandare l'indirizzo in chiaro non è proprio il massimo
-
E quali sarebbero i codici dei rispettivi metodi?
è questo che a me manca!
-
Vediamo un po'
Ammettiamo che questo sia il form
[html]<form action="mail.php" method="POST">
<input type="text" name="nome">
<input type="text" name="email">
</form>[/html]Come detto la pagina mail.php riceve il nome e l'indirizzo email e manda un link all'utente, salvando questi dati su una tabella:
[php]<?
$nome="";
$email="";
$token="Una frase a tuo piacimento";
$nome=$_POST['nome'];
$email=$_POST['email'];
$md5email=md5($_POST['email'].$token);$header="From: [email protected]\r\n";
$oggetto="Oggetto del messaggio";
$msg="Testo del messaggio contenente il link da cliccare\n";
$msg.="http://www.domain.ext/confirm.php?id=".$md5email;$mail=mail($email, $oggetto, $msg, $header);
if ($mail)
{
require "file di connessione al Db";
$sql="INSERT INTO tabella (nome, email) VALUES ('$nome', '$md5email')";
$query=@mysql_query($sql) or die (mysql_error());
}
[/php]quando l'utente cliccherà sul link passiamo alla pagina di conferma
confirm.php
[php]$email="";
$email=$_GET['id'];
$sql="SELECT * FROM tabella WHERE email='$email'";
$query=@mysql_query($sql) or die (mysql_error());
$row=mysql_num_rows($query);
if($row>0)
{
$header="From: [email protected]\r\n";
$oggetto="Oggetto del messaggio di conferma";
$msg="Testo del messaggio di conferma\n";$mail=mail("[email protected]", $oggetto, $msg, $header);
if ($mail)
{
echo "conferma inviata con successo";
}
}
[/php]Qualcosa del genere come struttura dovrebbe andare