За последние 24 часа нас посетили 17453 программиста и 1288 роботов. Сейчас ищут 1619 программистов ...

Система друзей и ее реализация php mysql

Тема в разделе "PHP для новичков", создана пользователем _ne_scaju_, 14 мар 2017.

  1. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Не получается проверить пользователя или уже залогиненого пользователя.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    $_SESSION['user'] = 7;

    ...

    if (!empty($_SESSION['user'])) {
    залогинен и номер есть
     
  3. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @igordata
    я так делал)
    Я не правильно описал проблему свою)))
    Как скрыть от гостя информацию, а если гость авторизовался то показать ее?
    Например, ссылка на авторизацию и регистрацию видна, до того момента, пока гость не авторизуется, если он авторизовался прячем ссылки авторизации и регистрации и показываем защищенный контент.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    PHP:
    1. if (empty($_SESSION['user'])) {
    2.   echo 'Это инфа для любого неавторизованного посетителя';
    3. }else{
    4.   echo 'Это секретная инфа только для авторизованных';
    5. }
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @igordata
    Не поверишь я и так делал, но в первой примере у тебя перед empty стоит знак ! для чего он?
    А как мне вскрыть блок регистрации и авторизации, если юзер зашел под своим логином?
    И еще вопрос: от куда ты берешь $_SESSION['user'] из сессии? или это для общего вида показываешь? И мне надо туда поставить то ли логин то ли id пользователя?
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    он делает наоборот :D
    значит "не empty(...)"
    --- Добавлено ---
    его нужно тудой покласть, когда юзер прислал логин, пароль, ты слазил в базу и сделал https://php.ru/manual/function.password-verify.html
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Не понял не чего)
     
    #332 _ne_scaju_, 7 апр 2017
    Последнее редактирование: 7 апр 2017
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это абсолютно бессмысленно

    сначала запрос в бд по логину, потом password_verify(пароль, хеш из бд)

    зачем? если выбрал юзера из бд и пароль прокатил - значит пиши айдишник в сессию и всё.
    вот тут как раз надо экранировать. Только при выводе. И каждый раз.
    PHP:
    1. <div>Вы успешно вошли в систему: '.htmlspecialchars($_SESSION['login']).'
    все урлы надо вести на одну точку входа. Тогда будет удобно.
    Можешь заюзать мой движок. Он простой. Но доку читай на англ =) я русскую пока подзабросил http://pinpie.ru/en/manual/start
    Тебе подойдет standalone вариант
    --- Добавлено ---
    вот сессию надо стартовать как раз в index.php например, на который все запросы идут.
     
  9. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @igordata
    И при регистрации это бессмысленно?
    PHP:
    1. $login = htmlspecialchars($_POST['login']);
    2. $password = htmlspecialchars($_POST['pass']);
    То есть проверили в бд логин и пароль и записывать id пользователя
    PHP:
    1. $_SESSION['user_id'] = $user_id; //вот так
    2. $_SESSION['user_id'] = $rows[0]['user_id'];// Или так
    3. А как правильней?
    все урлы надо вести на одну точку входа. Тогда будет удобно.
    А как так создать одну точку входа?

    И на счет шаблона подскажите его лучше поделить на три файла то-есть head content foot?
    Или сделать одним единым, для всех страниц?
     
  10. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Для чего это делается?
    Если ответишь на этот вопрос, то и на свой ответишь.
     
  11. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @TeslaFeo
    Ну не знаю для удобства, наверное.
     
  12. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    @_ne_scaju_ "для удобства" - это слишком общее понятие.

    Вот смотри, например у тебя сайт на котором 50 страниц.
    И на всех 50 страницах выводятся абсолютно одинаковые шапка, меню и подвал.
    Поэтому ты их оформляешь один раз и подключаешь ко все страницам.
    Если через пол года ты захочешь добавить пункт меню, то тебе не надо будет редактировать все 50 страниц,
    а достаточно отредактировать один подключаемый файл. Понял теперь? :)
     
  13. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @TeslaFeo
    Понял, что лучше разделить на 3 файла)))
    Спасибо.
     
  14. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @TeslaFeo
    А вот такое:
    head, menu, content, foot разделить на файлы это будет норм?
    как ты считаешь?
     
  15. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    тебе виднее. Твой же проект)
     
  16. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @TeslaFeo
    Короче поделю на 4 файла, и дальше буду отталкиваться от них. И с блоками спрятать или показать разобрался, просто надо было сессию создать забыл за нее))) Думал почему не выводит)))
     
  17. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @romach
    Всем привет, доброго времени суток помогите пожалуйста...
    Я почти разобрался с сессиями но не как не могу понять одно...
    Вот смотрите:
    PHP:
    1. //Если я записываю в сессию данные вот так, я могу вывести id пользователя но логин не могу.
    2. $_SESSION['user_id'] = $rows[0]['user_id'];
    3. //А если я в сессии пишу так вообще не чего не выводит.
    4. $_SESSION['user_id'] = $user_id;
    5. //А вот если я добавлю эту строку то логин у меня получается вывести
    6. $_SESSION['login'] = $rows[0]['login']; или так $_SESSION['login']    = $_POST['login'];
    7. echo '$_SESSION['login']';
    Как же правильно эту сессию создавать?
     
  18. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    А как же единая точка входа? В таком случае получится всего 1 файл, в котором уже подключены, либо так описаны все элементы (Шапка,меню, контент, футер).
    --- Добавлено ---
    Тебе уже говорили про дебаг. Что у тебя в $rows[0]['user_id'], $user_id? Судя по тому что ты описал, у тебя в $user_id пусто. а в $rows[0]['user_id'] - твой id.
     
  19. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @SamyRed
    Так мне описали что это не правильно так делать. Ну а так что делать? оставлять rows[0]['user_id'] или в моем случае можно что то по другому сделать?
    А как же единый вход, создам отдельный файл в нем подключу шапку меню контент футер, и сразу же в нем буду запускать сессию.
    Думаю такой вариант хороший)
     
  20. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Всем привет, создаю личный кабинет, ну или пробую создать, появились некие проблемы а собственно загрузка изображения, и ресайз его) Посоветуйте хороший примерчик для этого дела. Надеюсь будут какие либо предложения.
     
  21. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
  22. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @SamyRed
    Спасибо, гуглом умею пользоваться но у меня получается ошибки смотрим на скрине:
    Не пойму у меня так и называется директория но файл грузится не хочет почему то.
    В базу имя записывается и путь а в папку не чего не попадает.
    В чем может быть проблема?
    Все уже делал, ошибка да ошибка, уже должно загрузится было давно, но почему то все да не как не выходит.
    Вот код с оф сайта мануала использую его:
    PHP:
    1. $uploaddir = '/images/avatar/';
    2. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    3.  
    4. echo '<pre>';
    5. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    6.     echo "Файл корректен и был успешно загружен.\n";
    7. } else {
    8.     echo "Возможная атака с помощью файловой загрузки!\n";
    9. }
    10.  
    11. echo 'Некоторая отладочная информация:';
    12. print_r($_FILES);
    13.  
    14. print "</pre>";
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      7,7 КБ
      Просмотров:
      5
    • 2.png
      2.png
      Размер файла:
      2,7 КБ
      Просмотров:
      5
    #347 _ne_scaju_, 8 апр 2017
    Последнее редактирование: 8 апр 2017
  23. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Когда убираю путь из переменной $uploaddir то ошибки исчезают но файл не грузится аааааа.
    И при этом имя в базу записывается.
    В форме я указываю enctype="multipart/form-data" я не знаю почему файлы не создаются(((
     
  24. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Эта папка где? Какой у неё полный путь?
    По ошибке не понятно куда грузит, а если домыслить путь то должен в C:/images/avatar/
     
  25. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @denis01
    Ну если смотреть так то полный путь будет такой:
    D:\openserver\domains\vk.local\images\avatar
    А толку мне от полного пути?
    Даже когда я указываю полный путь меня предупреждают что файл загружен, но в папку не чего не сохраняется, я и хочу понять почему, не чего не сохраняется в папку?