Ah perfetto capito è una semplificazione C=

Il problema è che sia il codice breve che il precedente hanno lo stesso errore.

Mi registro, arriva l'email con il link di attivazione:

http://MIOSITO/conferma_registrazion...43d8429b725c42

E niente pagina non trovata e l'array non scatta da 0 a 1 ^-^'

Non capisco per quale motivo non faccia il confronto e non faccia l'array..

(se attivo manualmente dal database in compenso il login e il logout fungono benissimo C= Mi rimane da fare il debug qui e poi faccio add come pagine interne e sistema di recupero password. Anche se con il MD5 la vedo dura..)

Posto anche un secondo file interessato, perchè qui sinceramento non trovo errore.. Forse è un problema di variabili sbagliate e non fa il giusto confronto.


Questo file interviene dopo la registrazione, ora mi spiego.

Riempio il form della registrazione. Nome Cognome Nick Pass ed Email e Invio.

Questo file si occupa di scrivere sul database i dati appena compilati e di inviare l'email con il codice alfanumerico per l'attivazione.

(il file postato e semplificato da te è il successivo a questo in ordine di cronologia)

Codice PHP:
<?php
require('db.php'); 

$user mysql_real_escape_string($_POST['user']); 
$user_mail $_POST['user']; 

//Hash per non memorizzare il valore originale della password
$pass md5($_POST['pass']);




$pass_mail $_POST['pass']; 
$firstname mysql_real_escape_string($_POST['firstname']);
$lastname =  mysql_real_escape_string($_POST['lastname']);


//Verifico che NickName e Email non siano già presenti sul DataBase
$query "SELECT * FROM user " .
          
"WHERE user_username = '$user' " .
          
"OR user_email = '$pass' ";

$result mysql_query($query) or die (mysql_error());

if (
mysql_num_rows($result) != 0)
{
 while (
$row mysql_fetch_array($result))
 {
  
//Se il nickname esiste
  
if ($row['user_username'] == $user)
  {
   echo 
"

"
;
   echo 
"L'username, [b]" $row['user_username'] . "[/b] è già in uso da un altro utente, scegliere uno diverso";
   echo 
"</p>";
  }
  
//Se l'email esiste
  
if ($row['user_email'] == $_POST['email'])
  {
   echo 
"

"
;
   echo 
"La casella E-mail, [b]" $row['user_email'] . "[/b] è già presente nel DataBase, scegliere una diversa";
   echo 
"</p>";
  }
 }
 
//Torna alla pagina di registrazione se esistono
 
echo "

"
;
 echo 
"<a href=\"registrazione.php\">";
 echo 
"<--  Clicca qui per ritornare alla pagina precedente";
 echo 
"</a>";
 echo 
"</p>";
 exit();
}

//Se non sono presenti nel DataBase 
else
{
   switch (
$_GET['action'])
   {
     case 
"add":
     switch (
$_GET['type'])
     {
      case 
"user":
      
$sql "INSERT INTO user
               (user_firstname,
        user_lastname,
         user_username,
        user_password,
        user_email)
      VALUES
        ('
$firstname',
        '
$lastname',
        '
$user',
        '
$pass',
        '" 
$_POST['email'] . "')";
       
$users mysql_query($sql) or die(mysql_error());
       
$id mysql_insert_id(); 
     
// Recupero l'ID (user_id) dell'utente appena registrato
       
break;
     }
    break;
   }
}

//Andiamo avanti assegnando un valore casuale alla variabile $msgid che contiene un valore identificativo che viene inserito nella tabella confirm. (utilizzo MD5 e Hasho)

$temp gettimeofday(); 
$msec = (int) $temp["usec"]; 
$msgid md5(time() . $msec);
$ins "INSERT INTO confirm
       (confirm_validator,
    confirm_userid)
     VALUES
   ('
$msgid',
    '
$id')";
$res mysql_query($ins) or die(mysql_error());
?>

<html>
<head>
<title>Inserimento dati</title>
</head>
<body>
<?php

//Invio un Email contentente NickName, password in chiaro e link per confermare la registrazione.


$to $_POST["email"];
$toname $_POST["firstname"];
$subject "Completa la tua registrazione";

$boundary "==MP_Bound_xyccr948x==";
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n";
$headers .= "From: [email]miaemail@gmail.com[/email] \r\n"
$html_msg "<center>";
$html_msg .= "<table width=\"500\" border=0 cellpadding=\"4\">";
$html_msg .= "<tr><td align=\"center\">";
$html_msg .= "</td></tr>";
$html_msg .= "<tr><td>Questi sono i dati della tua registrazione:";
$html_msg .= "</td></tr><tr><td>Username: <font color=\"red\">" $user_mail "</font>";
$html_msg .= "</td></tr><tr><td>Password: <font color=\"red\">" $pass_mail "</font>";
$html_msg .= "</td></tr><tr><td align=\"center\">";
$html_msg .= "</td></tr></table></center>";
$confirmmessage "Salve " $toname ",\n\n";
$confirmmessage .= "per completare la tua registrazione devi cliccare sul link sottostante:\n\n";
$confirmmessage .= $html_msg "\n\n";
 
confirm_reg.php
$confirmmessage 
.= "<a href=\"http://MIOSITOWEB/conferma_registrazione.php" .
  
"?id=$msgid\">Clicca qui per confermare la tua registrazione</a>";
$message "This is a Multipart Message in MIME format\n";
$message .= "--$boundary\n";
$message .= "Content-type: text/html; charset=iso-8859-1\n";
$message .= "Content-Transfer-Encoding: 7bit\n\n";
$message .= $confirmmessage "\n";
$message .= "--$boundary--";
$mailsent mail($to$subject$message$headers);
if (
$mailsent)
{
  echo 
"Salve" .  $toname ",
"
;
  echo 
"Un messaggio è stato inviato all'indirizzo [b]" $to "[/b] da te fornito.

"
;
  echo 
"IMPORTANTE:
"
;
  echo 
"Per completare la registrazione al sito devi aprire la tua casella e-mail, leggere il messaggio di conferma e cliccare sul link che troverai all'interno.

"
;
} else {
  echo 
"Errore durante l'invio dell'e-mail.";
}
?>
</body>
</html>