Salve, creando una pagina che ha piu' form (gli altri form appaiono solo in certi casi), sto riscontrando un problema: Al secondo form quando premo sul submit mi rimanda al primo form come se non avessi fatto nulla. Ho provato varie cose ma nulla, questi sono i codici:

Codice PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<div id="reg_left">
<span class="name">Username</span>

<input type="text" name="username" required />


<span class="name">Password</span>

<input type="password" name="password" required />
</div>
<span class="name">Email</span>

<input type="email" name="email" required />


<span class="name">Ripeti Password</span>

<input type="password" name="password_check" required />


<input type="submit"  class="submit" value="Registrati" name="reg" /></form></div>

<?php

if(!file_exists('mybeat_settings.php')) {
header ('Location: install.php');
}

include(
'mybeat_settings.php');

if(isset(
$_POST['reg'])) {

$username str_replace('\'',''htmlspecialchars($_POST['username']));
$password md5(str_replace('\'',''htmlspecialchars($_POST['password'])));
$password_check md5(str_replace('\'',''htmlspecialchars($_POST['password_check'])));
$email str_replace('\'',''htmlspecialchars($_POST['email']));

$select_prefix mysql_fetch_array(mysql_query("SELECT * FROM mybeat_other WHERE type='prefix'"));
$prefix $select_prefix['value'];
$tabella_utenti $prefix."users";
$esiste_veramente mysql_query("SELECT * FROM `$tabella_utenti` WHERE username='$username'");

if(empty(
$username) || empty($password) || empty($password_check) || empty($email)) {
echo 
'<div id="error">Devi riempire tutti i campi.</div>';
} elseif(
$password != $password_check) {
echo 
'<div id="error">Le password non corrispondono.</div>';
} elseif(
mysql_num_rows($esiste_veramente) == 0) {
echo 
'<div id="error">Questo utente non esiste nel forum.</div>';
} else {
$seleziona_cat mysql_query("SELECT * FROM mybeat_groups"); // Seleziono le categorie
while ($ref mysql_fetch_row($seleziona_cat)) {
$cat_numeri $ref[1]; // La variabile contiene il record sotto il campo "numero"
$check mysql_query("SELECT * FROM `$tabella_utenti` WHERE username='$username' AND usergroup='$cat_numeri'");
if(
mysql_num_rows($check) != 0) {
$i++; // Se il numero di righe è differente da 0, quindi esiste, incremento $i
}
 }
 
if(
$i == 0) {
echo 
'<div id="error">Non fai parte di nessuna categoria scelta dal founder.</div>';
} else {
$check_esistente mysql_query("SELECT * FROM mybeat_users WHERE username='$username'");
if(
mysql_num_rows($check_esistente) == 1) {
echo 
'<div id="error">Utente già registrato.</div>';
} else {
$ip_corrente $_SERVER['REMOTE_ADDR'];
$select_ip mysql_fetch_array(mysql_query("SELECT * FROM `$tabella_utenti` WHERE username='$username'"));
$ip_db $select_ip['regip'];
if(
$ip_db != $ip_corrente) {
echo <<<EOT
[b]Attenzione![/b] Il tuo IP corrente non corrisponde con quello dell' utente del forum di cui hai inserito il nickname. Affinchè possiamo assicurarci che sia tu il vero [b]
EOT;
echo 
$username;
echo <<<EOT
[/b] ti preghiamo di inserire qui sotto l' indirizzo mail col quale ti sei registrato al forum MyBB. Se non lo ricordi, accedendo a tal forum e andando nel pannello di controllo lo troverai scritto.


<form action="
{$_SERVER['PHP_SELF']}" method="POST">
<input type="email" name="email_confirm" required />


<input type="submit" value="Conferma" name="conf_mail" /></form>

EOT;

if(isset(
$_POST['conf_mail'])) {
echo 
$username."
"
;
echo 
$_POST['email_confirm'];
}
  } else {
mysql_query("INSERT INTO mybeat_users (username, password) VALUES ('$username','$password')");
echo 
'<div id="ok">Registrazione completata. Ora potrai accedere a MyBeat News cliccando su "Login".</div>';
}
 }
  }
   }
    }
?>
E se volete provare qui c'è la pagina: http://mybeatnews.altervista.org/myb...istrazione.php

Per provarla inserite come dati:

Username: test
Password: asdasd
Email: scegliete voi quale
Conf. password: asdasd

Quando vi dirà che l' IP non corrisponde inserite come email una a caso, ad esempio asd@ciao.it e vedrete..