Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » (DLE 9.7) Как из БД получить необработанные значения полей?

(DLE 9.7) Как из БД получить необработанные значения полей?


     искомое значение из бд, необработанное поле из бд, получить поле из бд, узнать значение поля из бд, необработанное поле из базы данных    Все вопросы » Общие вопросы по PHP    3985

вопрос
Всем привет! Сайт функционирует на DLE 9.7. Для некоторых групп пользователей стоит запрет на скачивание файлов с сайта. Но на сайте должна быть еще такая возможность, чтобы определенные файлы могли скачать все посетители сайта. Для этого заведено дополнительное поле "Общедоступный файл" с именем uploads_all_access. Когда просматриваю БД через phpMyAdmin, то в таблице "dle_post" поле "xfields" заполнено таким образом:

file|[attachment=2]


Идея такая. На сайте давать прямую ссылку на этот файл. Начал писать модуль, и первая проблема, с которой столкнулся, это прочесть запись поля "xfields" в том же виде, в котором оно храниться в БД. Написал пока простенький модуль такого содержания:

<?php
/*
=====================================================
Файл: echo_file_uploads_all_access.php
-----------------------------------------------------
Назначение: Выводит прямую ссылку на прикрепленый для общего доступа файл.
              Вызывается так: {include file="engine/modules/echo_file_uploads_all_access.php?id_news_active=ID_новости"}
             В шаблонном файле fullstory.tpl можно вызвать так:
                         {include file="engine/modules/echo_file_uploads_all_access.php?id_news_active={news-id}"}
=====================================================
*/

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

// ищем новость-пост в БД
$my_sql_select = "SELECT * FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.id=".  $id_news_active . ";";
$my_sql_result = $db->query( $my_sql_select );
$row = $db->get_row( $my_sql_result ); // данные указанной новости
$number_attach_file = $row['xfields'];
echo $number_attach_file; // вывод дополнительных полей
?>


Вот тут и проблема. Дело в том, что в результате переменной $number_attach_file присваивается уже обработанное значение. Т.е. гости сайта увидят примерно следующее:

Вы не можете скачать данный файл с нашего сервера

А те группы пользователей, которым разрешено скачивать файлы на сайте, увидят ссылку по которой они смогут скачать файл. Мне же надо в переменную $number_attach_file передать искомое значение поля "xfields" таблицы "dle_post". Т.е. в приведенном выше примере переменной $number_attach_file было присвоено значение "file|[attachment=2]". Как это сделать?

Ответил: nowheremany


1. В доп поле ставьте прямую ссылку.
2. в переменную $number_attach_file не может попадать такое значение, его при выводе просто убирает функция show_attach вроде так

Похожие вопросы

наверх