Перейти к содержимому


Определение текущего пользователя


Сообщений в теме: 14

#1 Пользователь

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 13 Октябрь 2010 - 13:51

У меня бета версия 1.9.0, в ней нет автоматического определения текущего пользователя (в типе "пользователь").

Пытаюсь обойти этот баг с помощью вычислений
Вот строка запроса "SELECT id FROM ".USERS_TABLE" и в ней нужно дописать "WHERE id = 'current_user' "

Как программно определить текущего пользователя?

#2 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 812 сообщений
  • Пол:Мужчина

Отправлено 13 Октябрь 2010 - 14:03

В какой месте нет определения текущего пользователя? Я имею ввиду напоминания, фильтры.

#3 Пользователь

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 13 Октябрь 2010 - 14:16

Нет, там все есть (поменялось с "текущий" на "current" это я заметил), просто сотрудники хотят чтобы не нужно было выбирать свою фамилию из списка, а ставилось по умолчанию. см. screen

Прикрепленные изображения

  • Прикрепленное изображение: screen1.JPG


#4 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 812 сообщений
  • Пол:Мужчина

Отправлено 13 Октябрь 2010 - 15:08

В 1.9.1. этого бага не будет

#5 Пользователь

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 13 Октябрь 2010 - 15:16

Вы не ответили мне на вопрос насчет определения узера?
Если это закрытая информация :ph34r: , тогда будем ждать 1.9.1.
А когда будет 1.9.1?

#6 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 19 Февраль 2011 - 13:46

И тем не менее, как определить текущего пользователя?
есть запрос
$sqlQuery = "UPDATE cb_data83 SET `status`='1' WHERE `u1`='0' AND `f902`={current}";
mysql_query($sqlQuery);
смысл запроса - архивирует все просмотренные записи в таблице, относящиеся к текущему пользователю
не работает
запрос выполняется в "Дополнительных действиях"

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Февраль 2011 - 09:30

В коде PHP использовать шаблон "{current}" нельзя, он действует только в условиях фильтров и напоминаний. В вычислениях необходимо использовать переменную $user['id']:

$sqlQuery = "UPDATE cb_data83 SET `status`='1' WHERE `u1`='0' AND `f902`=".$user['id'];

#8 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 21 Февраль 2011 - 12:10

Спасибо, все работает.

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#9 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 15 Октябрь 2011 - 20:28

насколько я понимаю $user - это глобальная переменная
как получить доступ к глобальным переменным?
в частности мне нужно определить текущего пользователя в своей функции php в файле, а не в вычислениях
быть может у вас есть функция для определения текущего пользователя?

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Октябрь 2011 - 09:38

Что за файл то? Он запускается отдельно, в адресной строке браузера, или каким то образом подключается к программе?

#11 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 17 Октябрь 2011 - 16:52

Просмотр сообщенияРазработчик (17.10.2011, 9:38) писал:

Что за файл то? Он запускается отдельно, в адресной строке браузера, или каким то образом подключается к программе?
отдельно
его запускает javascript
если есть какая-либо функция для определения текущего пользователя
то мне нужно имя модуля и имя функции

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Октябрь 2011 - 18:12

Если он запускается отдельно - то понятие текущего пользователя в нем вообще говоря не совсем корректно, т.к. для этого должна быть предварительная авторизация, в начале выполнения файла. Тем более там не может быть никакой переменной $user, если вы только сами ее не создаете, или не получаете через подключение другого файла. Но тем не менее, у вас есть 2 варианта:

1. В начале вашего скрипта должно быть подключение файла common.php из корня программы. Тогда будет пройдена авторизация, и можно будет использовать переменную $user.

2. Если при последнем входе в программу была включена опция "запомнить вход", то вы можете получить логин сохраненного входа через "суперглобальную" переменную из куки: $_COOKIE['saved_login']

#13 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 17 Октябрь 2011 - 19:13

Просмотр сообщенияРазработчик (17.10.2011, 18:12) писал:

Если он запускается отдельно - то понятие текущего пользователя в нем вообще говоря не совсем корректно, т.к. для этого должна быть предварительная авторизация, в начале выполнения файла. Тем более там не может быть никакой переменной $user, если вы только сами ее не создаете, или не получаете через подключение другого файла. Но тем не менее, у вас есть 2 варианта:

1. В начале вашего скрипта должно быть подключение файла common.php из корня программы. Тогда будет пройдена авторизация, и можно будет использовать переменную $user.

2. Если при последнем входе в программу была включена опция "запомнить вход", то вы можете получить логин сохраненного входа через "суперглобальную" переменную из куки: $_COOKIE['saved_login']
мой скрипт лежит в папке вне основной папки программы
при подключении common.php возникают ошибки связанные с относительными путями файлов, которые он запрашивает
прописывание дополнительных путей в include_path проблемы не решает
как быть?

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Октябрь 2011 - 19:20

Переместите его в основную папку или используйте 2-й вариант. Других способов подключения common.php нет. Все исполняемые в программе файлы должны лежать в корне.

#15 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 17 Октябрь 2011 - 19:29

Просмотр сообщенияРазработчик (17.10.2011, 19:20) писал:

Переместите его в основную папку или используйте 2-й вариант. Других способов подключения common.php нет. Все исполняемые в программе файлы должны лежать в корне.
Спасибо. Вариант с перемещением не совсем удачен - при обновлении версии можно потерять все файлы.
В качестве решения выбрал следующее:
поскольку php запускает javascript из тела основной программы, он и передает текущего пользователя элементарно выбирая его из верхней строки (ФИО пользователя), а пхп-скрипт уже на основании ФИО получает ID из базы
Несколько коряво, но работает

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.






Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных