Welcome Guest, Not a member yet? Register   Sign In
controller wont redirect or return view
#1

Hello I have a controlller that should redirect or return to a view but it doesnt it stays at same view but with blank content.
PHP Code:
public function register($validators = [])
{
    

 $data
=$this->data;

    if (!$this->session->has('loggedIn') || $this->session->get('loggedIn') === null) { // 'loggedIn' is not set or is null

 //$this->validation = \Config\Services::validation();
 
$this->validation service('validation');


 if (
$this->request->getMethod() === 'post') {

 
$this->validation->setRules([
 
'username' => 'required|alpha_numeric|min_length[3]|max_length[20]|is_unique[Users.username]',
 
'email' => 'required|valid_email|is_unique[Users.email]',
 
'password' => 'required|min_length[1]',
 
'password2' => 'required|min_length[1]|matches[password]',
 ]);
 
$data['title'] = 'Sign Up';
 
$data['staticPages'] = $this->staticPages;
 
$data['validation'] = $this->validation;
 
$data['seo_title'] = 'Register';
 
$data['seo_desc'] = 'Register';
 
$data['tags'] = ['Register'];
 
$data['Registered_Message']='Thank you for registering, please login.';

 if (!
$this->validate($this->validation->getRules())) {
 
$data['validation'] = $this->validation;
 return 
view('users/register'$data);
 }
 

 else{
 
// register user to db
 
$this->registerUser();
 }

 }

 else { 
 
 
$data['title'] = 'Sign Up';
 
$data['staticPages'] = $this->staticPages;
 
$data['errors'] = $this->validation->getErrors();
 
$data['seo_title'] = 'Register';
 
$data['seo_desc'] = 'Register';
 
$data['tags'] = ['Register'];
 
$data['Registered_Message']='Thank you for registering, please login.';
 
return  view('users/register'$data); 
 }
      
    
 
}
  else {
 
$data['title'] = 'Home';
 
$data['seo_title'] = 'Home';
 
$data['seo_desc'] = 'Home';

 
$data+=$this->data;
      
        
return view('home'$data);
    }



The registerUSer that is called after validation is :

PHP Code:
*/
public function 
registerUser() {

    $data $this->data;
 
$data['seo_title']="login";
    log_message('info''registerUser function called');

    $username $this->request->getPost('username');
    $email $this->request->getPost('email');
    $password $this->request->getPost('password');

    $userData = [
        'username' => $username,
        'email' => $email,
        'password' => password_hash($passwordPASSWORD_DEFAULT),
    ];

    // Insert the user data into the database
    $insertedId $this->user->createUser($userData);
 
 if (
$insertedId) {
 
// User created successfully
 
$this->session->setFlashdata('success''User registration successful! Please login.');
 
 return 
view('users/login'$data);
 
 } else {
        // User creation failed (handle errors)
        log_message('error''Failed to create user');
        return redirect()->to('register'); // Redirect back to register with error handling in view (optional)
    }


The issue is that after
PHP Code:
$insertedId is TRUE, return view('users/login'$data); 
does not load the view . I have also tried return redirect()->to(site_url('/login'));return redirect()->to(site_url('/login'));

The routes are


        $routes->get('login', 'UsersController::login');
       
        $routes->post('login', 'UsersController::login/$i');

       
        $routes->post('users/registerUser', 'UsersController::registerUser');
       
        $routes->post('register', 'UsersController::register');
        $routes->get('register', 'UsersController::register');     

Any ideas of what can be causing this issue?
Reply
#2

You did not return the view:


PHP Code:
// register user to db
$this->registerUser(); 
Reply
#3

(This post was last modified: 03-20-2024, 04:38 AM by ramonpuig.)

Thanks for the answer. Yeah i was not following the correct standart of returning view instead of trying to load a method inside the controller directly. my routes were bad too,  really bad, now its solved, your answer drove me back to the right path.. I was hangover after the weekend. coding while hangover is terrible.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB