benbyf

stuck redirecting url after login

Recommended Posts

Sure this has been asked a million times but cant find a simple answer.

Trying to set the page to redirect to after login in the front end - i.e. not on the admin login page.

some reason this works for super users but not normal users redirecting to a page which is viewable by members not guest role users.

 

$showLoginError = false;
    if($input->post->user && $input->post->pass) {
    	$username = $sanitizer->username($input->post->user);
    	$pass = $input->post->pass;

        try {

			$session->login($username, $pass);

			// redirect user
			$session->redirect("/events/");

        } catch (\Exception $e) {
            $showLoginError = true;
        }
    }

 

Share this post


Link to post
Share on other sites

But what happens with the normal users?

Can normal users view the page "/events/" ? Is the url correct? Can you get the url by API instead?

Share this post


Link to post
Share on other sites

In my _init.php file, the first thing I include is _login.php:

<?php

// Handle logouts
if(isset($input->get->logout)) {
    $session->logout();
    $session->redirect($page->path);
}

// If they aren't logged in, then show the login form
if(!$user->isLoggedin()) {

    // check for login before outputting markup
    if($input->post->user && $input->post->pass) {

        $user = $sanitizer->username($input->post->user);
        $pass = $input->post->pass;

        if($session->login($user, $pass)) {
            // login successful
            $session->redirect($page->path);
        } else {
            $session->login_error = 'Login Failed. Please try again, or use the forgot password link below.';
        }
    } ?>

    <!DOCTYPE HTML>
    <html lang="en">
    <head>
        <title>Login</title>
        <link rel="stylesheet" href="/build/css/app.css">
    </head>
    <body>
        <div class="container py-5">
            <form action='./' method='post'>
                <div class="row">
                    <div class="col-12 col-sm-6 offset-sm-3">
                        <h1>You must be logged in.</h1>
                        <div class="login">
                            <? if($input->post->user && $input->post->pass) {
                                echo "<p class='error'>" . $session->login_error . "</p>";
                            }?>
                            <p><input class="form-control" type='text' id="user" name='user' placeholder='Username'/></p>
                            <p><input class="form-control" type='password' id="pass" name='pass' placeholder="Password" /></p>
                            <p><input type='submit' class="btn btn-primary" name='submit' value='Login' /></p>
                        </div>
                    </div>
                </div>
            </form>
        </div>
    </body>
    </html>

    <? die(); // don't go any further if not logged in

}

If I go to site.dev/whatever, I am met with a login. After logging in, it takes me straight to the URL I intended to go to before needing to log in.

You could change the $page->path to $pages->get('/events/')->httpUrl; - would that work?

  • Like 1

Share this post


Link to post
Share on other sites

thanks @ethanbeyer. its so unbelievebly strange, it must be server settings as it works fine as I have currently on dev but not on live. Thanks anyways though!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Marcel
      Hey,
      I am about to use the tool Create Users Batcher. We have 450 users. When I tryed it with like 20 test users it worked but it took a while. Now my concerns are that 450 might be to stressful? Does anyone have experience with several hundreds of users? My thoughts are to split it in smaller goups and upload them one group after another.
      best wishes
      marcel
    • By SwimToWin
      ProcessWire is setting a "wires" cookie for each guest session.
      Is it possible drop that cookies, so there are no cookies at all for guests?
      That way, I don't need to spam the user with a cookie consent box.
      I don't need cookies for user preferences and marketing purposes.
      (Why are cookies being set by default in the first place?)
    • By Peter Knight
      I have a demo site which I moved to a new VPS for client testing
      We noticed that leaving a page open and then revisiting the site can result in a 25 second(ish) to load time and will then throw a 500 Error.
      The hosting guys had a look and confirmed that the server is fine but the issue could be related to authentication or sessions.
      We are running Page Protector and ProCache so I wondered if there were any known bugs here and any recommended actions.
      My actual PW log doesn't show anything but the server log has plenty of these
       
      2018-12-06 08:14:00 Error xxx.141.1x.101 500 POST /who-we-are/ HTTP/1.0     1.58 K Apache access 2018-12-06 08:14:45 Warning xxx.141.1x.131   mod_fcgid: read data timeout in 45 seconds, referer: http://demo.abc.not/who-we-are/       Apache error 2018-12-06 08:14:45 Error xxx.141.1x.131   End of script output before headers: index.php, referer: http://demo.abc.not/who-we-are/       Apache error 2018-12-06 09:03:18 Error xxx.141.1x.131   2614#0: *667 recv() failed (104: Connection reset by peer) while reading response header from upstream       nginx error Thanks
      P
    • By Marcel
      Hey all,
      I want to customize the mywebsite/processwire/profile page. It's almost all good but I want to get rid of the sections 'Admin Theme' and 'Language' so that the user can just set a new password. (see image)
      Do I have to modify the admin template or how can I do that? Because when I go tree>Admin>Profile there are no fields to add or remove.
      Or where can I find the php file?
      I would appreciate your help.

    • By ridgedale
      Reference: PW 3.0.111 and uikit3 based site using the Regular-Master profile.
      Despite my searches of the forum I'm somewhat confused about how to create new child pages on the frontend when a user clicks on a button on the parent page. I also have an equivalent button that is intended for uploading a .csv file to automatically create multiple new pages. This basically relates to a club (parent) and members (child) template configuration. Hopefully this explanation makes sense.
      A button should be able to launch the code needed to initiate the script required to create a new page using something like:
      <a href="/path/page.php">New +</a> <a href="/path/page.php">New ++</a> Does the code to create the new page or new pages need to be run from the template file for the child or the parent?
      A new individual member page will need to be editable manually at the point of page creation as well as subsequently, whereas multiple new pages will need to be editable after they have created and populated with data, again, as well as subsequently.
      I would very grateful for any advice or pointers as to how to achieve this.