Bjornie: Не совсем понятно какая у вас стоит цель. Вам нужна целостность данных или производительность? Приемлимо ли, что часть потомков осталась болтаться без родителя? Может вам вообще on delete cascade подойдет, чтобы потомки-сироты сами удалялись вслед за родителями.
hollanditkzn: Можно и так и этак. При некоторых настройках сервера относительные пути могут чудить, поэтому лучше вычислять абсолютный, на основе $_SERVER['DOCUMENT_ROOT'] или __DIR__ или еще какого-нибудь из пары десятков способов составить этот путь.
hollanditkzn:
1. я в dev-tools браузера могу убрать этот ваш accept. Или могу вообще не через браузер файл отправить, curl'ом, например. И в этом файле может быть не картинка, а shell-скрипт.
2. это уже больше похоже, но, в новом имени файла должен быть еще и путь к папке, куда вы хотите картинку сохранить.
И перед отправкой json желательно заголовок отправить, типа Content-Type: application/json. подробнее посмотрите в примере, который я линканул. Там-же параметры для правильного кодирования всяких проблемных символов в json.
И у вас все еще нет практически никаких проверок. На этапе обучения фиг с ними, но в реальном проекте о безопасности думать придется.
Как это, одновременно работающих? В том-же set_exception_handler можно последовательно их запускать, если ваши обработчики конечно не делают exit(), например.
Дмитрий: Если вы добавите defer ко всем скриптам, то они загрузятся именно в том порядке, в каком прописаны. Но я уверен, что некоторые из них не нужны в первые доли секунды отрисовки страницы. touchswipe.min.js нужен? jquery.maskedinput.min.js тоже нужен с первых мгновений?
Скорее всего их можно грузить с async.
Александр Шибков: Да, в хроме contextmenu перехватывается, а средний клик отслеживается по mousedown, но отменить его не получается, вкладка все равно открывается. Добавил на jsfiddle.