xD dovresti chiamarti ComplicatOnline...a parte gli scherzi aggiustiamo un pò i codici:
Ho provato ad iscrivermi al tuo sito per vedere un pò la situazione e per aggiustarti sti codici(sperando che ci riesca alla prima botta stavolta...XD)..:ti consiglierei di sostituire il
Codice PHP:
$headers = "From: Sempliceonline\n";
(che sta nel primo file) con
Codice PHP:
$headers = "From: Sempliceonline<noreply-sempliceonline@altervista.org>\n";
così quando arriva l'email nel mittente esce scritto semplicemente "Sempliceonline" e non "sempliceonline@asd.altervista.org"(o qualcosa del genere)...
...e adesso arriviamo alla parte triste della situazione():
tu hai scritto:
Codice PHP:
$query="insert into members(username, password, email, codice) values(\"$username\", \"$password\", \"$email\", \"$codice\")";
mysql_query($query) or die(mysql_error());
però sopra non c'è la variabile $codice...però c'è quella $codiceVerifica...quindi ho dedotto che $codice dovrebbe essere CodiceVerifica;Poi...nel primo file c'è un campo chiamato codice,nell'altro file un campo chiamato "CodiceVerifica",spero che ti sia confuso altrimenti non so che differenza c'è tra il campo codice e quello CodicceVerifica()
Ok dopo queste premesse ecco un codice(anzi due)che potresti usare:
Codice PHP:
<title>Sempliceonline - Risultato registrazione</title>
<?php
$conn=mysql_connect("localhost", "sempliconline", "");
$sele=mysql_select_db("my_sempliceonline", $conn);
if($_POST["username"]=="" or $_POST["password"]=="" or $_POST["email"]==""){die("una delle caselle non è stata compilata!");}
$username=strtolower($_POST["username"]);
$password=$_POST["password"];
$email=$_POST["email"];
$CodiceVerifica = md5(microtime());
$query="insert into members(username, password, email, codice) values(\"$username\", \"$password\", \"$email\", \"$CodiceVerifica\")";
mysql_query($query) or die(mysql_error());
echo "Conferma l'iscrizione tramite la mail che ti abbiamo inviato.";
$headers = "From: Sempliceonline<noreply-sempliceonline@altervista.org>\n";
$subject = "Conferma la tua iscrizione.";
$messaggio = "Ti ringraziamo per la tua iscrizione.\n";
$messaggio .= "La tua user è: ".$username."\n";
$messaggio .= "La tua password è: ".$password."\n";
$messaggio .= "Il tuo codice di conferma è: ".$CodiceVerifica."\n";
$messaggio .= "Per completare la registrazione vai alla pagina http://sempliceonline.altervista.org/conferma.php?token=$CodiceVerifica";
$messaggio .= "e inserisci il codice di confermare.\n";
@mail($email, stripslashes($subject),stripslashes($messaggio),$headers);
?>
Ho pensato che il campo della tabella si chiamasse 'codice' e che al suo interno vada il codice di $CodiceVerifica;
ecco,poi, il secondo file,quello che in sostanza non ti è venuto:
Codice PHP:
<?php
$conn=mysql_connect("localhost", "sempliconline", "");
$sele=mysql_select_db("my_sempliceonline", $conn);
$code = $_GET['token'];
$controllore=0;
$query=mysql_query("SELECT * FROM `members` WHERE `codice` =\"$code\"") or die(mysql_error());
while($array=mysql_fetch_array($query)){
$titolo=$array['titolo'];
$controllore++;}
if($controllore!=0){
$query="update members SET stato = \"1\" WHERE CONVERT( `members`.`codice` USING utf8 ) = \"$code\"";
mysql_query($query) or die(mysql_error());
echo "Il tuo account è stato attivato!,effettua il log-in|";
}
else{echo "Si è verificato un problema,sembra che il codice non corrisponda al tuo account!";}
?>
credo che così debba funzionare!