Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Напомните v2
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
-
- phpBB 2.0.7
- Сообщения: 566
- Стаж: 7 лет 4 месяца
- Благодарил (а): 278 раз
- Поблагодарили: 65 раз
Напомните v2
Делаю ajax запрос. В обычный файл php по $_POST все проходит нормально. Если же код php сделать в виде функции в классе с routing.yml
и services.yml, то передача данных типа $var = $request->variable('var', 0) почему-то не срабатывает. Может не там задаю переменные? Не совсем понимаю логику объектного программирования. Где можно взглянуть на примеры и должно ли это работать?
и services.yml, то передача данных типа $var = $request->variable('var', 0) почему-то не срабатывает. Может не там задаю переменные? Не совсем понимаю логику объектного программирования. Где можно взглянуть на примеры и должно ли это работать?
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Напомните v2
POST'ом должно срабатывать
Там с GET переменными свои заморочки (т.к. которые через слеш перечисляются - не GET-переменные)
Там с GET переменными свои заморочки (т.к. которые через слеш перечисляются - не GET-переменные)
-
- phpBB 2.0.7
- Сообщения: 566
- Стаж: 7 лет 4 месяца
- Благодарил (а): 278 раз
- Поблагодарили: 65 раз
Re: Напомните v2
Чисто РOST в форумном движке не работает. Для безопасности сделан request. Я наверное непонятно описал вопрос. Если сделать просто php файл, без привязки к форуму, то срабатывает обычным роst-ом. Если сделать php типа форумным (или как правильно) с классом, роутингом и сервисами, то для обработки и передачи данных только request, который у меня не получается сделать рабочим.
-
- Former team member
- Сообщения: 2317
- Стаж: 14 лет 5 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 261 раз
Re: Напомните v2
потому что должно быть как минимум
$var = $this->request->variable('var', 0);
и при этом в конструкторе нужно определить $var = $this->request
Откройте почти любое готовое расширение и гляньте как там прописан request в servise.yml, в контроллере и как все это вызывается из контроллера, который прописан в route.yml
Помощь в ЛС/email только за WM или ЮMoney
-
- phpBB 2.0.7
- Сообщения: 566
- Стаж: 7 лет 4 месяца
- Благодарил (а): 278 раз
- Поблагодарили: 65 раз
Re: Напомните v2
У меня все так и есть. Сокращенно просто написал без $this. Не работает. Вот мой совершенно примерный код:
В скрипте.
Код: Выделить всё
$.post("./test.php", {'login':'1111', 'password':'2222'},
function(data) {
$('#test').html(data);
});
Код: Выделить всё
namespace ...\...\controller;
use Symfony\Component\HttpFoundation\Response;
class main
{
protected $request;
protected $db;
protected $user;
protected $table_prefix;
public function __construct(\phpbb\request\request_interface $request, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $table_prefix)
{
$this->request = $request;
$this->db = $db;
$this->user = $user;
$this->table_prefix = $table_prefix;
}
public function test()
{
$login=$this->request->variable('login', 0);
$pass=$this->request->variable('password', 0);
if($login=="1111" && $pass=="2222"){
echo "Авторизация прошла успешно";
}
else{
echo "Неверно введен логин или пароль";
}
}
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Напомните v2
namespace
странный. Или расширение называется ...
? (Точки могут привести не к тому, к чему хочется)В
services.yml
и в routing.yml
что у вас?-
- phpBB 2.0.7
- Сообщения: 566
- Стаж: 7 лет 4 месяца
- Благодарил (а): 278 раз
- Поблагодарили: 65 раз
Re: Напомните v2
То я так скрыл название ))
Дальше точки и ххх тоже сокрытие.
Код: Выделить всё
xxx.xxx.xxx:
class: ...\...\controller\main
arguments:
- @request
- @dbal.conn
- @user
- %core.table_prefix%
Код: Выделить всё
xxx.xxx.xxx:
pattern: /test.php
defaults: { _controller: xxx.xxx.xxx:test }
-
- Поддержка
- Сообщения: 12451
- Стаж: 12 лет 9 месяцев
- Благодарил (а): 166 раз
- Поблагодарили: 2479 раз
Re: Напомните v2
Код: Выделить всё
xxx.xxx.xxx:
class: ...\...\controller\main
arguments:
- '@request'
- '@dbal.conn'
- '@user'
- '%core.table_prefix%'
Отправлено спустя 1 час 19 минут 41 секунду:
Ещё причина может быть в том, что отправляется строка, а в php ожидается число (второй параметр 0)
Код: Выделить всё
$login=$this->request->variable('login', '');
$pass=$this->request->variable('password', '');
И как другие страницы расширений работают, без
app.php
в адресе?-
- phpBB 2.0.7
- Сообщения: 566
- Стаж: 7 лет 4 месяца
- Благодарил (а): 278 раз
- Поблагодарили: 65 раз
Re: Напомните v2
Менял и так и так. Эффекта нет.
Отправлено спустя 29 минут 44 секунды:
Все, допер! Всем спасибо! Забыл про return в контроллере.