繁体   English   中英

页面重定向的Codeigniter错误循环

[英]codeigniter error loop with page redirect

您好,我使用以下概念创建了一个更新查询:如果id有效,那么它应该更新数据,否则它将不会这样做,但是当任何条件满足时,它都会重定向并说页面正在重定向到循环,为什么会这样呢? ?

调节器

public function confirm() {
    if($this->session->userdata('is_logged_in') == true) {
        $invc = "#".$this->input->get('id');

        if($invc == true) {
            $this->data_update->update_trans($invc);
        } else {
            redirect('home/confirm');
        }
    } else {
        redirect('user/login');
    }
}

这是我的模型文件

public function update_trans($invc_id) {
        $get_trans  = $this->db->get_where('transaction', array("invc_id" =>  $invc_id));
        $user_id    = $get_trans->row()->userid;
        $amount     = $get_trans->row()->ammount;

        if(!empty($user_id)) {
            $check     = $this->db->get_where('account', array("user_id" =>  $user_id));
            if($check->row()->balance == true) {
                $new_amount = ($amount + $check->row()->balance);
                $dataupdate = array(
                    'user_id' => $user_id,
                    'balance' => $new_amount
                );

                $this->db->where('id', $user_id);
                $this->db->update('account', $dataupdate);

                $this->db->where('invc_id', $invc_id);
                $this->db->update('transaction', array('status' => 'Confirmed'));
                redirect('home/confirm?id='.$invc_id);
            } else {

                $data1 = array(
                    'user_id' => $user_id,
                    'balance' => $amount
                );

                $this->db->insert('account', $data1);
                $this->db->where('invc_id', $invc_id);
                $this->db->update('transaction', array('status' => 'Confirmed'));

                redirect('home/confirm?id='.$invc_id);
            }
        } else {
            redirect('home/confirm');
        }
    }

这是我的查看文件

<?php
require('sidebar.php');
    ?>
        <!-- Body Content -->
        <div id="body">
        <?php 
            if($this->input->get('id') == true) {
        ?>
            <div class="msg">
                <h4>Your Payment Has been confirmed successfully</h4>
            </div>
        <?php } else { ?>
            <div class="msg">
                <h4>Payment Not confirmed</h4>
            </div>
        <?php } ?>
        </div>

        <div id="break">&nbsp;</div>

    </div>

我不知道为什么,但是它给了我同样的错误。该网页具有重定向循环,任何人都可以帮我解决这个问题

在您的函数中,它每次都在其他部分执行(redirect('home / confirm');),因此显示错误。 您的功能应如下所示。

public function confirm() {
    if($this->session->userdata('is_logged_in') == true) {
        $invc = "#".$this->input->get('id');
        if($this->input->get('id')) {
            $this->data_update->update_trans($invc);
        } else {
            redirect('home/confirm');
        }
    } else {
        redirect('user/login');
    }
}

希望这能解决您的问题。

像这样尝试您的verify()函数:

public function confirm() 
{
    if($this->session->userdata('is_logged_in') == true) {

        $id = intval($this->input->get('id'));
        $invc = "#".$id;

        if($id > 0) {
            $this->data_update->update_trans($invc);
        } else {
            redirect('home/confirm');
        }
    } else {
        redirect('user/login');
    }
}

您期望这个"#".$this->input->get('id')将返回true或false。

如果仍然遇到相同的问题,还不止需要检查$_GET例如:

if($this->session->userdata('is_logged_in') == true) {
    print_r($_GET); // will return you an array
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM