表单提交响应 301 或 302
Posted
技术标签:
【中文标题】表单提交响应 301 或 302【英文标题】:Form submit response 301 or 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 对吗? 【参考方案1】:我最终修复了它,这就是原因所在。
需要修复三件事。
第一件事是我需要修复对 vdaemon 库的引用。这条路全都搞砸了。之后,我在两个地方摆脱了标头重定向。一个在单独的文件夹中,一个在我的 index.php 上,我完全错过了(以为我检查过)。它正在执行 302 重定向,因为标头在那里,但在整个服务器和 index.php 上的不同文件夹中。
下次我会知道要找什么。感谢大家在这里的努力。 :)
确保在处理这些错误时首先查找此代码
header("Location: http://www.foo.com");
【讨论】:
以上是关于表单提交响应 301 或 302的主要内容,如果未能解决你的问题,请参考以下文章
表单标签中的按钮不会提交或响应 Javascript/Jquery