Buongiorno a tutti,
vorrei ricevere un consiglio e magari delle dritte riguardo il modo in cui gestisco, in questo caso, i dati provenienti dall'array $_GET.
Ho un "box" dove all'interno ci sono delle immagini. I link che portano alla pagina che visualizza la foto gallery sarà così composto:
www.sito.it/photo.php?album=nature&num=1
Dove "album" va a prendere l'album e "nature" l'id (dal database) della foto visualizzata.
Cliccando sull'immagine (sul link), si va a pagina "photo.php" dove all'interno c'è:
Codice PHP:
if ($_GET) {
if (isset($_GET['album'])) {
$album_from_get = mysql_escape_string(htmlentities(strip_tags(trim($_GET['album'])), ENT_QUOTES, 'UTF-8'));
$allowed_albums = array('animals','people','details','places','nature');
if (!in_array($album_from_get, $allowed_albums)) {
$album_from_get = str_replace($album_from_get, "places", $album_from_get);
}
$album_selected = $album_from_get;
switch ($album_selected) {
case 'animals': $cat = 'x1'; break;
case 'people': $cat = 'x2'; break;
case 'details': $cat = 'x3'; break;
case 'places': $cat = 'x4'; break;
case 'nature': $cat = 'x5'; break;
default: $cat = 'x5'; break;
}
} else { $cat = 'x1'; }
} else {
echo "get non settato";
exit();
}# $_GET
Il codice è semplice da capire:
- Controllo innanzitutto se l'array $_GET è presente..altrimenti..implementerò una contromossa;
- Controllo se l'array $_GET['album'] è settato..se no, imposto una categoria di album di default da estrarre dal db;
- Se $_GET['album'] è settato, trimmo->strip_taggo,htmlenTITLO, ecc. il dato passato in $_GET['album'];
- Imposto in un array i valori possibili che il $_GET['album'] deve contenere e..se non contiene uno tra questi, sostituisco il suo contenuto con un valore di default.
- Infine passo la palla allo switch che verificherà il contenuto di $_GET['album'] ed imposterà la giusta categoria da estrarre dal db per stampare a video la gallery corretta;
Ora..
..è un approccio corretto?
..ci sono controlli ulteriori che fareste e che mi sono dimenticato?
..ci sono passaggi obsoleti?
Grazie in anticipo 