Возможно, вы не получаете ожидаемые параметры, поэтому запустите ваш скрипт с
var_dump($_GET);
чтобы увидеть, что на самом деле получает ваша страница.
Хотя я ценю, что вы только учитесь, принятие параметров, которые дословно передаются на сервер базы данных и в браузер клиента, - это защита нет-нет.
Возьмите переменную $ ulName - я могу добавить туда HTML по своему выбору, так почему бы не ограничить его буквенно-цифровыми цифрами?
if (preg_match('/[^a-z0-9_]/i', $ulName)
die("Invalid ControlName specified");
Что касается принятия SQL через параметр, я бы на самом деле этого не сделал, если бы вы полностью не доверяли пользователю своего приложения ...
?SqlQuery=DROP+DATABASE+publicdb
Страшно, верно? А как насчет того, чтобы объединить оба этих недостатка? Я мог бы создать ссылку, которая отображала бы вашу страницу, но встраивал форму со скрытыми полями, содержащими этот запрос, вдоль которой находилась большая кнопка с надписью «кликни мне, чтобы посмотреть смешные видео с кошками». Теперь мне просто нужно отправить ссылку туда и подождать, пока кто-нибудь другой сделает мои злые торги:)