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..