Search code examples
javascriptphptypo3-8.xtypo3-extensions

TYPO3 Frontent: Form Action results Page not found


I'm working on TYPO3 migration from 6.2.31 to 8.7.19.

In my templates I'm using a navigationbar which should filter a list of videos based on categories. The navigationbar is a formular:

<f:if condition="{loggedIn}">
    <f:then>
        <form name="audit_vw_filter" method="post" id="audit_vw_filterForm"
              action="?tx_vidverwaltung_vidverwaltungfrontend[action]=listSelectedMember&tx_vidverwaltung_vidverwaltungfrontend[controller]=FrontendVideo">
    </f:then>
    <f:else>
        <form name="audit_vw_filter" method="post" id="audit_vw_filterForm"
              action="?tx_vidverwaltung_vidverwaltungfrontend[action]=listSelectedPublic&tx_vidverwaltung_vidverwaltungfrontend[controller]=FrontendVideo">
    </f:else>
</f:if>
...
<f:for each="{categories}" as="category" iteration="i">
<div>
    //list the category
    <span id="fontRed{category.uid}" class="vw_navigationbarFilter filterLinkCategory" onclick="setActualCategory('{category.name}','{category.uid}')">{category.name}</span>
</div>
...
</f:for>
</f:form>

In JavaScript I declared every category as a submit when click on it.

...    
$("#vw_filterForm").submit();

So now the action from my form should be executed and call my 'FrontendVideo' Controller which should give me a feedback in form of a debug.

public function listSelectedMemberAction () {
    DebuggerUtility::var_dump("Hello World");
    ...
}

It seems like the function of the Controller isn't reached. Instead there is a friendly "Page not found" :/

As Expected the URL is:

http://example.de/.../.../?tx_vidverwaltung_vidverwaltungfrontend[action]=listSelectedMember&tx_vidverwaltung_vidverwaltungfrontend[controller]=FrontendVideo

On the old version 6.2.31 it worked fine. So maybe there is a change of how I call a Controller function or maybe a problem with realurl etc....

Thanks in advance!


Solution

  • I found the problem:

    In the older TYPO3 versions TYPO3_CONF_VARS['FE']['pageNotFoundOnCHashError'] was set to true by default, so if the cHash is empty the error message is outputed.

    So I tend to revert the pageNotFoundOnCHashError to "false" as default value.

    to do this go into your

    Install Tool > All configuration > Frontend

    and change pageNotFoundOnCHashError to false

    [FE][pageNotFoundOnCHashError] = false