Welcome Guest, Not a member yet? Register   Sign In
Session Bug CI v1.7.2
#1

[eluser]Nicholas Hanks[/eluser]
I tried to solve this problem for hours. Seems like it is bug in CI. When the form is valid it should set session variable "request" = "yes" it does that however CI fails to read it and removes it...weird.

Once of form is submitted it should not render form view again but it does why???? I think it is bug.
Code:
public function requestForm()
    {
           if($this->session->userdata('received') !== false)
        {
            $v = $this->session->userdata('received');
            
            if(strcmp($v,'yes') == 0)
            {
                $data['header'] = "Re-Submisson Attempt";
                $data['message'] = "We have already received your information. Our sales representative will contact you soon.";
                $this->load->view('message', $data);
            }
            
            else
            {
                echo 'dfgdfgddgdfg';
                die();
            }
        }
        
        else
        {
             $this->load->helper('form');
            $this->load->helper('string');
            
            $this->session->unset_userdata('token');
            
            $token = random_string('alnum', 16);
        
            $this->session->set_userdata('token',$token);
            $data['token'] = $this->session->userdata('token');
            $this->load->view('form',$data);          
        }
    }
    
    public function submitRequestForm()
    {
        $result = array();
        $this->load->library('form_validation');
        $token = $this->session->userdata('token');
        
        //Set Validation
        $this->form_validation->set_rules('email', 'Email', 'trim|valid_email|required|max_length[42]|matches[email]|xss_clean');
        $this->form_validation->set_rules('confirmEmail', 'Confirm Email', 'trim|valid_email|required|max_length[42]|xss_clean');
        $this->form_validation->set_rules('firstname', 'First Name', 'trim|required|max_length[42]|xss_clean');
        
        
        if(!isset($_POST['contactBy']))
        {
            $result['contactBy'] = false;
        }
        
        if(isset($_POST['contactBy']))
        {
            if(!is_array($_POST['contactBy']))
            {
                $result['contactBy'] = false;
            }
            
            else
            {
                if ((!in_array('By Email',$_POST['contactBy'])) && (!in_array('By Phone',$_POST['contactBy'])))
                {
                    $result['contactBy'] = false;
                }
            }
        }
        
        if(!isset($_POST['country']))
        {
            $result['country'] = false;
        }
        
        if(!isset($_POST['type']))
        {
            $result['type'] = false;
        }
        
        if(!isset($_POST['token']))
        {
            $result['token'] = false;
        }
        
        if(isset($_POST['token']))
        {
            if($token === false)//token was never set so
            {
                echo 'Here';
                $result['token'] = false;
            }
            
            else
            {
                if(strcmp($_POST['token'],$token) !== 0)
                {
                    echo $token;
                    $result['token'] = false;
                }
            }
        }
                
        $data['result'] = $result;
        
        if (($this->form_validation->run() == false) || (count($result) !== 0))
        {
            $this->load->helper('string');
            $this->load->helper('form');
            
              $token = random_string('alnum', 16);
              
              $this->session->unset_userdata('token');
               $this->session->set_userdata('token',$token);
               $data['token'] = $this->session->userdata('token');
            
               $this->load->view('form',$data);        
        }
        
        else
        {
            $contact = implode(', ',$_POST['contactBy']);
            
            
            $this->session->unset_userdata('token');
            $this->session->set_userdata('received','yes');
            $data['header'] = "Submission Sucessful";
            $data['message'] = "Your information has been received. Our sales representative will contact you soon.";
            $this->load->view('message', $data);
        }        
    }


Messages In This Thread
Session Bug CI v1.7.2 - by El Forum - 09-20-2009, 09:57 PM
Session Bug CI v1.7.2 - by El Forum - 09-21-2009, 07:30 AM
Session Bug CI v1.7.2 - by El Forum - 09-21-2009, 10:02 AM



Theme © iAndrew 2016 - Forum software by © MyBB