Grazie Gianaz dei suggerimenti.
Attualmente col mio livello php dovrei ragionarci un p0' su su quello che mi hai detto. E lo farò.
Per ora avevo implementato il codice php che avevo postato prima, solo che mi viene fuori un errore (e sinceramente credo che forse non sia tanto corretto il codice che ho usato):
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 non è corretta
";
echo "<a href=\"java-script:history.back()\">ritenta</a> con un'altra mail";
}
// 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 password = '".$password."'") 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();
?>
Praticamente mi dice che la "mail inserita non è corretta". Ritenta con un'altra mail.
Dove sta l'errore? (non lapidatemi se ci sono errori marchiani di codice, sono in fase di apprendimento)