Jump to content

wendigo

Newbie
  • Posts

    18
  • Joined

  • Last visited

Posts posted by wendigo

  1. Один из вариантов:

    1) Создаем в таблице users поле, например, user_auth

    2) Каждый раз при аутентификации пользователя генерируем токен, например вот так: md5(uniqid(mt_rand(), true));

    3) Записываем полученный хеш в user_auth и ставим 2 куки с user_id и user_auth(куки ставим с флагом httponly, в целях профилактики от возможных xss-векторов)

    4) Когда юзер заходит на страницу, смотрим user_id, сверяем хеши, если хеши не совпадают - не пускаем, просим залогиниться.

     

     

    Этот айдишник мы получаем из БД. Он генерится auto increment`om

     

    Но вы храните его в куках чтобы идентифицировать пользователя. А пользователь имеет возможность произвольно изменять значение куки, тем самым выдавая себя за другого.

    • Like 1
  2. Ещё один нубский вопрос :)

     

    Юзер залогинивается.

    Запускается сессия, и если выбрана галочка "Запомнить" - пишется кука 'logged_in'

    Как теперь вытащить его username и остальные данные из БД? К примеру, чтобы показать его профиль.

     

    Единсвенный вариант, что я смог придумать - записывать в куку 'loggen_in', к примеру id юзера. Сразу и проверка на наличие куки + можно найти юзера в базе.

    Это правильный выход, или есть получше?

    Неправильно, а если точнее, крайне небезопасно. Нельзя доверять данным полученным от пользователя. В данном случае, можно изменить значение куки 'loggen_in' на 1, к примеру, и с большей вероятностью, будет получен доступ к аккаунту админа.

    Запуская сессию, логичнее хранить данные в сессии.

    • Like 1
  3. 1) Ужасные имена классов(adres, lupa) + нижние подчеркивания(это не php, в css предполагается использовать дефис в качестве разделителя).

    2) Использование inline стиля ничего хорошего в себе не несет.

    <div style="margin: 40px auto 30px;">

    3) Футер не выровнен как на макете, должен быть правее.

    4) Повторяющийся код, пример:

    .footer_left p {margin: 10px 0;padding: 0;}.footer_right p {margin: 10px 0;padding: 0;}

    5)  Во многих местах margin можно сократить

    #block_left div {display: block;margin-left: 25px;font-size: 13pt;;margin-top: 20px;text-align: left;margin-bottom: 25px;}

    7) Отступ между классами. Где-то он есть, где-то его нету. Где-то вообще лишние строки. Неаккуратно написан css.

    8) Зачем нужен этот комментарий?

    bg_rgb_logo {/** background: url('img/rgb_logo.png') repeat-x; */

    9) Группированные селекторы лучше размещать на разных строчках.

  4. Можно сделать так, как предложил  ShumNo, указать ширину(дополнительно сделав отображение тега <a> блочным, таким образом мы не нарушаем вышеупомянутые стандарты).

    a {    display: block;    width: 160px;}

    http://jsfiddle.net/x75PL/1/

  5. Почему так происходит.

    Тег <a> - строчный элемент. Тег <div> - блочный. По стандартам нельзя использовать блочный элемент внутри строчного. 

     

    В данном случае, <div> внутри растягивает родительский элемент <a> на всю ширину экрана.

     

    Как сделать что бы ссылка срабатывала только при наведении на блок
     

    Следовать стандартам. Разместить тег <a> внутри тега <div>

  6. Если ищите альтернативу PHP, советую ознакомиться с возможностями RoR. Но все же, лучше не прыгать от языка к языку, а концентрировать обучение на чем-то одном. Если уже знакомы с азами PHP, то в данном случае, смею вам предложить для изучения какой-нибудь php-framework (рекомендую Yii, но также есть ZF, CodeIgniter, Kohana, Laravel и т.д.). Большинство решений реализовано за вас профессионалами - нет надобности изобретать велосипеды. Заодно повысите знание ООП. 

  7. 1)использование #id, много раз обсуждалось на форуме.

    2)подключать js в шапке - очень плохая привычка

    3)Оформление css. Нет пробелов после двоеточий, после фигурных скобок. Группированные селекторы лучше смотрятся на разных строчках.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy