Бекап.
Снесите файл, проверьте, что ничего не отвалилось.
Не отвалилось? Меняйте пароли, доступы, потом проверяйте всю файловую систему, обновляйте Джумлу до актуальной версии, снова проверяйтесь и еще раз поменяйте доступы.
Нужно загрузить страницу для пользователя и показать, что что-то происходит и процесс идёт?
Тогда сделайте 1 страницу, которая покажет интерфейс пользователю, и с этой страницы отправляйте запрос ко 2 странице, которая будет общаться с внешним API. Перед началом запроса на странице 1 поставьте какую-нибудь гифку "Загрузка идет...", а после успешного ajax-запроса убираете гифку и возвращаете результаты запроса.
Долгая загрузка страницы 2 не будет мешать быстро показывать интерфейс страницы 1 для пользователя.
Если нужно именно быстро выполнить скрипт на странице 2, то уже необходимо думать о многопоточности, оптимизации работы самого скрипта, настройке сервера и т.д.
Читайте документацию и книги. И решайте задачки.
Вы должны понимать, что такое строгая типизация.
Найти все цифры 3х-значного числа можно используя остаток от деления.
Для того, чтобы понимать эти принципы - важно какое-то время пописать программы на строго типизированном языке. Я в свое время писал на Pascal — этого было достаточно, чтобы понять многие вещи.
Это же фишинг!
Может вы и в благих целях это хотите сделать, но представьте, что форму авторизации с популярного сайта точно также отобразили бы по другому адресу и данные из формы уходили бы по вашей ссылке.
Это же платная CMS?
В техническую поддержку не обращались? Они уж точно должны знать, какие файлы относятся к их системе, а какие нет.
Да и вообще, если дыра в самой CMS, то это полностью на их совести, и они должны заниматься восстановлением сайта (по-хорошему; как на самом деле обстоят дела - не знаю).
Повесьте на страницу обработчик на Javascript, который при событии drag'n'drop будет отправлять файл на сервер.
Тут в сторону js надо копать, а не PHP.
Вы не сможете на сервере получить информацию о той части url, что идет после # - это не get-запрос. Разве что считать её с помощью javascript и через ajax отправить на сервер.
Читайте про паттерны и шаблоны проектирования (Мэтт Зандстра, например).
Найти статью о том, как написать свой микро-фреймворк со своей реализацией MVC - тоже можно.
Можно также почитать эту книгу: www.labirint.ru/books/432458
Но и также стоит помнить, что хорошие практики не заканчиваются на одном лишь ООП.
А в чем собственно проблема, чтобы сделать не 3 группы, а необходимое количество? Это вы программистов и дизайнеров запихали в одну группу сотрудники, но ведь можно вообще не делать группу сотрудники. Просто у вас будет 5 (или другое необходимое количество групп), и каждая из них будет иметь доступ в свой раздел.
Ну и где-нибудь в конфиге/модели можно хранить массив, в котором перечислены все ID групп, которые относятся к "сотрудникам". Это можно сделать, если есть такая необходимость.
Да, вы можете хранить ID пользователя в сессии. Обычно так и делают: хранят auth_token, user_id и username, например.
Таким образом, вы в любой точке приложения можете получить всю информацию о текущем пользователе: вывести его имя, например. Или же сформировать ссылку для редактирования новости.
Только не забудьте, что на странице редактирования новости необходимо проверить - есть ли права у текущего пользователя на редактирование именно этой новости (показать/спрятать ссылку - мало, необходимо точно убедиться, что права на совершаемое действие есть).
А что за город?
Может, стоит в первую очередь уровень знания теории подкачать? Помимо тестовых заданий еще и собеседования есть - на них тоже много чего спрашивают.
Можно даже в сети найти частозадаваемые вопросы для php-программистов на собеседованиях. Найти эти вопросы, самостоятельно на них ответить/найти ответы. Разобраться в каждом вопросе. Можно еще и практикой закрепить каждый из них.
И зачем сразу на сифони2 кинулись? Не получится так, что у вас в голове от этого будет каша?