Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 24 Ответов
  • 2583 Просмотров
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Приветствую всех форумчан!
Помогите плз начинающему)
Есть сайт на 4 версии, появилась необходимость использовать свой скрипт на php, размещен он в папке в корне сайта, на сайт выводится как wrapper и ссылка на эту папку, доступ к этому всему делу должен быть только у юзеров, на сайте выставил права всё отлично, но прямая ссылка на папку доступна и можно зайти в обход Joomla... как сделать так чтобы было нельзя, а только через сайт Joomla с авторизацией?
Заранее благодарен всем!
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: PHP скрипт для авторизованных
« Ответ #1 : 12.12.2023, 09:50:19 »
Подтянуть классы Joomla (посмотрите как подключается в индексе корневом, сделайте так же, только без $app->execute();)
Прочитать юзера через $user = Factory::getUser() и проверить $user->id - если больше нуля, значит юзер авторизован.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #2 : 12.12.2023, 10:32:16 »
Подтянуть классы Joomla (посмотрите как подключается в индексе корневом, сделайте так же, только без $app->execute();)
Прочитать юзера через $user = Factory::getUser() и проверить $user->id - если больше нуля, значит юзер авторизован.
Спасибо за наводку, но я в этих делах новичок, буду пробовать разобраться, но в корневом индексе у меня только такое:
Код
<?php

/**
 * @package    Joomla.Site
 *
 * [member=126442]copyright[/member]  (C) 2005 Open Source Matters, Inc. <https://www.joomla.org>
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

// NOTE: This file should remain compatible with PHP 5.2 to allow us to run our PHP minimum check and show a friendly error message

// Define the application's minimum supported PHP version as a constant so it can be referenced within the application.
define('JOOMLA_MINIMUM_PHP', '7.2.5');

if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) {
    die(
        str_replace(
            '{{phpversion}}',
            JOOMLA_MINIMUM_PHP,
            file_get_contents(dirname(__FILE__). '/templates/system/incompatible.html')
        )
    );
}

/**
 * Constant that is checked in included files to prevent direct access.
 * define() is used rather than "const" to not error for PHP 5.2 and lower
 */
define('_JEXEC', 1);

// Run the application - All executable code should be triggered through this file
require_once dirname(__FILE__). '/includes/app.php';
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: PHP скрипт для авторизованных
« Ответ #3 : 12.12.2023, 11:30:09 »
Посмотрите тут:
Спойлер
[свернуть]
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #4 : 12.12.2023, 12:14:37 »
Спасибо!
Я правильно понимаю, что этот код мне нужно добавить в мой index.php?
добавляю в начале файла:
Код
<?php $_SERVER['REQUEST_URI'] = '...'; $_SERVER['HTTP_HOST'] = '...'; define('_JEXEC', 1); include_once dirname(__DIR__).'/api/includes/api.php'; $db = \Joomla\CMS\Factory::getDbo();
ничего не меняется, скрипт выполняется
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: PHP скрипт для авторизованных
« Ответ #5 : 12.12.2023, 12:29:26 »
ничего не меняется, скрипт выполняется
Там описание подключение классов Joomla, а не решение вашей задачи. Перечитайте первый пост.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #6 : 12.12.2023, 12:34:25 »
Там описание подключение классов Joomla, а не решение вашей задачи. Перечитайте первый пост.
Понял, начинаю проверять юзера, получаю ошибку 500
Код
<?php
$_SERVER['REQUEST_URI'] = '...';
$_SERVER['HTTP_HOST'] = '...';
define('_JEXEC', 1);
include_once dirname(__DIR__).'/api/includes/api.php';
$db = \Joomla\CMS\Factory::getDbo();

use Joomla\CMS\Factory;
$user = Factory::getUser()
if ($user->guest) {
        echo "<p>You must login to see the content.</p>";
} else {
        echo "<p>You are logged in, you can see the content.</p>";
}

