aaaaah... si si... ma questo riguarda non tanto le variabili get che contengono id ma piuttosto riguarda i permessi concessi all'utente
Tipico caso, ad esempio, uno script per selezionare gli articoli da un database in base all'id che riceve via get. In quel caso io l'unico controllo che faccio sull'id è intval(). Tipo:
Codice PHP:
<?php
/*includiamo il file di connessione*/
include("connessione.php");
/*recuperiamo la variabile get id*/
$id = intval($_GET['id']);
/*formuliamo la query*/
/*la clausola WHERE
sarà identificativa della news desiderata*/
$query = "SELECT * FROM news WHERE id='".$id."' LIMIT 1";
/*rivolgiamo la query*/
$result = mysql_query($query) or die (mysql_error());
/*verifichiamo se c'è la news
andando a contare
se abbiamo estratto il record*/
$numero = mysql_num_rows($result);
/*se non abbiamo selezionato
nessuna news stampiamo un messaggio*/
if($numero==0)
{
echo "<h1>Nessuna news selezionata</h1>";
}
/*altrimenti estraiamo i risultati della query*/
/*non serve il while perchè è un unico record*/
else
{
$riga=mysql_fetch_array($result);
/*rimuoviamo gli slash*/
$titolo = stripslashes($riga['title']);
$articolo = stripslashes($riga['articolo']);
/*la funzione nl2br sostituisce
i ritorni a capo con i
*/
$articolo = nl2br($articolo);
echo "<h1>".$titolo."</h1>";
echo "
".$articolo."</p>";
}
?>
Nel caso l'id debba essere coinvolto in query di update e delete opero diversamente.
Ad esempio poniamo che un utente registrato dopo il login voglia gestire i suoi dati, ovvero il suo profilo io l'id dei record su cui può operare lo metto in una variabile di sessione (che valorizzo dopo il login).
Codice PHP:
// check_login è una mia funzione che utilizzo per fare il login
// che restituisce FALSE in caso di login fallito
// altrimenti restituisce l'id dell'utente
$result_login = check_login($_POST['user'], $_POST['pass']);
if($result_login !== FALSE)
{
$_SESSION['id_user'] = check_login($_POST['user'], $_POST['pass']);
}
else
{
echo 'login fallito';
}
Poi le query le faccio in base all'id in sessione...
Codice PHP:
// edit_profile è una funzione per modificare il profilo
edit_profile($_SESSION['id_user'], $_POST['email'], $_POST['website'], $_POST['firma'], $_POST['nome'], $_POST['cognome'], $_POST['telefono'], $_POST['indirizzo']);
Infine se le operazioni di update e/o delete riguardano un pannello di amministrazione (quindi io, o poche altre persone) in tal caso i controlli sull'id lo faccio semplicemente con intval() dato che non mi farei del male da solo