Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывести поле из базы для зарегистрированного польз 
:(
    Опции темы
Tigrus
Дата 18.9.2015, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



Здравствуйте. Есть строка в шаблоне статьи {$author}

Если статью разместил зарегистрированный пользователь, то на этом месте выводится его имя-логин ссылкой на профиль. Если незарег. - то именем без ссылки.

Код

$author = $itemset['author']['on'] ? ($settings['users'] && $data['user'] ? 
"<a href=\"".BASEDIR."users/profile.php?id=".$data['user']."\">".$data['name']."</a>"
.(USER && $settings['users'] > 2 ? " <a href=\"".BASEDIR."messages/send.php?user=".$data['user']."\">
<img src=\"".$design."img/pm.gif\" alt=\"\" title=\"".$lng['sendMsg']."\" class=\"aimg\"></a>" : "") : $data['name']) : "";


Сам логин выводится из таблицы статей, а не пользователей. Если юзер незареган и размещает статью, то его имя записывается в эту таблицу в столбец name, а также записывается в этот столбец имя-логин если публикует зарегистрированный юзер.

Вопрос в следующем: в другой таблице users где также записан имя-логин в столбец name , у меня есть еще один столбец, в котором содержится адрес .png иконки, и ее нужно вывести на странице статьи рядом с именем автора smile   Как это можно прописать, у меня не хватает мозгов понять, как запросить эту иконку из таблицы пользователей на страницу статьи? Заранее благодарю. smile 

Это сообщение отредактировал(а) Tigrus - 18.9.2015, 16:35
PM MAIL   Вверх
Xenox
Дата 18.9.2015, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



Для этого обычно используются JOIN`ы в запросах, скинь запрос бд составим запрос что бы выбор был из 2х таблиц
Ну или если хочешь можешь попробовать погуглить тебе скорее всего подойдет LEFT JOIN


Это сообщение отредактировал(а) Xenox - 18.9.2015, 17:45
PM   Вверх
Tigrus
Дата 18.9.2015, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



Xenox, спасибо, что откликнулись.

Вот:

Код

$data = dbarray(dbquery("SELECT ti.*, parent, urlname, tc.name AS catname,
submit FROM ".DBPREF."$Item ti LEFT JOIN ".DBPREF.$Item."_cats tc ON tc.id=ti.cat 
WHERE ti.$col='$value' AND ".access($Right)));


и может это еще нужно, идёт выше:

Код

$itemset = unserialize(dbresult(dbquery("SELECT content FROM ".DBPREF."settings 
WHERE name='$Item'"), 0));

PM MAIL   Вверх
_zorn_
Дата 19.9.2015, 03:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Вижу здесь потенциалный SQL injection
Откуда берется $Item и $value ?

Еще и имена таблиц с колонками из переменных...
Руки бы оторвал за такую вакханалию  smile 
PM MAIL   Вверх
Tigrus
Дата 19.9.2015, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



_zorn_, я не понял, код неправильный? Я брал его из чистого файла движка.
PM MAIL   Вверх
_zorn_
Дата 19.9.2015, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Я не говорил что он не правильный. Но по нему вообще ничего не понятно. Плюс куча вещей из за которых пхп програмистов считают быдлокодерами  smile 
Вобщем код плохой.

Знаешь что такое самодокументируемость кода ?
Это когда смотришь на строчку и точно знаешь что она делает. У тебя же от кучи входных параметров зависит результат...

ЗЫ. Если это движок чего то, что смотрит наружу, советую провести аудит. Мне кажется тут даже особо не напрягаясь можно кучу дыр найти  smile 

Это сообщение отредактировал(а) _zorn_ - 19.9.2015, 06:33
PM MAIL   Вверх
Tigrus
Дата 19.9.2015, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



_zorn_, это код движка si8ng-cms. Я не думаю, что создателю есть смысл делать плохой или подозрительный код.
PM MAIL   Вверх
Xenox
Дата 21.9.2015, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



Цитата(_zorn_ @ 19.9.2015,  06:25)
ЗЫ. Если это движок чего то, что смотрит наружу, советую провести аудит. Мне кажется тут даже особо не напрягаясь можно кучу дыр найти  smile

Согласен, здесь может быть куча дыр

Теперь по поводу запроса приведи еще структуру таблиц, т.к. у тебя здесь не понятно из какой таблицы берется автор
PM   Вверх
Tigrus
Дата 21.9.2015, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.9.2015

Репутация: нет
Всего: нет



в таблицах нет строки author. Как я уже сказал выше берется name. а author "генерируется" в зависимости от того выводится в конечном итоге имя автора ссылкой на его профиль или просто выводится name из таблицы, если автор незарегистрирован.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.