Почему вы принимаете uid в запросе POST, обычно вы автоматически определяете его на основе вашей базы данных (приращения и т. Д.).
Честно говоря, вам нужно переписать большую часть кода, единого решения не будет, потому что ваш код полностью уязвим.
Не забывайте принимать только те данные, которые вам нужны, и, кстати, если бы я мог редактировать свой UID, кроме возможности посылать любой UID, который мне нравится, я мог бы также сделать его вредоносной полезной нагрузкой, такой как:
10000; DROP TABLE users;
Что, должно дать мне UID 10 000, а также отбросить всю таблицу пользователей, так что не имеет значения, что я просто получил отличный UID, потому что теперь вся таблица удалена. Можно также вывести таким образом всю базу данных, выполнив что-то вроде 10000; SELECT * FROM users;
Не уверен, что эти запросы, в частности, будут работать, но они уязвимы.
Я знаю, что это не совсем отвечает на ваши вопросы, но я предлагаю переписать большую часть вашего кода и использовать передовой опыт.
Кстати, вполне вероятно, что вы получаете это перенаправление, потому что если вы инициируете начальную isset ($ _ POST ['submit']), а затем нажимаете на каждый оператор else, вы получаете сообщение об успехе.