Ciao Sto scrivendo uno script di pagina profilo, in questo script controllo il valore di una variabile $ _GET in entrata e convalido che è un numero intero, quindi convalido questo valore con un valore $ _SESSION per confermare che possono accedere solo ai propri account. Il codice è simile al seguente:
// validate $_GET field
if(isset($_GET['identity']) && filter_var($_GET['identity'], FILTER_VALIDATE_INT, array('min_range' => 1))) {
if(isset($_SESSION['user_identity']) && ((int)$_SESSION['user_identity'] === (int)$_GET['identity'])) { // if session exists and is === $_GET['identity']
// Proceed with code
Questo funziona bene per esempio se cerco di trasmettere '0', '2-2', 'abc' o nessun valore come il valore $ _GET la query non riesce e reindirizza in modo corretto li alla home page.
Quello che ho provato a fare è stato modificare il mio file .htaccess per mappare gli URL a 'profile/1' solo per riordinarlo.
RewriteRule ^profile$ profile.php
RewriteRule ^profile/([0-9]+)$ profile.php?identity=$1 [NC,L]
Quello che ho trovato oggi è che la pagina non reindirizza più usando quei validi parametri di $ _GET sopra. Cerca solo di trovare 'profile/abc.
Qualcuno sa perché?
Grazie, proverò le regole. Non ne ho idea, deve essere qualcosa a che fare con le mie regole .htacces perché le dichiarazioni php escludono esplicitamente tutto ciò che non è === un intero e passando $ _GET negli URL smascherati lancia tutto il resto. – Jonnny
ok fammi sapere se hai bisogno di ulteriore aiuto –
Ho appena provato, ho ancora lo stesso risultato. Che strano, forse è qualcosa di strano nel mio sistema. Apprezzo il tuo aiuto anche se – Jonnny