Дмитрий: Кстати, вам бы проверить путь, по которому происходит попытка создать картинку. Может быть ваш основной скрипт (код) пытается писать не туда, куда вы предполагаете?
Arti Markelov: а после создания отдельного файла и запуска основного кода - между этими действиями вы стирали файл созданной картинки? Вполне возможно, что ваш основной код ее не затронул просто.
Arti Markelov: проверил от себя - картинка отдается через file_get_contents(). Мистики не бывает. Если функция не запрещена, если вы получаете результат в виде данных, если работает file_put_contents, которая создает файл, то почему тогда она пишет туда "ничего" ? Может быть у вас криво формируется URL картинки в скрипте? Создайте отдельный скрипт из одной строки, напишите туда то, что я написал в ответе и проверьте.
Arti Markelov: очевидно дело в этой функции file_get_contents, возможно она запрещена на вашем хостинге, но ошибка не выводится... После вызова этой функции код будет выполняться, если дописать какое-нибудь echo простое?
Дмитрий: Потом можно с этими же хешами фиксировать операции (продана, пришла на склад, ушла со склада) вместе с датой и делать выборки любые... Правда, вижу уже затруднение: если нужно будет фильтрануть все майки Metallica, размера L и всех цветов. Тогда проблема...
Сергей: я бы попробовал через хеши свойств. Примерно так: таблица goods (id, title); таблица good_instances (good_id, options_hash, qty, warehouse_id). Warehouse_id - id склада из таблицы складов. А options_hash можно генерить примерно так md5 от строки option1:value;option2:value, где ключи option1, option2 отсортированы по алфавиту. Как идея, конечно... Может и не лучший вариант
Если файл не создается, значит нет прав записи на директорию, где лежит скрипт (в случае запуска из браузера, файл будет создаваться в той же директории). Если права на запись есть, то файл должен быть создан в любом случае, только пустой будет. Чтобы проверить, что отдает file_get_contents - сделайте вывод перед записью.
2-4 недели? Простите, но научиться использовать директивы, построить простенькие контроллеры и т.д. занимает ну от силы день, и потом можно наклепать хотя бы интерфейс с табами, различные зависимые списки и т.д. ИМХО