Hi Tom.
if (!$uid) $uid = $_GET['site_id'];
--> nämlich, weil Du hier ungeprüfte Daten (von außen kommend) in dein Script einfließen lässt.
Ins Skript einfliessen? Was heisst das? Sind die Daten dann tiefer im Skript drin als vorher, wenn sie nur im Array $_GET stehen?
In $_GET['site_id'] könnte alles drinstehen.
"Alles" heisst: ein beliebiger String. Und?
In PHP gibt es dafür die Filterfunktionen
http://de.php.net/manual/en/book.filter.php
"Dafuer"? Wofuer?
Hier würde ggf. ein Sanitize-Filter passen: FILTER_SANITIZE_NUMBER_INT
Um User-Daten zu veraendern und dann so zu tun, als seien diese veraenderten Daten vom User eingegeben worden. Das ist fast immer schlecht. Ich wuerde sogar fast das "fast" streichen wollen.
Viele Gruesse,
der Bademeister