Простите, но у вас же IDEA не в консоли запускается, а в каком-то DE? Ну, не хотите вы пользоваться иконками запуска - назначьте горячую клавишу, зачем же в консоли-то набирать? И в иконке, и в хоткее спокойно прописывается полный путь, один раз-то.
Владислав: совершенно незачем. Эти переменные все равно уничтожаются на следующем же шаге, при выходе из функции. Любой оптимизирующий компилятор эти две строчки просто-напросто проигнорирует.
Владимир Мартьянов: А MFC, Qt и wxWidgets - это обертки над низкоуровневым API (правда, Qt - со значительным участием своей собственной библиотеки). О чем спор-то?
Поправка: скорее, не GTK, а, например, wxWidgets (wxGTK) - высокоуровневая обертка над графическим API системы.
Насчет не использовать MFC вообще - совершенно согласен.
Проверяете браузером или Хромом?
Вообще, при обновлении CSS должен меняться адрес к файлу. Это общая практика. Браузер, имея файл с большим временем expired в заголовке, полученном в прошлый раз, может за ним вовсе не обращаться.
Chvalov: Тут тоже можно подсказать: для того, чтобы узнать имя файла, совершенно недостаточно функции, читающей его содержимое. Сайт отдает (если отдает) его в заголовках ответа.
Хайбулла Мусаев: "утилита пакетной обработки файлов" под Linux называется find.
На кой черт у вас вообще используется РНР для столь тривиальной задачи - вот вопрос.
Joysi75: если вы действительно можете вынести этот слой полностью и уверены, что при изменении логики его не придется полностью же переписывать, вынимая из БД - может, это и неплохо.
ex3xeng: давайте пофантазируем.
Итак, вы, получая запрос, обращаетесь к базе за именем файла, потом проверяете, есть ли этот файл, потом загружаете содержимое файла в память и отдаете пользователю. Вас в этом процессе почему-то пугает обращение к базе данных. Но если запрос простейший, то выполнен он будет чертовски быстро, а во второй раз - вообще почти моментально, потому что БД еще не успеет выкинуть эти данные из кэша. Проверка существования файла займет примерно то же время, но ее вы почему-то не боитесь. Основную массу времени, собственно, отнимут два следующих шага.
А "в данной ситуации в принципе все работает" - это первые слова в Святой Книге Говнокода.
Кстати, какого черта escape_string? Вы уже оторвались от имен файлов, почему не использовать числовые идентификаторы?
Ну, и смотрите: у вас теперь есть база данных, в которой хранятся те документы, которые смогут загружать пользователи. Можно связать с ней инструмент для загрузки таких файлов (безопасный, потому что файлы не будут доступны по имени!), инструмент вставки в материал на сайте ссылки на файл, оперирующий уже не его именем, а тем описанием, которое ему дали при загрузке... Начинаете чувствовать, что у вас энтерпрайз, а не наколенная поделка? Еще нет? Тогда продолжим!..
ex3xeng: так это и есть очень серьезная ошибка начинающего программиста: решая частую проблему, приспосабливать решение к данной ситуации.
Есть выстраданный принцип безопасности: если GET-параметр никак не связан с именем ресурса на диске, он точно не создаст уязвимости. Ни в данной ситуации, ни в какой-либо иной. Если вы можете так сделать - будет хорошо. У вас есть достаточно весомые причины не делать хорошо, а ограничиться частным решением? Если да, то такое поведение простительно. Если нет - не идите на поводу у лени. Для будущего.
Правильных для вас два: что такое указатель и что происходит при вызове new?
Учебник в помощь.