Redirect from page to login.html back to page - Joomla! Forum - community, help and support


sometimes useful verify if customer logged in site before allowing him view contents or components, in case use japplication::redirect() command.

most not user redirected page after logging in, sadly not work out. admin site works way front end not.

the file responsible login subcontroller ../components/com_users/controllers/user.php

and line responsible redirects:

code: select all

.
.
   public function login()
   {
      jsession::checktoken('post') or jexit(jtext::_('jinvalid_token'));

      $app = jfactory::getapplication();

      // populate data array:
      $data = array();
      $data['return'] = base64_decode(jrequest::getvar('return', '', 'post', 'base64'));
      $data['username'] = jrequest::getvar('username', '', 'method', 'username');
      $data['password'] = jrequest::getstring('password', '', 'post', jrequest_allowraw);
.
.


the line responsible redirects this:

code: select all

$data['return'] = base64_decode(jrequest::getvar('return', '', 'post', 'base64'));


it tempting put line on components before redirect login

code: select all

jrequest::setvar('return', base64_encode('index.php?option=com_component'), 'post', true);


the problem here when site redirects login page new form input type name return introduced:

this code located in: ../components/com_users/views/login/tmpl/default_login.php

code: select all

.
.
      <fieldset>
         <?php foreach ($this->form->getfieldset('credentials') $field): ?>
            <?php if (!$field->hidden): ?>
               <div class="login-fields"><?php echo $field->label; ?>
               <?php echo $field->input; ?></div>
            <?php endif; ?>
         <?php endforeach; ?>
         <?php if (jpluginhelper::isenabled('system', 'remember')) : ?>
         <div class="login-fields">
            <label id="remember-lbl" for="remember"><?php echo jtext::_('jglobal_remember_me') ?></label>
            <input id="remember" type="checkbox" name="remember" class="inputbox" value="yes"  alt="<?php echo jtext::_('jglobal_remember_me') ?>" />
         </div>
         <?php endif; ?>
         <button type="submit" class="button"><?php echo jtext::_('jlogin'); ?></button>
         <input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getvalue('return'))); ?>" />
         <?php echo jhtml::_('form.token'); ?>
      </fieldset>
.
.


notice line:

code: select all

<input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getvalue('return'))); ?>" />


this line looks url params or login form , not jrequest variable.

a simple redirect component login screen , component after successful login..

code: select all

if(!$user->id)
   {
   //get application object
   $app = jfactory::getapplication();

   //redirect login page
   $app->redirect('http://tmerese.cloudaccess.net/login.html?return=' . base64_encode('index.php?option=com_enigmawd&view=post') , 'please login!');
   }





Comments

Popular posts from this blog

How to change text Component easybook reloaded *newbee* - Joomla! Forum - community, help and support

After Effect warning: A problem occurred when processing OpenGL commands

Preconditions Failed. - Joomla! Forum - community, help and support