где то логи можно посмотреть?
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #7 : 12.12.2023, 12:36:24 »
логи нашел)
ругается на if ($user->guest) {
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: PHP скрипт для авторизованных
« Ответ #8 : 12.12.2023, 14:54:16 »
; надо ставить после $user = Factory::getUser()
Либо пишите полный текст ошибки
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #9 : 12.12.2023, 15:11:56 »
; надо ставить после $user = Factory::getUser()
Либо пишите полный текст ошибки
спасибо! не заметил такой глупой ошибки  crazy!
теперь подскажите пожалуйста, как спрятать контент не авторизованным?
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #10 : 12.12.2023, 15:22:50 »
не работает это, не зависимо авторизован или нет выводит: You must login to see the content
если делаю как в первом сообщении: if ($user->0) { то ошибка: Got error 'PHP message: PHP Parse error:  syntax error, unexpected '0' (T_LNUMBER), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /var/www/
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #11 : 12.12.2023, 15:27:33 »
if ($user->id>0) {
вот так заработало, но тоже самое теперь говорит: You are logged in, you can see the content не зависимо от авторизации...
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: PHP скрипт для авторизованных
« Ответ #12 : 12.12.2023, 15:54:03 »
да, потому что еще и к сессии той же подключиться надо. готового ответа как это сделать - у меня нет.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: PHP скрипт для авторизованных
« Ответ #13 : 13.12.2023, 19:13:07 »
А не проще использовать модуль произвольного HTML кода, создать для него отдельный макет вывода, в котором прописать этот PHP скрипт.
На странице опубликовать модуль с указанием созданного макета, доступ к странице\модулю закрывать для пользователей штатными средствами.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #14 : 14.12.2023, 08:06:10 »
А не проще использовать модуль произвольного HTML кода, создать для него отдельный макет вывода, в котором прописать этот PHP скрипт.
На странице опубликовать модуль с указанием созданного макета, доступ к странице\модулю закрывать для пользователей штатными средствами.
я так пробовал, но не получалось, выводилась по моему пустая страница, а в PHP я не силен, хотя скрипт в принципе простой...
а что значит создать отдельный макет вывода?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: PHP скрипт для авторизованных
« Ответ #15 : 14.12.2023, 08:35:46 »
а что значит создать отдельный макет вывода?

Создать пустой файл \templates\шаблон\html\mod_custom\customcode.php, в него запихнуть нужный PHP скрипт, опубликовать модуль произвольного HTML кода указав в настройках "доп параметры" как макет этот customcode

Если сам скрипт не завязан на каких-либо путях\подключении библиотек - должно с полпинка заработать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #16 : 14.12.2023, 09:39:24 »
спасибо за наводку!
в таком варианте уже что-то, но видимо как Вы сказали из-за путей работает не так.
у меня этот скрипт сканирует и выводит список папок с картинками, которые постоянно обновляются, генерирует список ссылок вида ./index.php?dir=имя папки и при переходе по ссылке открывается слайдшоу с этими картинками.
в предложенном Вами варианте генерируется ссылка http://домен/?dir=имя папки и при переходе понятное дело ничего нужного не открывается...
Мне было бы достаточно, чтобы скрипт просканировал одну конкретную папку и запустил слайд-шоу, ниже приложу код, можете помочь пожалуйста?
Код
<!DOCTYPE html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="base.css">
</head>
<body>
<?php
if(!isset($_GET['dir'])){
  echo '<ul>';
  $dir    = './';
  $files = array_filter(scandir($dir),"is_dir");
  foreach($files as $f) {
    if (!preg_match("/^\./",$f)) {
      $childfiles = scandir($f);
      $count = 0;
      foreach($childfiles as $c) {
        if (preg_match("/image|video/",mime_content_type($f.'/'.$c))){
          $count++;
        };
      }
      echo '<li><a href="index.php?dir='.$f.'">'.$f.' ['.$count.']</li>';
    }
  }
  echo '</ul>';
} else {
  if (preg_match('/^\.|\/+|~/',$_GET['dir'])){
    die('only direct child folders');
  }
  $all = array();
  $dir = './'.$_GET['dir'];
  if (!is_dir($dir)) {
    die('Cannot find the folder, sorry');
  }
  $files = scandir($dir);
  foreach($files as $f) {
    if (preg_match("/image|video/",mime_content_type($dir.'/'.$f))){
      array_push($all,$f);
    }
  }
?>
<div id="slideshow-container"><>
<script>
  let slideshow = {
    container: '#slideshow-container',
    media: <?php echo json_encode($all);?>,
    folder: '<?php echo urlencode(str_replace('index.php?','',$_GET['dir']))?>/',
    autoplay: 'no',
    endless: 'yes'
  }
</script>
<script src="slideshow.js"></script>
<?php } ?>
</body>
</html>
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: PHP скрипт для авторизованных
« Ответ #17 : 14.12.2023, 21:52:30 »
Мне было бы достаточно, чтобы скрипт просканировал одну конкретную папку и запустил слайд-шоу
Для этого есть множество других расширений, к примеру я использую плагин Simple Image Gallery - в материал вставляете тег {gallery}myphotos{/gallery} (путь идет от корня images) и всё. Создаются кешированные превьюшки, генерится слайдшоу или что угодно в каком угодно формате (списком\слайдером и тд - подключаете свои скрипты\стили и меняете шаблон вывода).
Пример - https://bcks.su/section/dance/tantsevalnyj-kollektiv-pugovki

Ну и дальше работать с правами доступа к материалу с этим тегом штатно.

Если самодельно - то самый простой скрипт вывода картинок из галереи будет примерно таким без всяких заморочек.
Код
$dirname = './images/gal/';
$images = glob($dirname.'*.jpg');

foreach ($images as $image) {
echo '<img src="'.$image.'" />';
}


Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #18 : 15.12.2023, 12:09:45 »
нет стандартные не подходят, пробовал много разных.
у меня не очень стандартная задача) у меня 4 папки по 1.5к картинок, которые меняются каждую минуту, новая добавляется последняя удаляется.
есть у меня рабочий скрипт он сканирует от корня и выдает список url на эти папки с изображениями, а мне бы сделать чтобы я указал из какой именно папки брать изображения и запускать скрипт.
так же он из двух компонентов: бэк на PHP и сам скрипт, если бы его упросить и поместить в один файл, чтобы я его мог сделать модуль произвольного HTML кода, точнее 4 таких модуля для разных папок и средствами Joomla уже управлял бы доступом...
index.php
Код
<!DOCTYPE html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="base.css">
</head>
<body>
<?php
if(!isset($_GET['dir'])){
  echo '<ul>';
  $dir    = './';
  $files = array_filter(scandir($dir),"is_dir");
  foreach($files as $f) {
    if (!preg_match("/^\./",$f)) {
      $childfiles = scandir($f);
      $count = 0;
      foreach($childfiles as $c) {
        if (preg_match("/image|video/",mime_content_type($f.'/'.$c))){
          $count++;
        };
      }
      echo '<li><a href="index.php?dir='.$f.'">'.$f.' ['.$count.']</li>';
    }
  }
  echo '</ul>';
} else {
  if (preg_match('/^\.|\/+|~/',$_GET['dir'])){
    die('only direct child folders');
  }
  $all = array();
  $dir = './'.$_GET['dir'];
  if (!is_dir($dir)) {
    die('Cannot find the folder, sorry');
  }
  $files = scandir($dir);
  foreach($files as $f) {
    if (preg_match("/image|video/",mime_content_type($dir.'/'.$f))){
      array_push($all,$f);
    }
  }
?>
<div id="slideshow-container"></div>
<script>
  let slideshow = {
    container: '#slideshow-container',
    media: <?php echo json_encode($all);?>,
    folder: '<?php echo urlencode(str_replace('index.php?','',$_GET['dir']))?>/',
    autoplay: 'no',
    endless: 'yes'
  }
</script>
<script src="slideshow.js"></script>
<?php } ?>
</body>
</html>

slideshow.js
Код
if (typeof slideshow === 'object') {
let styles = document.createElement('link');
styles.rel="stylesheet";
styles.href="slideshow.css";
document.head.appendChild(styles);
document.querySelector(slideshow.container).innerHTML = `
<div class="slideshow-info"></div>
<div class="slideshow-docs">Arrow keys go back/forward
</div>
<button id="slideshow-next">в–¶</button>
<button id="slideshow-prev">в—Ђ</button>
<button id="slideshow-autoplay"></button>
<div class="slideshow-wrapper">
</div>
`;
const out = document.querySelector('.slideshow-info');
const wrapper = document.querySelector('.slideshow-wrapper');
const next = document.querySelector('#slideshow-next');
const prev = document.querySelector('#slideshow-prev');
const autoplay = document.querySelector('#slideshow-autoplay');
let hash = 'counter' + slideshow.folder;
let counter = slideshow.media.length-1;
let autoincrease = slideshow.autoplay === 'no' ? false : true;
let restart = slideshow.endless === 'no' ? false : true;
let first = false;
let last = false;
let timeout = false;
let speed = slideshow.speed || 40;
let all = slideshow.media.length
let direction = -1;

function validatecounter() {
  autoplay.innerText = autoincrease ? "в–¶пёЏ" : 'вЏё';
  if (restart) {
    if (counter < 0) counter = all - 1;
    counter = counter % all;
  } else {
    if (counter <= 0) {
      counter = 0;
    }
    if (counter === all) counter = all - 1;
  }
  if (!restart) {
    first = counter === 0;
    last = counter === all - -1;
/*      if (counter === 0) {
      prev.classList.add('hidden');
    } else {
      prev.classList.remove('hidden');
    }
    if (counter === all - 1) {
      next.classList.add('hidden');
      autoplay.classList.add('hidden');
    } else {
      next.classList.remove('hidden');
      autoplay.classList.remove('hidden');
    } */
  }

  show();
}
function show() {
  clearTimeout(timeout);
  out.innerText = `${slideshow.media[counter]} ${counter+1}/${all}`;
  wrapper.innerText = '';
  wrapper.dataset.loaded = 'false';

  if(slideshow.media[counter].endsWith('.mp4')) {
    wrapper.style.backgroundImage = ``;
    let vid = document.createElement('video');
    vid.setAttribute('loop','true');
    vid.setAttribute('autoplay','true');
    vid.setAttribute('src', slideshow.folder + slideshow.media[counter]);
    if (wrapper.dataset.loaded === 'false') {
      vid.addEventListener('canplaythrough', ev => {
        wrapper.appendChild(vid);
        loaded();
      },{passive:true, once:true});
    }
  } else {
    wrapper.innerText = ' ';
    let url = slideshow.folder + slideshow.media[counter];
    let i = new Image();
    i.src = url;
    i.onload = function() {
      wrapper.style.backgroundImage = `url(${url})`;
      loaded();
    }
    i.onerror = function() {
      wrapper.innerText = 'Error loading image ' + url;
      loaded();
    }
  }
}
function loaded() {
  wrapper.dataset.loaded = 'true';
  if (autoincrease && !last) {
    timeout = window.setTimeout(function(){
      counter += direction;
      validatecounter();
    },speed);
  }
}
function nextslide() {
  if(!last) {
    counter--;
    autoincrease = false;
    validatecounter();
  }
};
function prevslide() {
  if(!first) {
    counter++;
    autoincrease = false;
    validatecounter();
  }
};
function toggleauto() {
  autoincrease = !autoincrease;
  validatecounter();
};
next.addEventListener('click', nextslide);
prev.addEventListener('click', prevslide);
autoplay.addEventListener('click',toggleauto);
document.addEventListener('keyup', ev => {
  ev.preventDefault();
  if (ev.key === "ArrowRight") { nextslide(); }
  if (ev.key === "ArrowUp") { history.back(); }
  if (ev.key === "ArrowLeft") { prevslide(); }
  if (ev.key === " ") { toggleauto(); }
});
validatecounter();
} else {
  console.error('Please define a slideshow object first');
  document.body.innerText = "вљ пёЏ Can't find slideshow object"
}
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: PHP скрипт для авторизованных
« Ответ #19 : 16.12.2023, 15:52:33 »
А где папка находится? Чтобы не было проблем с путями, лучше используйте константы.

К примеру:
Код
$dir  = JPATH_ROOT . 'my_custom_images_folder';

И еще пару замечаний:
1) Не совсем безопасно принимать $_GET['dir'] без фильтрации
2) head, body эти HTML теги не нужны в коде, если Вы используете как модуль, то это встраивается на конкретной странице в текущей позиции уже в указанную верстку
3) если принципиально, чтобы открывался скрипт напрямую по указанному файлу (типо site.ru/modules/mod_blabla/custom.php, то стоит погуглить примеры с отключением:
Код
defined('_JEXEC') or die('Restricted access');
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Re: PHP скрипт для авторизованных
« Ответ #20 : 16.12.2023, 15:55:30 »
ну и в любом случае, если файлы доступны физически и не закрыты через htaccess, то по ссылке они будут доступны, вне зависимости от прав доступа. Для этих целей надо использовать что-то типо Jdownloads либо писать свой кастомный компонент с похожей логикой
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #21 : 21.12.2023, 10:13:59 »
А где папка находится? Чтобы не было проблем с путями, лучше используйте константы.
папка в корне
*

lexmakh

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: PHP скрипт для авторизованных
« Ответ #22 : 21.12.2023, 10:16:49 »
ну и в любом случае, если файлы доступны физически и не закрыты через htaccess, то по ссылке они будут доступны, вне зависимости от прав доступа. Для этих целей надо использовать что-то типо Jdownloads либо писать свой кастомный компонент с похожей логикой
это понятно, прямые ссылки на файлы пусть будут, задача чтобы скрипт мог выполняться только авторизованными.
а что дает Jdownloads? он просто делает htaccess в этой папке, но тогда я вообще не имею доступа к этим файлам...
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
Re: PHP скрипт для авторизованных
« Ответ #23 : 22.12.2023, 09:50:33 »
Вам в начале темы правильно подсказали. Попробуйте следующий код, проверил, работает. Только у меня файл в корне сайта. У вас папка, измените пути в первых двух if.
Код
<?php

const _JEXEC = 1;

if (file_exists(__DIR__ . '/defines.php')) {
    require_once __DIR__ . '/defines.php';
}

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', __DIR__);
    require_once JPATH_BASE . '/includes/defines.php';
}

