ФорумПрограммированиеPHP для идиотов → Привязка авы к нику в анкете

Привязка авы к нику в анкете

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 0:34, спустя 1 минуту 47 секунд

    substr($_FILES['avatar']['name'], strlen($_FILES['avatar']['name'])-4, 4)
    а если кириллица и пришло в utf? а если там запрещенные символы для никс систем, а юзер грузит из вин?
    Спустя 37 сек.

    [man]move_uploaded_file[/man]

    adw0rd, ЫЫЫ
    я успел поправиться, делай звезды давай :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 0:35, спустя 1 минуту 6 секунд


    substr($_FILES['avatar']['name'], strlen($_FILES['avatar']['name'])-4, 4)
    а если кириллица и пришло в utf? а если там запрещенные символы для никс систем, а юзер грузит из вин?
    Спустя 37 сек.

    [man]move_uploaded_file[/man]

    adw0rd, ЫЫЫ
    я успел поправиться, делай звезды давай :)
    HEADSHOT!
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 0:38, спустя 2 минуты 50 секунд

    phpdude, Че?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • OFF

    Сообщения: 429 Репутация: N Группа: Адекваты

    Spritz 10 сентября 2009 г. 0:43, спустя 5 минут 4 секунды


    OFF, а ты проверяешь: картинка ли это была загружена?

    Проверять нужно конечно. Только мне то сложновато с регулярными выражениями бороться, но примерно вот так можно проверить что там загрузилось.

    $allowed_types = array("image/gif" => "gif","image/pjpeg" => "jpg","image/jpeg" => "jpg","image/jpg" => "jpg","image/png" => "png");// массив разрешенных типов
    if (!array_key_exists($_FILES['avatar']['type'], $allowed_types)) && (!preg_match('/^(.+)\.(jpg|jpeg|png|gif)$/si', $_FILES['avatar']['name']))
    {
    echo"какая-то херня.";
    {
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 0:50, спустя 6 минут 49 секунд

    OFF, я бы сказал "ты пиздец" … не так надо проверять …

    type от клиента получаешь и можно там хоть что заслать … в общем секурити у твоего метода ниже чем на нуле)
    Сапожник без сапог
  • OFF

    Сообщения: 429 Репутация: N Группа: Адекваты

    Spritz 10 сентября 2009 г. 0:56, спустя 5 минут 34 секунды


    HEADSHOT!


    Спустя 121 сек.

    OFF, я бы сказал "ты пиздец" … не так надо проверять …

    type от клиента получаешь и можно там хоть что заслать … в общем секурити у твоего метода ниже чем на нуле)

    Я не говорил что это не говнокод. )
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 0:57, спустя 1 минуту 41 секунду

    тут дело не в говнокоде а в потенциальных уязвимостях)
    Сапожник без сапог
  • OFF

    Сообщения: 429 Репутация: N Группа: Адекваты

    Spritz 10 сентября 2009 г. 1:06, спустя 8 минут 17 секунд


    тут дело не в говнокоде а в потенциальных уязвимостях)

    Я дальше не могу дискутировать, так как не совсем в теме. )))
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 1:13, спустя 7 минут 47 секунд

    А я подскажу фишечку, не очень хорошо известную. Для code9, напишу подробно.

    В том месте где ты будешь выводить аву ты точно знаешь id юзера. Иначе откуда тебе знать чья ава здесь должна быть? ))) каламбур

    Значит в базе никакой инфы про аватару хранить не придется! Самый простой способ сохранять сами аватары как "id.jpg" - здесь вместо id реальный id юзера .

    Даже если аватара не в формате jpeg, а gif или png, то есть расширение файла не соответствует реальному типу, браузер сумеет её правильно отрисовать! Проверено. Значит не паримся и всегда сохраняем с расширением ".jpg"
    Зачем это нужно? Да просто чтобы не проверять есть ли у нас файл каждого расширения!

    Остается один раз проверить наличие авы. Предположим в массиве $user у тебя хранятся данные о юзере, а в $user['id'] - его id.
    Пусть также у тебя определены две константы: SITE_ROOT - корневая папка твоего сайта, BASE_URL - как выглядит этот корень в адресной строке браузера.
    Например где-то в файле конфигурации написано


    define('SITE_ROOT', './');
    define('BASE_URL', 'http://vasiapupkin.ru');

    Код вывода аватары

    if (file_exists(SITE_ROOT.'img/avatars/'.$user['id'].'.jpg'))
    echo '<img src="'.BASE_URL.'/img/avatars/'.$user['id'].'.jpg">';
    else
    echo '<img src="'.BASE_URL.'/img/avatars/no_avatar.jpg">';

    Если аватары у юзера нет — выводим аватару по-умолчанию
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 5:17, спустя 4 часа 3 минуты 38 секунд

    artoodetoo, я тебе еще удобне метод скажу. начинается он с твоего, НО!! проверять НИХУЯ НЕ НАДО.

    прост опишем всегда "img/avatars/$user[id].jpg"

    + строчку в .htaccess

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . noavatar.jpg [L]

    и срал я на проверки ;)


    хуяк? :)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 5:36, спустя 18 минут 37 секунд

    здесь не хватает еще одног RewriteCond. нахуа нам ВСЁ перенаправлять на noavatar? всё чего нет
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 5:38, спустя 2 минуты 23 секунды


    здесь не хватает еще одног RewriteCond. нахуа нам ВСЁ перенаправлять на noavatar? всё чего нет
    ну я идею показал, а не реализацию, т же сам знаешь что я пустословлю часто)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 6:41, спустя 1 час 2 минуты 44 секунды

    моролик дуд!

    ыы

    EDITED: ЭТО БЫЛ НЕ Я !!! 8(
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 сентября 2009 г. 5:54, спустя 23 часа 13 минут 5 секунд

    artoodetoo, спасибо!
    Спустя 7 сек.
    без обид))
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 10 сентября 2009 г. 6:09, спустя 15 минут 2 секунды

    phpdude, а может проще будет тут таки заюзать вариант Фрозега - <img src='lol.jpg' onError='error.jpg'></img> http://pyha.ru/forum/topic/2845.msg55300#msg55300

Пожалуйста, авторизуйтесь, чтобы написать комментарий!