Come non detto. Questo codice funziona:
Codice PHP:
<?php
if(!isset($_POST['submit']))
{
header("Location: [url]http://www.listafacile.com[/url]");
die;
exit;
}
//varie info per email
$oggi = date("j F Y G:i");
$sito = "http://www.listafacile.com";
$ip = "$_SERVER[REMOTE_ADDR]";
$browser = "$_SERVER[HTTP_USER_AGENT]";
$soggetto = "Modulo da $sito";
$mail = htmlentities(strip_tags($_POST['mail']));
if(trim($_POST['mail']) == "")
{
print "La mail è obbligatoria
<a href=\"formregistraz.php\">indietro</a>
";
}
else
{
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
$sql = "SELECT * FROM utenti WHERE mail = '$mail'";
$result = mysql_query ($sql) or die (mysql_error());
$n = mysql_num_rows($result);
if ($n != 0)
{
echo "L'email inserita è corretta
";
}
// Imposto la lunghezza della password a 10 caratteri
$lung_pass = 10;
// Creo un ciclo for che si ripete per il valore di $lung_pass
for ($x=1; $x<=$lung_pass; $x++)
{
// Se $x è multiplo di 2...
if ($x % 2){
// Aggiungo una lettera casuale usando chr() in combinazione
// con rand() che genera un valore numerico compreso tra 97
// e 122, numeri che corrispondono alle lettere dell'alfabeto
// nella tabella dei caratteri ASCII
$mypass = $mypass . chr(rand(97,122));
// Se $x non è multiplo di 2...
}else{
// Aggiungo alla password un numero compreso tra 0 e 9
$mypass = $mypass . rand(0,9);
}
}
//imposto la seconda query che aggiorna il database con la password temporanea
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
mysql_query("UPDATE utenti SET password = '".$mypass."' WHERE mail = '".$mail."'") or die(mysql_error());
// settare qui quello che apparirà nel campo from della email
$from_mail = "info@iso-consulenze.info";
// invio della mail contenente la passwd e gli altri dati
$To="$mail";
$Headers ="From: $from_mail";
$Soggetto="[[url]www.iso-consulenze.info[/url]] I tuoi dati di accesso";
$Corpo.="Ciao!\n\n";
$Corpo.=" Sono il programma Sendmail di [url]http://www.iso-consulenze.info[/url]";
$Corpo.=" Questa è la tua nuova password:\n\n";
$Corpo.=" La tua password: $mypass\n\n";
$Corpo.=" A presto!\n\n";
$Corpo.="--------------------------------------------\n";
$Corpo.="$from_mail\n";
$Corpo.="http://www.iso-consulenze.info\n";
$Corpo.="--------------------------------------------\n";
mail($To, $Soggetto, $Corpo, $Headers);
echo "ti è stata inviata una mail all'indirizzo $mail con i tuoi dati";
}
mysql_close();
?>
La passowrd viene cambiata. Mi resta il dubbio del controllo sulla correttezza della mail. Il tipo di controllo che effettuo sulla mail è giusto?