ciao, scusa, ma c'è una cosa che non non mi torna nel top scripit:
chi riceve l'email di conferma ha già fatto l'iscrizione, ma il campo attivo_utente è settato a 0,
mentre gli altri campi sono stati riempiti (tra i quali il campo mail_utente)
quindi la query che esegui per prima
$query = mysql_query("SELECT * FROM forum_utenti WHERE mail_utente ='".$mail."'");
è TRUE (mysql_query restituisce TRUE se a buon fine, altrimenti FALSE, $query diventa una variabile boeliana)
nell'if che segue fai
if($query == 0){
che equivale a dire che la query è FALSE cioè che non esiste un utente che abbia
il campo mail_utente uguale a $mail
quindi un utente che si è iscritto non potrà ne confermare ne cancellarsi
io farei così
PHP:
<?php
if(!isset($_GET['mail']) || !isset($_GET['conf'])){
header("index.php");
}else{
require_once"config/config.php";
$mail=htmlspecialchars($_GET['mail']);
$conferma=htmlspecialchars($_GET['conf']);
$query = mysql_query("SELECT * FROM forum_utenti WHERE mail_utente ='".$mail."'");
if($query == TRUE &&($conferma=="SI" || $conferma=="NO" )){
/* in questo modo verifico
1. che l'utente abbai gia eseguito la pre-iscrizione e
2. che la variabile $conferma sia SI o NO e non un'altra cosa
*/
switch($conferma){
case "SI":
$riga=mysql_fetch_array($query);
if( $riga['attivo_utente']== "0"){//non attivato allora attivi
mysql_query("UPDATE forum_utenti SET attivo_utente = '1', gruppi_utente = 'utente' WHERE mail_utente ='".$mail."'");
echo '<script type="text/javascript">alert("Account Attivato!!")</script>';
}else{//l'utente si era gia attivato allora avvisi
echo '<script type="text/javascript">alert("Account èra già attivato!!")</script>';
}
break;
case "NO":
mysql_query("DELETE FROM forum_utenti WHERE mail_utente ='".$mail."'");
//perche vuoi riscombinare tutta la tabella??
//?????mysql_query("ALTER TABLE forum_utenti AUTO_INCREMENT = 0");
echo '<script type="text/javascript">alert("Account Cancellato!!")</script>';
break;
}//fine switch
/*qui dovresi mettere almeno un link, altrimenti l'utente
rimane bloccato su questa pagina*/
}else{//fine if query true
/*qualcuno ha scritto sulla riga di comando del browser es.
http://www_tuo_sito.it/cartella/pag_conferma.php?mail=pinco@pallo&conf=NO
o qualche altra cosa che non hai nel db ritorni all'index o diverso da SI o NO
*/
header("index.php");
}//la query era false
}//fine if/else isset get
?>
p.s.
può sembrare ridondante ma con GET è sempre meglio qualcosa in più che in meno