php - 方法 $_GET 和 $_POST 在 Joomla 上不起作用
问题描述
该页面通过单击表单的提交按钮执行,但我无法将数据插入到表单中。如果 php 和 html 代码像 Joomla 外部的文件一样上传到服务器上,则它们可以工作,但如果 html 代码被上传到 Joomla 文章(数据库内部)上,则代码不起作用。如果我用 echo 随机写一些东西,它会正确显示
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>
解决方案
使用 $_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。
推荐阅读
- jquery - 在 Wordpress 中单击按钮添加类并删除
- electron - 在监视器边框处附加窗口 [电子]
- docker - 如何将 HTML 页面添加到自托管 docker 注册表?
- python - 自定义 Seaborn Barplot 中使用的“色调”颜色
- arrays - 如何处理具有多个值的单一名称输入的输入表单?
- java - 查找标准偏差的Java方法
- python - 我已经安排了一个 python 文件通过 cron 作业在 Linux 中运行,所以只有广播消息来了,但用户输入没有出现
- javascript - 如何添加 eslint 规则以强制仅返回的函数显式返回类型?
- angular - 订阅完成后如何执行操作
- c++ - 在 C++ 中使用 Boost?