Ciao a tutti,
ho un problemone che mi sarà anche un po' difficile spiegare.
Io ho creato un gdr online.
Al login vengono create una serie di sessioni contenenti le informazioni del personaggio loggato che servono poi in altre parti del sito.
Ad un certo punto mi succede una cosa stranissima:
io admin visualizzo la scheda di un personaggio che non sono io e voglio modificarla per qualche ragione.
Appena clicco sul tasto modifica e vado nella pagina col form dei dati da modificare tutte le mie sessioni cambiano diventando uguali a quelle del personaggio a cui sto tentando di modificare la scheda. Praticamente divento un clone di quel personaggio e posso accedere alla sua scheda come se fosse mia quindi cambiare la password, la descrizione del pg e altre cose che magari un admin non potrebbe fare.
Non capisco veramente cosa possa causare questo problema, posto il codice della pagina in cui accade questo fatto:
Codice PHP:
=========================modifica_scheda2.php=========================
<?PHP
session_start();
include "../controlla_login.php";
include "../config.inc.php";
//Questa è la scheda che il master può modificare.
$USERNAME=$_GET['USERNAME'];
$SC_SALUTE=$_GET['SALUTE'];
$SC_PR=$_GET['PR'];
$SC_NM=$_POST['NM'];
$SC_FUNZ=$_GET['FUNZ'];
$SC_RAZZA=$_GET['RAZZA'];
$SC_ALLINEAMENTO=$_GET['ALLINEAMENTO'];
$SC_NM = str_replace('
','',$SC_NM);
?>
<html>
<head>
<title>Aggiorna dati personali</title>
<link rel="stylesheet" href="../stile.css" type="text/css">
</head>
<body leftmargin="5" topmargin="10">
<table width=90% border=0 align=center cellpadding=0 cellspacing=0>
<tr>
<td><table width=100% border=0 align=center cellpadding=1 cellspacing=0>
<tr>
<td bgcolor=#000000><table width=100% border=0 cellpadding=1 cellspacing=0 bgcolor=ffffff>
<tr>
<td><table width=100% border=0 cellpadding=0 cellspacing=0>
<tr bgcolor="ffffff">
<td width=34% height=20></td>
<td width=33% height=20 align="center"><div class="RedTIT">Aggiorna dati di
<?=$USERNAME?>
</div></td>
<td width=33% height=20></td>
</tr>
<tr align=left>
<td colspan=3 valign=top></td>
</tr>
<tr align=left>
<td colspan=3 valign=top><table width=100% border=0 cellspacing=0 cellpadding=4>
<tr>
<td class="RedB"><form name='form2' method='post' action='do_mod_scheda2.php?USERNAME=<?=$USERNAME?>&PR=<?=$SC_PR?>'>
<? if ($_SESSION["FUNZIONE_TIPO"] < 3){ ?>
Salute:
<select name="NEW_SALUTE" class="textfieldBASE" id="NEW_SALUTE">
<option value="<?=$SC_SALUTE?>" selected>
<?=$SC_SALUTE?>
</option>
<option value="Sano">Sano</option>
<option value="Scalfito">Scalfito</option>
<option value="Ferito">Ferito</option>
<option value="Gravemente Ferito">Gravemente Ferito</option>
<option value="Moribondo">Moribondo</option>
<option value="Anima">Anima</option>
</select>
Punti Reputazione:
<input name="NEW_PR" type="text" class="textfieldBASE" id="NEW_PR" value="<?=$SC_PR?>" size="20" maxlength="20">
Note del Master:
<textarea name="NEW_NOTE" cols="40" rows="4" class="textfieldBASE" id="NEW_NOTE"><?=$SC_NM?>
</textarea>
<?
if($_SESSION['FUNZIONE_TIPO'] == 1){
?>
Razza:
<select name="RAZZA" class="textfieldBASE" id="RAZZA">
<option value="<?=$SC_RAZZA?>" selected="selected">
<?=$SC_RAZZA?>
</option>
<option value="Umano">Umano</option>
<option value="Elfo">Elfo</option>
<option value="Mezz Elfo">Mezz'Elfo</option>
<option value="Fata">Fata</option>
<option value="Mezzo Drow">Mezzo Drow</option>
<option value="Lyarcon">Lyarcon</option>
<option value="Drow">Drow</option>
<option value="Centauro">Centauro</option>
<option value="Vampiro">Vampiro</option>
</select>
Allineamento:
<select name="ALLINEAMENTO" class="textfieldBASE" id="ALLINEAMENTO">
<option value="<?=$SC_ALLINEAMENTO?>" selected="selected">
<?=$SC_ALLINEAMENTO?>
</option>
<option value="Positivo">Positivo</option>
<option value="Neutrale Positivo">Neutrale Positivo</option>
<option value="Neutrale">Neutrale</option>
<option value="Neutrale Negativo">Neutrale Negativo</option>
<option value="Negativo">Negativo</option>
</select>
Funzione:
<select name="NEW_FUNZ" class="textfieldBASE" id="NEW_FUNZ">
<option value="<?=$SC_FUNZ?>" selected>
<?=$SC_FUNZ?>
</option>
<option value="Amministratore">Amministratore</option>
<option value="Master">Master</option>
<option value="Verbatorum">Verbatorum</option>
<option value="Cittadino">Cittadino</option>
<option value="Straniero">Straniero</option>
</select>
<?
}
elseif ($_SESSION['FUNZIONE_TIPO'] == 3){
?>
Punti Reputazione:
<input name="NEW_PR" type="text" class="textfieldBASE" id="NEW_PR" value="<?=$SC_PR?>" size="20" maxlength="20">
<?
}
else{
?>
<input type="hidden" name="ALLINEAMENTO" value="<?=$SC_ALLINEAMENTO?>">
<input type="hidden" name="RAZZA" value="<?=$SC_RAZZA?>">
<?
}
}
elseif($_SESSION['CORPORAZIONE_TIPO'] == 8 && $_SESSION['CARICA_TIPO'] < 53){ ?>
<select name="NEW_SALUTE" class="textfieldBASE" id="NEW_SALUTE">
<option value="<?=$SC_SALUTE?>" selected>
<?=$SC_SALUTE?>
</option>
<option value="Sano">Sano</option>
<option value="Scalfito">Scalfito</option>
<option value="Ferito">Ferito</option>
<option value="Ferito Gravemente">Ferito Gravemente</option>
<option value="Moribondo">Moribondo</option>
</select>
<?
}
?>
<div align="center">
<input name="Submit" type="submit" class="textfieldBASE" value="Modifica">
</div>
</form>
<div align="center">[url="javascript: history.back();"]Torna alla scheda[/url]</div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
=========================controlla_login.php=========================
<?PHP
session_start();
//Verifico che USERNAME sia settato.
//N.B.: potete eseguire il controllo su più variabili di sessione.
//N.B.2: ricordatevi che è sempre meglio impostare i controlli anche sulle singole pagine.
if (!isset($_SESSION['USERNAME'])) {
//Da sostituire con la pagina personalizzata che indicherà la fine della sessione.
//Per praticità ho messo l'url completo del server locale su cui lavoro.
//Voi dovrete inserire l'indirizzo della vostra pagina: [url]http://www.dominio.ext/nome_pagina.ext[/url]
header("Location: sessione_scaduta.php");
}
?>
=========================config.inc.php=========================
<?
//Dati di connessione al database
//Ricordatevi di inserire i dati relativi al vostro host sql
$db_host = "**.**.**.**"; //host del database
$db_user = "**********"; //username del database
$db_password = "*********"; //password del database
$db_name = "*********"; //nome del database
//Connessione al database
$connessione = @mysql_connect($db_host,$db_user,$db_password)
or die
("Non è possibile connettersi!!!");
$db = @mysql_select_db($db_name,$connessione);
?>
Qualcuno può aiutarmi per favore?
Grazie in anticipo ^_^