Visualizzazione risultati 1 fino 4 di 4

Discussione: problema con area riservata

  1. #1
    Guest

    Predefinito problema con area riservata

    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
    Ultima modifica di symontest : 24-09-2009 alle ore 14.31.14

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Invece di controllare la $_SESSION['id'] dovressti inserire nel where delle query: che l'username e la password dell'utente corrispondono alle sessione che hai registrato al momento del login
    Ultima modifica di sevenjeak : 24-09-2009 alle ore 14.49.34

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Invece di controllare la $_SESSION['id'] dovressti modificare la query cosi:
    così come scusa?

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Cioè, ad esempio, modifichi il where di ogni query cosi:
    Codice:
    WHERE id = '$id' and Username='$_SESSION['username'] AND Password='$_SESSION['Password']
    Almeno le query si eseguono solamente se l'username e la password registrate corrispondono con quelle registrati nel momento del login.

    P.S.
    : ho dimenticato un pesso che per sbaglio ho aggiunto anche nel post precedente
    Ultima modifica di sevenjeak : 24-09-2009 alle ore 15.06.15

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •