Ciao a tutti, ho un problema con l'area riservata, do la possibiltà all'utente di modificare i propri dati in questo caso la località, quando un utente clicca su modifica località viene mandato ad una pagina chiamata localita.php, e il link è il seguente
miosito.it/test/utente/localita.php?id=422
Il problema sorge quando ad esempio modifico direttamente l'id dal browser, ad esempio metto 421, e mi carica la pagina di modifica di un altro utente. Come faccio ad impedire questa cosa?
localita.php:
Codice PHP:
ob_start();
include('../include/controlla.inc.php');
include('../include/config.inc.php');
include('../include/class/select.class.php');
$obj = new select();
$l1 = $obj->getL1();
$l2 = $obj->getL2();
$azione='primo'; if(isset($_GET['azione'])){$azione=$_GET['azione'];}
$id=0; if(isset($_REQUEST['id'])){$id=$_REQUEST['id'];}
switch($azione){
case 'salva':
salva();
break;
}
$sql='SELECT attivita.att_idregione,attivita.att_idprovincia,regioni.*,province.* FROM attivita INNER JOIN regioni ON attivita.att_idregione=regioni.idregione INNER JOIN province ON attivita.att_idprovincia=province.idprovincia WHERE att_id='.$id;
$dati=mysql_query($sql) or die ($sql);
$array=mysql_fetch_array($dati);
$idreg=$array['idregione'];
$reg=$array['nomeregione'];
$idprov=$array['idprovincia'];
$prov=$array['nomeprovincia'];
function salva(){
global $miaconn,$id;
$idreg=0;if(isset($_POST['l1'])){$idreg=$_POST['l1'];}
$idprov=0;if(isset($_POST['l2'])){$idprov=$_POST['l2'];}
if( $idreg != 0 && $idprov != 0 ){
$sql='UPDATE attivita SET att_idregione="'.$idreg.'",att_idprovincia="'.$idprov.'" WHERE att_id="'.$id.'" ';
mysql_query($sql) or die ($sql);
}
}
ob_end_flush();
?>
al momento ho provato con questo controllo:
if ($_SESSION['id'] != $id){header('location:login.php');exit();}
ma non va. mi manda direttamente a login.php
potete aiutarmi? Grazie