Добавление кнопки

Добавление кнопки

от Сергей Ломаков -
Количество ответов: 6

Приветствую. Помогите решить задачу:

Необходимо, что бы на главной странице для авторизованных пользователей, например слева в меню была кнопка отправки формы. 

Код формы:

$username = $USER->username;

echo "<form action='http://lprimer.ru' method='post'>";

echo "<input type=hidden name=username value=$username>";

echo "<input type='submit' name='submit' value='OK'>";

echo "</form>";

Как можно реализовать?

Moodle 2.9

В ответ на Сергей Ломаков

Re: Добавление кнопки

от Vadim Tabunshchik -
Изображение пользователя Developers

Смысл кнопки? Просто переход на сайт http://lprimer.ru/, судя по form action='http://lprimer.ru'? удивляюсь

Для ознакомления:

В ответ на Vadim Tabunshchik

Re: Добавление кнопки

от Сергей Ломаков -

Смысл - передать данные с moodle на другой сайт методом POST.

В ответ на Сергей Ломаков

Re: Добавление кнопки

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

пишите плагин типа блок и вставляйте на главную страницу. близкий по функционалу пример тут https://github.com/vadimonus/moodle-block_znanium_com/

В ответ на Vadim Dvorovenko

Re: Добавление кнопки

от Сергей Ломаков -

Спасибо, плагин очень подходит!

Есть только один вопрос по отправке данных (id) на другой сайт

$url = new moodle_url('http://primer.ru', $params);

redirect($url);

В таком случае отправка происходит методом GET. Данные видны в адресной строке браузера.

Как можно отправить методом POST? Не могу найти это в документации..

В ответ на Сергей Ломаков

Re: Добавление кнопки

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Такой функционал поддерживается не всеми браузерами - читайте про Redirect 307. В этом случае вам нужно будет вместо redirect использовать header("HTTP/1.1 307.... и переходить на исходную страницу вам тоже потребуется методом POST.
Но я бы не рекомендовал такое решения - слишком ненадежно.
Лучше допилить другой сайт, чтобы он получив данные по get авторизовал и перенаправлял на ту же страницу, но уже без параметров в заголовке, если это так раздражает. В любом случае, это не защищает от перехвата, если вы хотите, чтобы пользовательские данные не отображались - нужно работать с токенами
В ответ на Vadim Dvorovenko

Re: Добавление кнопки

от Сергей Ломаков -
Другой сайт можно без проблем переделать под прием данных через get. Сейчас там реализовано через Post. 

Вы правы, раздражает больше данные в адресной строке. Хоть они в зашифрованном виде, но все равно хотелось бы их скрыть. Поэтому и хочется использовать POST.

Погуглил по Вашему совету, но там довольно много придется переделывать, а сроки поджимают.

Может Вы еще подскажете, возможно ли как-то вообще заменить redirect (url, params) на другой метод отправки? Что бы этот метод был схож с post. Форму конечно туда не вставишь, но может какие-то ф-ции есть..