Salve..
Ho creato uno script php che permette di entrare in un'area amministrativa e da dentro quest'area è possibile aggiungere nuovi admin.. Il problema è che quando aggiungo un nuovo admin non capisco perchè i miei dati di $_SESSION cambiano e diventano quelli dell'admin appena creato...
Incollo qui il codice di aggiunta amministratore per poter capire se c'è qualche problema...
// Aggiungi admin_do
if($action == "add_admin_do")
{
$adm_user= $_POST['adm_user'];
$adm_pass= $_POST['adm_pass'];
$adm_pass2= $_POST['adm_pass2'];
$adm_mail= $_POST['adm_mail'];
// Se uno dei campi del form rimane vuoto
if (trim($adm_user) == "" OR trim($adm_pass) == "" OR trim($adm_mail) == "") // La funziona trim esclude gli spazi e li considera anch'essi come spazio vuoto
Errore("admin.php?auth=$_SESSION[adm_auth]&action=add_admin", "Errore", "Attenzione! Tutti i campi devono essere riempiti!", "..");
// Controllo password di conferma
if ($adm_pass == $adm_pass2)
{
// Viene assicurato che gli apici e apici doppi siano anteposti da un solo slash (/) nelle variabili del form
$adm_mail = addslashes(stripslashes($adm_mail));
// Per compatibilità con html converte i caratteri speciali come &, >, <, ecc....
$adm_mail = htmlspecialchars($adm_mail);
// Check 3: Controllo validità E-Mail
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $adm_mail))
{
// Connessione mysql
Db_connect();
// Check
if (!get_magic_quotes_gpc()) // Verifica se i dati contengono gli slash prima degli apici, se nn ci sono li aggiunge
{
$adm_user= htmlspecialchars(addslashes($_POST['adm_user']));
$adm_pass= htmlspecialchars(addslashes($_POST['adm_pass']));
}
else
{
$adm_user= htmlspecialchars($_POST['adm_user']);
$adm_pass= htmlspecialchars($_POST['adm_pass']);
}
// Controllo user già esistente
$query = "SELECT * from ".$tbl_prefix."admin WHERE adm_user = '$adm_user'";
$risultato = mysql_query($query);
$num_righe = mysql_num_rows($risultato);
// Sub-Check 1 = TRUE: L'utente risulta già nel database quindi è già registrato!
if($num_righe)
Errore("admin.php?auth=$_SESSION[adm_auth]&action=add_admin", "Errore", "L'username inserito risulta già esistente!", "..");
// Controllo mail già esistente
$query = "SELECT * from ".$tbl_prefix."admin WHERE adm_mail = '$adm_mail'";
$risultato = mysql_query($query);
$num_righe = mysql_num_rows($risultato);
// Sub-Check 2 = TRUE: La mail è già stata registrata
if($num_righe)
Errore("admin.php?auth=$_SESSION[adm_auth]&action=add_admin", "Errore", "L'email inserita risulta già utilizzata da un altro admin account", "..");
//Genera un codice di autorizzazione casuale tramite la funzione Auth()
$adm_auth = Auth();
// Cripta l'id nel database in md5
$crypt_auth = md5($adm_auth);
// Cripta la password nel database in md5
$crypt_pass = md5($adm_pass);
$query = "INSERT INTO ".$tbl_prefix."admin (adm_user , adm_pass , adm_mail , adm_auth) VALUES ('$adm_user', '$crypt_pass' , '$adm_mail' , '$crypt_auth')";
if (mysql_query($query))
Ok("adm_protetta.php?auth=$_SESSION[adm_auth]", "Admin aggiunto", "Admin registrato correttamente", "..");
}
// Check 3 = FALSE: La mail inserita non è scritta correttamente
else
Errore("admin.php?auth=$_SESSION[adm_auth]&action=add_admin", "Errore", "Attenzione! L'indirizzo email non ha una sintassi corretta (es. nome@dominio.com)", "..");
}
else
Errore("admin.php?auth=$_SESSION[adm_auth]&action=add_admin", "Errore", "Attenzione! La password di controllo inserita non è corretta", "..");
}