The following warnings occurred: | ||||||||||||||||||||||||
Warning [2] Undefined variable $unreadreports - Line: 26 - File: global.php(961) : eval()'d code PHP 8.2.25 (Linux)
|
Go to referring Page after login - Printable Version +- UserSpice (https://userspice.com/forums) +-- Forum: Miscellaneous (https://userspice.com/forums/forumdisplay.php?fid=28) +--- Forum: Modifications and Hackery (https://userspice.com/forums/forumdisplay.php?fid=29) +--- Thread: Go to referring Page after login (/showthread.php?tid=262) Pages:
1
2
|
Go to referring Page after login - dreniam - 09-12-2016 Hello, I installed userspice on my project site and it is amazing! I had a question, is there a way to have the landing page after login be the referring page? Here is the workflow User clicks on link to a member only page in email. User is greeted to the login page because there are not logged in. User logs in User is taken to the link in email, not the default page for user permission level. I'll be researching this, but was wondering if I didn't have to reinvent the wheel. Thanks for your help in advance. Go to referring Page after login - dreniam - 09-12-2016 update: Still no solution, but I learned something! I though I would use: Code: <?php echo $_SERVER['HTTP_REFERER']?> If I click on a link from somewhere within my site, the link is correct. If I click a link from my email nothing is shown, I think that is by design from Referer. Somehow I need to capture the page that sends a user to the login page in a variable, and then store that, then redirect that to var after logging in. Will update if more information is found, thanks for listening! Go to referring Page after login - mudmin - 09-12-2016 I'm glad you like the project. I'm sure there is a way to accomplish what you're trying to accomplish. I'm guessing what you want to do is to process that link with a get request. Can you give me an example of the types of links you're trying to send? Also, you don't have to have only one login page. You could have something like custom_login.php that sends people different places after they login. Go to referring Page after login - brian - 09-12-2016 Hmm, my post didn't come through. I had been having the same thoughts lately. As mudmin said, if you had examples that would be great. I need to shoot mudmin for suggesting another login.php page I have some thoughts on it. I'm assuming that you are talking about links to "private pages" that you might mail out, then after the user logs in, go to that link? I will try a few ideas out and let you know how it goes. Go to referring Page after login - brian - 09-13-2016 One issue is that the referrer gets set by the browser, so we might need to modify our securepage function to make that work by detecting where it was before... Go to referring Page after login - dreniam - 09-13-2016 Thanks for the quick reply. I'm close to to getting a good solution working. I'm setting a Session variable using Code: $_SESSION['actual_link'] = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; This variable is set on the private page I'm sending in an email. That piece of code is near the top of the page, just after require init.php, but before require header. This allows the variable to be set, but the user still has to login to view the page. After testing, it does look like the variable is being set correctly. I'm now trying to send the user to that page in the custom_login_script.php but it's not working. The user just stays on an empty page after login. This is what I have so Far Code: "User clicks on link to page_1 -> page_1 sets var to http://page_1 -> User is directed to login page -> User stays on a limbo page" I tried doing the following in my custom login script and directly in my login page: <pre> Code: if($user->data()->permissions !='2' || $user->data()->permissions !='3') Translating this code: I have three levels of permissions 1 = user 2 = member 3 = Administrator If person is a user take them to mainhomepage.php If person is a member or admin take them to userhome.php If person is a member or admin and they clicked on my emailed link, send them to the emailed link Thanks for taking the time to read my notes!! Go to referring Page after login - brian - 09-13-2016 So I do have a solution that I have coded for UserSpice 5. It is pretty simple, but requires changes in a couple of places. It is somewhat similar to what you're doing, but it does it for any secured page. If you try to access a secured page without being logged in, it sends you to login.php. After the login, it sends you to the secured page you tried to access. If you would like this rolled into a patch, I can talk to @mudmin and see what he things (he is handling most of the 4.1.x and 4.2 stuff right now). I think at minimum it should be able to make it into 4.2. Go to referring Page after login - brian - 09-14-2016 Sorry, I posted that I fixed my problem and not yours. I will see if I can rewrite it for the userspice 4.1.x or 4.2 stream. It may take a bit of time. Go to referring Page after login - brian - 09-14-2016 Hmm, I need to backtrack that I have it working as I wanted it to...I'll get back to you once things are clear for myself. Go to referring Page after login - plb - 09-19-2016 Here's for 4.1.5: Changes to login.php: http://pastebin.com/sEz1rzzw I have shamelessly left in my plug for a login.php?err=My+Error+Message in the URL to allow users to be redirected back to login with a reported error. That is obviously unrelated to this problem/solution and can be left out (if you have to - grin). Changes to us_helpers.php: http://pastebin.com/wpdcHDSL Note that I have my Redirect::to() function allowing an argument for the $_GET side of things. In vanilla US you would need to change Code: Redirect::to($us_url_root.'users/login.php', '?afterLoginGoto='.$_SERVER['PHP_SELF']); Code: Redirect::to($us_url_root.'users/login.php?afterLoginGoto='.$_SERVER['PHP_SELF']); on line 395 For more details on the change to Redirect.php, you can see the code I posted earlier here: http://pastebin.com/yvSx71U1 This change is *not* necessary in order to implement the changes above - you just have to modify the code as I have delineated. I'm just posting this extra reference to Redirect.php as a reminder of what change I was talking about. |