Da un po' di tempo non mi funziona questo script, cioè un po' di tempo = 15-20 minuti, ma non capisco il perchè.. Sembra che la posizione dell' include e del session_start() influenzi tutto lo script, il form non riceve dati..
Codice PHP:
<?php
include('settings.php');
session_start();
$step = $_GET['step'];
if(!is_numeric($step) || !isset($step)) {
header ('Location: ?step=1');
}
switch($step) {
case 1:
echo <<<EOT
Benvenuto nella registrazione di [b]MySimpson[/b]. Ricorda di fornire un' indirizzo mail valido affinchè successivamente vi si possano inviare i dati immessi nel form sottostante.
<form action="{$_SERVER['PHP_SELF']}" method="POST">
<div style="float: left; margin-right: 50px;">
Username
<input type="text" name="username" required />
Password
<input type="password" name="password" required /></div><div style="float: left;">
Email
<input type="email" name="email" required />
Conferma Password
<input type="password" name="password_check" required /></div><div style="clear: both;"></div>
<input type="submit" name="reg" value="Registrati" /></form>
EOT;
$username = addslashes(htmlspecialchars($_POST['username']));
$email = addslashes(htmlspecialchars($_POST['email']));
$password = md5(addslashes(htmlspecialchars($_POST['password'])));
$password_check = md5(addslashes(htmlspecialchars($_POST['password_check'])));
if(isset($_POST['reg'])) {
if(empty($username) || empty($email) || empty($password) || empty($password_check)) {
echo '<div id="error">Devi riempire tutti i campi</div>';
} elseif($password_check != $password) {
echo '<div id="error">Le password non coincidono</div>';
} else {
mysql_query("INSERT INTO simpson_users (username, password, livello, exp, email, registrazione) VALUES ('$username','$password','1','1','$email',NOW())") or die(mysql_error());
$_SESSION['ok'] = $username;
header ('Location: ?step=2');
}
}
break;
case 2:
if(!isset($_SESSION['ok'])) {
header ('Location: ?step=1');
} else {
echo '<div id="ok">Registrazione effettuata correttamente.
Sono stati inviati i dati al tuo indirizzo email in caso di smarrimento.
Se non ricevi nessuna email entro 48 ore assicurati di aver inserito un indirizzo di posta elettronica valido e di aver controllato nella [b]Posta indesiderata[/b].</div>';
}
break;
}
?>