Методы $ _GET и $ _POST не работают на Joomla

Страница запускается при нажатии на кнопку отправки формы, но я не могу вставить данные в форму. Код php и html работают, если они загружены на сервер как файл вне Joomla, но код не работает, если код html загружается в статьи Joomla (внутри базы данных). если я напишу что-то случайное с помощью эха, оно будет отображаться правильно

PHP код

   <php
        $codice = $_GET["sblocca"];
        echo $codice;

    ?>

HTML код

<form action = "/home/arioxurl/public_html/scriptPHP/ChiusuraPrestazione/generaFattura.php" class = "form-horizontal" method = "get">
<fieldset>


<!-- Form Name -->
<legend>Chiusura prestazione</legend>


<!-- Text input-->
<div class = "form-group">
 <label class = "col-md-4 control-label" for = "sblocca">inserisci il codice a sei cifre per sbloccare il pagamento</label> 
 <div class = "col-md-4">
 <input  name = "sblocca" type = "text" placeholder = "XXXXXX" class = "form-control input-md" required = "">

 <>
<>


<!-- Text input-->
<div class = "form-group">
 <label class = "col-md-4 control-label" for = "NumFatt">inserisci il numero della fattura, deve essere incrementato di uno rispetto all'ultima generata (anche all'esterno di dashup)</label> 
 <div class = "col-md-4">
 <input id = "NumFatt" name = "NumFatt" type = "text" placeholder = "numero fattura es: 312" class = "form-control input-md">

 <>
<>


<!-- Multiple Checkboxes -->
<div class = "form-group">
 <label class = "col-md-4 control-label" for = "Conferma"></label>
 <div class = "col-md-4">
 <div class = "checkbox">
 <label for = "Conferma-0">
 <input type = "checkbox" name = "Conferma" id = "Conferma-0" value = "1">
 Conferma numero fattura
 </label>
 <>
 <>
<>


<!-- Button -->
<div class = "form-group">
 <label class = "col-md-4 control-label" for = "Download"></label>
 <div class = "col-md-4">
<button name = "annulla" class = "btn btn-info">Annulla</button>
 <input type = "submit" value = "Sblocca pagamento e scarica fattura" class = "btn btn-primary">
 <>
<>


</fieldset>
</form>

Всегда сначала обращайтесь к руководству: docs.joomla.org/Retrieving_request_data_using_JInput Затем, когда вам понадобится поддержка Joomla, изучите Joomla Stack Exchange. Это то место, куда команда Joomla хочет, чтобы вы обратились за специальной поддержкой Joomla. Скорее всего, вы найдете уже существующую страницу, объясняющую, как получить доступ к суперглобальным переменным. После изучения вашей проблемы в JSE, если вы не нашли существующего решения, опубликуйте вопрос в этой сети.

mickmackusa 27.09.2018 02:29

В поиске Google: joomla how to access $_GET data site:joomla.stackexchange.com: joomla.stackexchange.com/q/14275/12352, joomla.stackexchange.com/q/15515/12352, joomla.stackexchange.com/q/23096/12352, joomla.stackexchange.com/q/937/12352

mickmackusa 27.09.2018 02:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
301
2

Ответы 2

Прямой доступ к данным с помощью $ _GET и $ _POST небезопасен, и данные необходимо отфильтровать перед вставкой в ​​базу данных. Не говоря уже о том, что мы должны понимать, что Joomla имеет собственный способ извлечения данных из формы. Вы должны использовать JInput для доступа к своим данным. Сначала вам нужно вызвать класс JInput таким образом

$jinput = JFactory::getApplication()->input;

Это способ получить любую переменную

$variable = $jinput->get('varname', 'default_value', 'filter');

Фильтр необходим для обеспечения безопасности вашего кода, чтобы при вводе букв и цифр никто по ошибке не вводил специальные символы или не выполнял sql-инъекция. Есть несколько фильтров и список можно посмотреть здесь https://docs.joomla.org/Retrieving_request_data_using_JInput.

Вы также должны понимать, как создаются и отправляются формы в Joomla. Вы можете перейти по этой ссылке, чтобы узнать больше https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Adding_a_front-end_form.

$ _GET всегда должен работать, независимо от того - если вы не видите значения, это означает, что страница, которую вы проверяете в массиве $ _GET, является другой страницей (что обычно происходит, когда вы проверяете массив $ _GET на отправленная страница). $ _POST также всегда должен работать, но в большинстве случаев отправка формы хранится во вложенном массиве $ _POST.

Как уже упоминалось, вы должны использовать функцию Joomla для получения значений $ _GET и $ _POST, в основном потому, что эти функции более безопасны.

Другие вопросы по теме