• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Not returning uri segments

#1
[eluser]xtremer360[/eluser]
I'm trying to figure out when I do have both parameters set in the url its not getting the segments from it upon form submission and wondering why because every time I fill in the password it gives me the URL was not complete! response.

http://www.kansasoutlawwrestling.com/kow...dfkafdafjk

Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Activate extends CI_Controller
{

public function __construct()
{
        parent::__construct();
        $this->load->library('kow_auth');            
    }

public function index($param1 = NULL, $param2 = NULL)
{
        //Config Defaults Start
  $msgBoxMsgs = array();//msgType = dl, info, warn, note, msg
  $cssPageAddons = '';//If you have extra CSS for this view append it here
  $jsPageAddons = '[removed][removed]';//If you have extra JS for this view append it here
  $metaAddons = '';//Sometimes there is a need for additional Meta Data such in the case of Facebook addon's
  $siteTitle = '';//alter only if you need something other than the default for this view.
  //Config Defaults Start
  
  
  //examples of how to use the message box system (css not included).
  //$msgBoxMsgs[] = array('msgType' => 'dl', 'theMsg' => 'This is a Blank Message Box...');
  
  /**********************************************************Your Coding Logic Here, Start*/
  
        $x = 0;
        if(($param1 !== NULL)&&($param2 !== NULL))
        {
        
            //params not null yay..
            if((isset($param1))&&((trim($param1) !== '')||(!empty($param1))))
            {
                if(!is_numeric($param1))
                {
                  $x++;
                }
            }
            if((isset($param2))&&((trim($param2) !== '')||(!empty($param2))))
            {
                if(!preg_match('/^[A-Za-z0-9]+$/', $param2))
                {
                  $x++;
                }
            }
        
        
            if($x !== 0)
            {
               $bodyContent = "error_page";
            }
            else
            {
               $bodyContent = "activate_form";
            }
        
        }
        else
        {
            $bodyContent = "error_page";
        }
        
        $bodyType = "full";//type of template

  /***********************************************************Your Coding Logic Here, End*/
  
  //Double checks if any default variables have been changed, Start.
  //If msgBoxMsgs array has anything in it, if so displays it in view, else does nothing.      
  if(count($msgBoxMsgs) !== 0)
  {
   $msgBoxes = $this->msgboxes->buildMsgBoxesOutput(array('display' => 'show', 'msgs' =>$msgBoxMsgs));
  }
  else
  {
   $msgBoxes = array('display' => 'none');
  }
  
  if($siteTitle == '')
  {
   $siteTitle = $this->metatags->SiteTitle(); //reads
  }
  
  //Double checks if any default variables have been changed, End.

  $this->data['msgBoxes'] = $msgBoxes;
  $this->data['cssPageAddons'] = $cssPageAddons;//if there is any additional CSS to add from above Variable this will send it to the view.
  $this->data['jsPageAddons'] = $jsPageAddons;//if there is any addictional JS to add from the above variable this will send it to the view.
  $this->data['metaAddons'] = $metaAddons;//if there is any addictional meta data to add from the above variable this will send it to the view.
  $this->data['pageMetaTags'] = $this->metatags->MetaTags();//defaults can be changed via models/metatags.php
  $this->data['siteTitle'] = $siteTitle;//defaults can be changed via models/metatags.php
     $this->data['bodyType'] = $bodyType;
     $this->data['bodyContent'] = $bodyContent;
  $this->load->view('usermanagement/index', $this->data);
}
    
    function activate_submit()
    {        
        $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|min_length[6]|max_length[12]|alpha_numeric');
        
        $user_id      = $this->uri->segment(3);
  $registration_key = $this->uri->segment(4);
        
        if (($registration_key == '') || ($user_id == ''))
        {
            echo json_encode(array('error' => 'yes', 'message' => 'URL was not complete!'));
        }
        else
        {
            if (!$this->form_validation->run())
            {
                echo json_encode(array('error' => 'yes', 'message' => 'There was a problem submitting the form! Please refresh the window and try again!'));    
            }
            else
            {      
          if ($this->kow_auth->activate_user($user_id, $registration_key, $this->input->post('password')))
                {
                    echo json_encode(array('sucess' => 'yes', 'message' => 'Your account has been successfully activated!'));
          }
                else
                {              
           echo json_encode(array('error' => 'yes', 'message' => 'The activation code you entered is incorrect or expired!'));
          }
            }
        }
    }
  
}

/* End of file activate.php */
/* Location: ./application/controllers/activate.php */

#2
[eluser]InsiteFX[/eluser]
By default the controller index method will not accept parameters.

Code:
// ------------------------------------------------------------------------

/**
* DO NOT! REMOVE THIS LINE
* This is for the index _remap. It must be the very last route in the file!
* ------------------------------------------------------------------------
*/
$route['(.*)'] = 'welcome/index/$1';

// ---------------- -== DO NOT REMOVE! the above line ==- -----------------

CodeIgniter User Guide - Controllers See the Section Remapping Function Calls

#3
[eluser]xtremer360[/eluser]
I'm assuming the welcome part is the controller?

#4
[eluser]xtremer360[/eluser]
I also already have these routes:

$route['activate/(:num)/(:any)'] = "activate/index/$1/$2";
$route['activate/(:num)'] = "activate/index/$1";
$route['activate'] = "activate";

#5
[eluser]xtremer360[/eluser]
I should also point out that the form submission is an ajax post.

#6
[eluser]InsiteFX[/eluser]
Yes welcome is the controller name.

Just place the route at the very bottom!
Code:
$route['(.*)'] = 'activate/index/$1';

Thats all you need, you do not need any of the routes you showed!

_remap - Place at the bottom of your contoller.
Code:
// --------------------------------------------------------------------

/**
* _remap()
*
* Remaps the URL segments.
*
* @access private
* @param string
* @param array
* @return mixed
*/
public function _remap($method, $params = array())
{
    if (method_exists($this, $method))
    {
        return call_user_func_array(array($this, $method), $params);
    }

    show_404();
}

Also see this:
CodeIgniter User Guide - Input Class -- $this->input->is_ajax_request()


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.