3

サイトにフォームがあり、このフォームを送信するたびに、301 パーマ、302 リダイレクト、さらに 302 リダイレクトを受け取ります。これらのリダイレクトが原因で、データが送信されません。これらのリダイレクトを見つけることができません。.htaccessディレクトリのルートには、これを引き起こしているファイルはありません。

リダイレクトを取り除くにはどこを見ればよいですか? どんなヒントでも感謝します。

送信時の開発者ツールは 301、302、302 になります。

これが私のフォームの始まりです。

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

これが送信されたら、ケース ステートメントで 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;
4

1 に答える 1

1

私はそれを修正しましたが、これが原因でした。

3 つのことを修正する必要がありました。

最初に、vdaemon ライブラリへの参照を修正する必要がありました。パスはすべてめちゃくちゃでした。その後、2 か所のヘッダー リダイレクトを削除しました。1つは別のフォルダーにあり、もう1つは私のindex.phpにあり、完全に見逃していました(チェックしたと思いました)。ヘッダーがあったため、302 リダイレクトを実行していましたが、サーバー全体と index.php の異なるフォルダーにありました。

次回は、何を探すべきかがわかります。皆様のご尽力に感謝いたします。:)

これらのエラーに対処するときは、最初にこのコードを探すようにしてください

header("Location: http://www.foo.com");
于 2012-12-20T14:18:16.353 に答える