// Get the framework.
require_once JPATH_BASE . '/includes/framework.php';

// Boot the DI container
$container = \Joomla\CMS\Factory::getContainer();

$container->alias('session.web', 'session.web.site')
    ->alias('session', 'session.web.site')
    ->alias('JSession', 'session.web.site')
    ->alias(\Joomla\CMS\Session\Session::class, 'session.web.site')
    ->alias(\Joomla\Session\Session::class, 'session.web.site')
    ->alias(\Joomla\Session\SessionInterface::class, 'session.web.site');

$app = $container->get(\Joomla\CMS\Application\SiteApplication::class);

// Set the application as global app
\Joomla\CMS\Factory::$application = $app;

$app->createExtensionNamespaceMap();


/////////// your code: ///////////

$user = \Joomla\CMS\Factory::getUser();

if($user->guest) {
    $app->redirect('/');
}

echo 'Дальнейшее выполнение скрипта для авторизованных.';

exit;
Веб-разработка: заказ. Только новая разработка.
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: PHP скрипт для авторизованных
« Ответ #24 : 22.12.2023, 10:34:03 »
Вам в начале темы правильно подсказали. Попробуйте следующий код, проверил, работает. Только у меня файл в корне сайта. У вас папка, измените пути в первых двух if.

Это не поможет, т.к. сессия будет другая у скрипта и юзер там окажется неавторизован.
Вот была похожая тема, но там Joomla постарее:
Передача сессии стороннему скрипту
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает скрипт внутри статьи Joomla 5

Автор creative3d

Ответов: 11
Просмотров: 1319
Последний ответ 30.01.2024, 07:52:29
от creative3d
Как подключить Joomla 4 framework в свой php скрипт?

Автор SalityGEN

Ответов: 6
Просмотров: 2766
Последний ответ 15.02.2023, 11:32:57
от fsv