在文章中提交 PHP 表单时出现 Joomla 2.5 404 错误

Posted

技术标签:

【中文标题】在文章中提交 PHP 表单时出现 Joomla 2.5 404 错误【英文标题】:Joomla 2.5 404 Error When Submitting PHP Form inside an Article 【发布时间】:2012-08-01 04:03:28 【问题描述】:

我制作了自己的模块来将 php 表单的数据提交到数据库中。我现在有一篇文章中的模块。

当我提交表单时,即使我有另一个模板页面可以成功提交,它也会进入 404 错误页面。

我尝试过使用 action = post.php 以及确切的 URL,但它失败了。

有人知道我哪里出错了吗?

这里是网址:http://aubrey-joomla-test.freeiz.com/index.php/new-user-registration-form

这是我的默认模板文件名:default_tmpl.php

这是我的 tmpl 代码:

<div>
    <form action="<?php echo JRoute::_('index.php'); ?>" method="post" id="myform" class="cols"  >

        <input type="hidden" name="form_send" value="send" />

        <h2>New User Registration Form</h2>
                <table>
                <label>Are you employed?</label>
                <tr>
                    <td><label><input type="radio" name="option" value="1" required="required">Yes</label></td>
                    <td><label><input type="radio" name="option" value="0" required="required">No</label></td>
                </tr>
                <label>If not, please proceed to the next section.</label>
                </table>

          <fieldset name="salary">

            <h4>Income From Employment</h4>             
                <table> <tr><label>Pay cycle:</label>
                    <td><label><input type="radio" name="option1" value="1" required="required">Monthly</label></td>
                    <td><label><input type="radio" name="option1" value="2" required="required">Biweekly</label></td>
                </tr> </table>
            <p><label>Please enter your typical pay: <input type="text" name="amountpay" required="required" pattern="\d+(\.\d2)?"/> </label></p>
            <p><label>Please select your next pay day: <input type="date" name="paydate"  required="required" /> </label></p>

          </fieldset>

          <fieldset name="fixeditems">
            <h4>Fixed Items</h4>
                <table> <label>Payment cycle:</label> <tr>
                <td><label><input type="radio" name="option2" value="1" required="required">Monthly</label></td>
                <td><label><input type="radio" name="option2" value="2" required="required">Biweekly</label></td>
                <tr>
                </table>

                <table> <label>Is this a form of:</label> <tr>
                    <td><label><input type="radio" name="option3" value="2" required="required">Income</label></td>
                    <td><label><input type="radio" name="option3" value="1" required="required">Expense</label></td>
                <tr>
                </table>        

            <p><label>Please enter the typical amount: <input type="text" name="amount" required="required" pattern ="\d+(\.\d2)?" /> </label></p>
            <p><label>Please select the next due date: <input type="date"  name="amountdate" required="required" /> </label></p>
          </fieldset>

          <hr>

          <div class="clear"></div>

          <button type="submit" name="send" value="Send">Submit form</button>
          <button type="reset">Reset</button>



</form>
</div>

【问题讨论】:

【参考方案1】:

您没有处理表单提交的代码。您需要添加一个隐藏字段,该字段将触发处理表单提交而不是显示表单的其他代码。你的模块中需要这样的东西 -

if $_POST["form_submit_trigger"] :

PUT SOME CODE HERE TO HANDLE YOUR SUBMITTED DATA

else

PUT THE CODE TO DISPLAY YOUR FORM HERE

form_submit_trigger 应该是表单中的一个隐藏字段,它会在每次表单被透析时生成和散列。通过这种方式,您可以确认表单确实是在您的网站上生成并提交的。

【讨论】:

以上是关于在文章中提交 PHP 表单时出现 Joomla 2.5 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

将 ajax 表单提交到 PHP 脚本时出现问题

Django 表单:提交表单时出现隐藏字段错误

使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题

joomla 自定义表单注销用户

Cakephp - 将表单提交到插件控制器操作时出现问题

在禁用提交按钮的情况下发送表单时出现问题