Buonasera a tutti, scusatemi anticipatamente se avete affrontato già il tema ma nelle varie discussioni non ho trovato quato occorre a me per risolvere il mio problema.
sto tentando di creare un modulo di registrazione tramite easyphp, ho creato il db e 2 cartelle, utenti ed utenti_temp.
In notepad ++ ho creato il file register.php
se lo apro http://localhost/sito/register.php mi da la pagina in cui posso inserire i dati di login e pwd
anche se faccio prove con pwd diverse o mancante mi da l'errore di inserire le password corrette oppure di inserire tutti i campi.

il problema si complica se tutti i dati sono corretti e devo ricevere il link di attivazione.
ho verificato mille volte lo script ed è corretto, ve lo giro.

<?php
include 'header.php';
?>
<div id="wrapper">

<?php

if(!isset($_GET['passkey'])){

if(!isset($_POST['invia'])){ ?>

<form method="post" action="#" id="formregistrazione">

<label for="username">Username</label>
<input type="text" name="username" id="username" /><br>
<label for="password1">Password</label>
<input type="password" name="password1" id="password1" /><br>
<label for="password2">Ripeti Password</label>
<input type="password" name="password2" id="password2" /><br>
<label for="email">Email</label>
<input type="text" name="email" id="email" /><br>
<input type="submit" name="invia" id="registrati" value="Registrati" />
</form>

<?php } else {

// creazione di un codice di conferma
$codice_conferma = md5(uniqid(rand()));

// Valori del form

$username = mysql_real_escape_string($_POST['username']);
$password1 = mysql_real_escape_string($_POST['password1']);
$password2 = mysql_real_escape_string($_POST['password2']);
$email = mysql_real_escape_string($_POST['email']);

// controllo campi vuoti e password

if($username == "" || $email == ""){
echo "Devi riempire tutti i campi";
}elseif($password1 == "" || $password2 == ""){
echo "Devi riempire tutti i campi";
}elseif($password2 != $password1){
echo "Le password devono coincidere";
}else{

$recuperauseremail = mysql_query("SELECT id FROM utenti WHERE username='$username' OR email='$email'");
$contausermail = mysql_num_rows($recuperauseremail);

if($contausermail > 0){

echo "Nome utente o email già disponibili";

} else {

// Invia dati alla tb utenti_temp

$inviautentitemp = mysql_query("INSERT INTO utenti_temp(codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");

if($inviautentitemp){

$to=$email;
$subject="Conferma la Registrazione";
$header="Da: Amministratore";
$message="Ecco il tuo codice di attivazione \r\n";
$message1="Clicca sul link per confermare la registrazione \r\n";
$message.="
http://127.0.0.1/sito/register.php?passkey=$codiceconferma";

$sentmail=mail($to,$subject,$message,$header);

}

if($sentmail){

echo "Per completare la registrazione controlla la tua posta elettronica e clicca sul link di attivazione.";

}else{

echo "Errore, link di attivazione non inviato.";

}

}
}



}

} else {

}

?>

</div>


< /body>
< /html>




l'errore che esce è il seguente:
Notice: Undefined variable: codiceconferma in C:\Program Files\EasyPHP-12.1\www\sito\register.php on line 61

Notice: Undefined variable: sentmail in C:\Program Files\EasyPHP-12.1\www\sito\register.php on line 76
Errore, link di attivazione non inviato.



vi giro le voci corrispondenti alla riga 61 e 76

riga 61:
$inviautentitemp = mysql_query("INSERT INTO utenti_temp(codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");


riga 76
if($sentmail){

vi giro anche tutto il contenuto racchiuso tra le due righe, magari vi serve:

$inviautentitemp = mysql_query("INSERT INTO utenti_temp(codiceconferma, username, password, email) VALUES ('$codiceconferma', '$username', '$password2', '$email')");

if($inviautentitemp){

$to=$email;
$subject="Conferma la Registrazione";
$header="Da: Amministratore";
$message="Ecco il tuo codice di attivazione \r\n";
$message1="Clicca sul link per confermare la registrazione \r\n";
$message.="
http://127.0.0.1/sito/register.php?passkey=$codiceconferma";

$sentmail=mail($to,$subject,$message,$header);

}

if($sentmail){


ho letto che potrebbe essere il codice php.ini ma sinceramente non ho assilutamente idea di cosa dovrei fare.
vi garantisco però che ho seguito il tutorial alla lettera e controllato mille volte, credo ci sia da abilitare qualcosa.

grazie a tutti.
mario