【问题标题】:Form submit response 301 or 302表单提交响应 301 或 302
【发布时间】:2012-12-07 07:45:44
【问题描述】:

我的网站上有一个表单,每次提交此表单时,我都会收到 301 烫发,然后是 302 重定向,然后是另一个 302 重定向。由于这些重定向,我的数据没有提交。我没有运气找到这些重定向。在目录的根目录中没有导致此问题的 .htaccess 文件。

我在哪里寻找摆脱重定向?任何提示将不胜感激。

提交时我的开发者工具转到 301、302、302。

这是我表单的开始。

<form action="index.php?view=ticket_submit" method="POST" name="QContact" runat="vdaemon">

当这个提交时,我有一个 case 语句查找 ticket_submit。由于 var_dump 和 exit 方法,它甚至没有到达 ticket_submit 。它只是回到根 index.php 文件。

private function ProcessView($type){
    $ticket = new Ticket();
    $ticket->CurrentUser = $this->CurrentUser;
    $ticket->TicketUser = $this->CurrentUser;
    $ticket->setBlankTicketHTML();
    $title = 'New ROI';
    $prior_count = count($this->Containers);
    $_SESSION['vdaemon'] = '1';
    if($_SESSION['al'] == 't' && $type['view'] == ''){
        $type['view'] = 'summary';
    }

    switch($type['view']){
        case 'ticket_edit':
            $ticket->ticketid = (int)$this->Request['ticketid'];
            $ticket->TicketUser = array();
            $ticket->fillTicket();

            if(($this->CurrentUser['userid'] != $ticket->TicketUser['userid']) && ($_SESSION['al'] == 't' || $_SESSION['al'] == 'r')){

                $ticket->setViewTicketHTML();
                $title = "Error: You can only Edit items you have created.";
                $_SESSION['vdaemon'] = '0';
            } else {
                $ticket->setEditTicketHTML();
                $title = 'Edit ROI';
                $_SESSION['vdaemon'] = '1';
            }
            break;

        case 'ticket_submit':
            var_dump('test');
            exit();
            $ticket->ticketid = (int)$this->Request['ticketid'];
            $ticket->TicketUser['useremail'] = $this->Request['useremail'];
            $ticket->saveTicket(0);
            $_SESSION['vdaemon'] = '0';             
            if($_REQUEST['viewquick'] == 'quick'){$quick = 'ticket_quick_view';}else{$quick = 'ticket_filed';}
            if($_REQUEST['edit'] == 'yes') {
                echo 'works';
            }else {
                header("Location: ?view=".$quick."&ticketid=".$ticket->ticketid);
                echo 'workss';
            }   
            exit;
            break;

【问题讨论】:

  • 您查看过您的 apache 错误日志吗?也许一点代码可以说明问题?
  • apache 错误日志在哪里?
  • @wowzuzz 在标有“日志”的文件夹中。这是部署环境,还是本地测试环境?你用什么来托管它?您是否有任何虚拟主机与此特定站点共享命名空间?
  • 这是一个已部署的环境。它位于使用 apache 和 lighttpd 的云服务器上。不,没有虚拟主机。
  • 我摆脱了 301 错误和另一个 302,因为我将它移到了一个新文件夹。现在它向我显示 302。除非 302 已修复,否则我的数据不会 POST 对吗?

标签: php http-status-code-301 http-status-code-302 http-redirect


【解决方案1】:

我最终修复了它,这就是原因所在。

需要修复三件事。

第一件事是我需要修复对 vdaemon 库的引用。这条路全都搞砸了。之后,我在两个地方摆脱了标头重定向。一个在单独的文件夹中,一个在我的 index.php 上,我完全错过了(以为我检查过)。它正在执行 302 重定向,因为标头在那里,但在整个服务器和 index.php 上的不同文件夹中。

下次我会知道要找什么。感谢大家在这里的努力。 :)

确保在处理这些错误时首先查找此代码

header("Location: http://www.foo.com");

【讨论】:

    猜你喜欢
    • 2016-09-17
    • 2012-11-13
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 2020-07-10
    • 2017-05-10
    相关资源
    最近更新 更多