2012-01-17 15 views
9

Mam zasady w moim .htaccess dla stron, wykazują właściwość ID etc ...parametry Testuj URL w php

chcę, aby upewnić się potwierdzić każdy parametr mogę sobie prawo zapytania im się.

mam:

RewriteRule ^(.*)$ page.php?page=$1 
RewriteRule ^property/(.*)$ property.php?pid=$1 

więc w moim php zrobić:

$page = $_GET['page']; 

i

$propertyid = $_GET['pid']; 

Teraz trzeba je zabezpieczyć, ale chcę wiedzieć, która metoda jest najlepiej użyć, aby je zabezpieczyć i to jest miejsce, w którym się zgubiłem.

+0

$ _GET [ „strona”] = numeryczny i tylko litery? $ _GET ['pid'] jest tylko numeryczne? –

+3

to pytanie jest wszędzie. 1) co to ma wspólnego z SEO? 2) co rozumiesz przez "zatwierdzanie" i/lub "zabezpieczanie"? – helloandre

+0

Tak, otrzymuję tylko cyfry i litery dla strony i numeryczne dla pid –

Odpowiedz

15

powiedziałbym korzystać z tych zasad:

RewriteRule ^([a-z0-9]+)/?$ page.php?page=$1 [L,NC] 
RewriteRule ^property/([0-9]+)/?$ property.php?pid=$1 [L,NC] 

ten sposób, jeśli ktoś wejdzie wszelkie znaki inne niż litery i cyfry (dla stron) i liczby (dla właściwości) to wil l pokaż stronę nie znaleziono.

Jeśli chcesz naprawdę mieć pewność, można

$page = mysql_real_escape_string($_GET['page']); tylko upewnić się, że połączenie z bazą danych jest otwarta i można oddać PID jak $propertyid = (int)$_GET['pid'];

0

Myślę, że z parametrem strony powinieneś mieć listę stron acept, a następnie po "stronie", sprawdź, czy "strona" jest na liście akceptacji. Na przykład:

$arr_pages = ('page1','page2','page3'); 
$page = $_GET['page']; 
if(in_array($page,$arr_pages)) 
{ 
// do some thing 
} 
else 
{ 
// page not found 
} 

And ID:

$propertyid = intval($_GET['pid']); 

nadzieję, że to pomaga :)