Как лучше сделать - закачивать аватары в спецпапку форума или сохранять их в базе? Попробовал сделать форму <form action="блаблабла" method='POST' enctype="multipart/form-data" > <input type='file' name='useravatar' /></td> форма отправляет данные, затем $useravatar = $HTTP_POST_VARS['useravatar']; // line 27 и значение просто добавляется в БД Но при выполнении скрипта вываливается: Notice: Undefined index: useravatar in z:\home\localhost\www\dronix6\register.php on line 27 и в базу ничего не добавляется. Столбец в базе: u_avatar mediumblob BINARY значение для юзера: [BLOB - 0 Bytes] Почему андефайнед индекс и может стоит просто сохранять их в папку?
1) хронить аватары в базе все равно что на катерах спортивных в канистрах нефть через континенты перевозить =)) 2) все данные из полей типа file пишутся не в $_POST а в $_FILES, т.е. $useravatar = $_FILES['useravatar'];
пасиба а я всегда юзаю длинные прототипы $_post или гет - $http_get_vars[''] привык уже к ним. мне стоит перейти на короткие, как у тебя? И ещё вопрос: если я буду заливать авики в папку, мудро ли будет затем прочитать содержимое авы в массив и проверить его на наличие текста <? или <script ?
ну... положим не только на эти, их можно еще и зашифровать... вообщем поле для экспериментов. смотря как ты используешь эти файлы - лучше перестраховаться, и отсеять
лол, ребята. Вы извените, не хочу никого обидеть но действительно смешно =) Делаешь $img=getimagesize($_FILES['useravatar']); и получаешь массив в переменную $img только в том случае, если файл является картинкой. В массив пишется инфа о файле. Графический тип, глубина цвета, если не изменяет память, размеры, атрибуты для тега <img> и другое. Если в нем присутствует что-то типа <? или <script то функция вернет 0, так как это уже не графический файл. Т.е. делаем PHP: $img=getimagesize($_FILES['useravatar']); if($img){ или PHP: $img=getimagesize($_FILES['useravatar']); if(is_array($img)){ Но первый способ более оптимальный. Короче вот... http://ru.php.net/manual/ru/function.getimagesize.php Да и вообще любые ответы на любые вопросы можно найти в мане. просто надо научится им пользоваться. Насчет $_POST и $HTTP_POST_VARS... насколько я знаю - разницы нет. Переменные автоматом создаются и теб и другие. Но я привык к короткому обозначению. Он более удобный и короткий и не мусорит код. А читать файл в массив дабы проверить его на наличие подобных символов вообще глупо. Подумай сам, как эти скрипты будут исполняться, если ты файл заливаешь к себе на сервак? Если, конечно, у тебя апачу или другому веб-серверу не указано, что он должен запускать php для обработки графики =) 2 Talisman нет слова "вообщем". Есть слово "вообще" и "в общем" =)) Кстати, сам долго путал =))