Lindsey Posted September 10, 2009 Report Share Posted September 10, 2009 Hello, Right, so what I'm trying todo is have http://mysite.com/index.php as my main site splash page. Now on that splash page I have a login form. (Code is below.) What I need down is to hook it into a forum so it validates the login or not. But if the login is incorrect it will go back to http://mysite.com/index.php?act=loginfailed <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title><?php echo $_SERVER["HTTP_HOST"] ; ?> :: Log In</title> <style type='text/css' media='all'> @import url('http://<?php echo $_SERVER["HTTP_HOST"] ;?>/main.css'); </style> </head> <body><p> </p> <form id='install-form' action='index.php' method='post'> <input type='hidden' name='_sd' value='b%3A0%3B'> <div id='ipswrapper'> <div class='main_shell'> <div id='navigation'> <ul id='section_buttons'> <li class='active'><span>Log In</span></li> </ul> </div> <div class='content_shell'> <div class='package'> <div> <div class='content_wrap'> <div style='clear:both'></div> <h2> This Login system is still in the works.</h2> <input type='hidden' name='do' value='login' /> <br /> <fieldset> <legend>Log In</legend> <div id='login_controls'> <label for='username'>Sign In Name</label> <input type='text' size='20' id='username' name='username' value='UserName'> <label for='password'>Password</label> <input type='password' size='20' id='password' name='password' value='PassWord'> </div> </fieldset> <br /> <div style='float: right'> <input type='submit' class='nav_button' value='Next >' /> </div> </div></div></div></div></div></div></form></body></html> So in other words, Fill in login form > Click next > Checks against a forums database if user/pass is valid > If not valid, goes back to index.php and shows an error. > But if valid, goes to a whole different file. . Quote Link to comment Share on other sites More sharing options...
Management Michael Posted September 10, 2009 Management Report Share Posted September 10, 2009 Have you seen this article here? Should do what you want. I've adapted the code a bit for you. If you need further help integrating with your script let me know. <?php /** * initiate ipb functions */ $ipblink = new ipbAuthentication; /** * logging a user in */ if(isset($_REQUEST['username']) && isset($_REQUEST['password'])) { $returnCode = $ipblink->doLogin(); if( $returnCode == 'SUCCESS' ) { // login success, redirect. } else { // login faile, display error print $returnCode; } } else { // no login details provided } class ipbAuthentication { /** * initialisation function to setup IPSregistry */ protected function init() { /** * Edit this path, to where you have your forum installed. */ $forum_path = 'ipb303'; /** * We will change directories so that proper directory is picked up */ chdir( $forum_path ); /** * Get some basic IPB files */ define( 'IPB_THIS_SCRIPT', 'public' ); require_once( $forum_path . '\initdata.php' ); /** * Get IPB registry */ require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' ); /** * initialise the ipsRegistry */ $this->ipbRegistry = ipsRegistry::instance(); $this->ipbRegistry->init(); } /** * logs a user in, username and password should be in $_REQUEST['username'] and $_REQUEST['password'] */ public function doLogin() { /** * call the initialisation function */ $this->init(); /** * get the IPB login handler wrapper */ require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' ); /** * setup the handler class */ $login = new han_login( $this->ipbRegistry ); $login->init(); /** * verify the login and do any necessary tasks. form variables must be called 'username' & 'password' */ $login->verifyLogin(); return $login->return_code; } } ?> Quote Link to comment Share on other sites More sharing options...
Lindsey Posted September 10, 2009 Author Report Share Posted September 10, 2009 Never seen that article :). Kinda confused tho, How would I add this into the html part of things? <?php /** * initiate ipb functions */ $ipblink = new ipbAuthentication; /** * logging a user in */ if(isset($_REQUEST['username']) && isset($_REQUEST['password'])) { $returnCode = $ipblink->doLogin(); if( $returnCode == 'SUCCESS' ) { // login success, redirect. } else { // login faile, display error print $returnCode; } } else { // no login details provided } class ipbAuthentication { /** * initialisation function to setup IPSregistry */ protected function init() { /** * Edit this path, to where you have your forum installed. */ $forum_path = 'devforums'; /** * We will change directories so that proper directory is picked up */ chdir( $forum_path ); /** * Get some basic IPB files */ define( 'IPB_THIS_SCRIPT', 'public' ); require_once( $forum_path . '\initdata.php' ); /** * Get IPB registry */ require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' ); /** * initialise the ipsRegistry */ $this->ipbRegistry = ipsRegistry::instance(); $this->ipbRegistry->init(); } /** * logs a user in, username and password should be in $_REQUEST['username'] and $_REQUEST['password'] */ public function doLogin() { /** * call the initialisation function */ $this->init(); /** * get the IPB login handler wrapper */ require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' ); /** * setup the handler class */ $login = new han_login( $this->ipbRegistry ); $login->init(); /** * verify the login and do any necessary tasks. form variables must be called 'username' & 'password' */ $login->verifyLogin(); return $login->return_code; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title><?php echo $_SERVER["HTTP_HOST"] ; ?> :: Log In</title> <style type='text/css' media='all'> @import url('http://<?php echo $_SERVER["HTTP_HOST"] ;?>/main.css'); </style> </head> <body><p> </p> <form id='install-form' action='index.php?action=login&do=submit' method='post'> <input type='hidden' name='_sd' value='b%3A0%3B'> <div id='ipswrapper'> <div class='main_shell'> <div id='navigation'> <ul id='section_buttons'> <li class='active'><span>Log In</span></li> </ul> </div> <div class='content_shell'> <div class='package'> <div> <div class='content_wrap'> <div style='clear:both'></div> <h2> This Login system is still in the works.</h2> <input type='hidden' name='do' value='login' /> <br /> <fieldset> <legend>Log In</legend> <div id='login_controls'> <label for='username'>Sign In Name</label> <input type='text' size='20' id='username' name='username' value='UserName'> <label for='password'>Password</label> <input type='password' size='20' id='password' name='password' value='PassWord'> </div> </fieldset> <br /> <div style='float: right'> <input type='submit' class='nav_button' value='Next >' /> </div> </div></div></div></div></div></div></form></body></html> Quote Link to comment Share on other sites More sharing options...
Management Michael Posted September 10, 2009 Management Report Share Posted September 10, 2009 You'll need to change the form to point to the same page, something like this. You could always have the login script on a separate page. Depending on how complex you want this, IPBSDK for IPB3 might be a better option, it would have more functions and probably easier to use. <?php /** * initiate ipb functions */ $ipblink = new ipbAuthentication; /** * logging a user in */ if( isset($_POST['username']) && isset($_POST['password']) ) { $returnCode = $ipblink->doLogin(); if( $returnCode == 'SUCCESS' ) { // login success, redirect. header('Location: http://www.yoursite.com/diff_file.php'); } else { print $returnCode; exit(); } } class ipbAuthentication { /** * initialisation function to setup IPSregistry */ protected function init() { /** * Edit this path, to where you have your forum installed. */ $forum_path = 'ipb303'; /** * We will change directories so that proper directory is picked up */ chdir( $forum_path ); /** * Get some basic IPB files */ define( 'IPB_THIS_SCRIPT', 'public' ); require_once( $forum_path . '\initdata.php' ); /** * Get IPB registry */ require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' ); /** * initialise the ipsRegistry */ $this->ipbRegistry = ipsRegistry::instance(); $this->ipbRegistry->init(); } /** * logs a user in, username and password should be in $_REQUEST['username'] and $_REQUEST['password'] */ public function doLogin() { /** * call the initialisation function */ $this->init(); /** * get the IPB login handler wrapper */ require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' ); /** * setup the handler class */ $login = new han_login( $this->ipbRegistry ); $login->init(); /** * verify the login and do any necessary tasks. form variables must be called 'username' & 'password' */ $login->verifyLogin(); return $login->return_code; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title><?php echo $_SERVER["HTTP_HOST"] ; ?> :: Log In</title> <style type='text/css' media='all'> @import url('http://<?php echo $_SERVER["HTTP_HOST"] ;?>/main.css'); </style> </head> <body><p> </p> <form id='install-form' action='index.php?action=login&do=submit' method='post'> <input type='hidden' name='_sd' value='b%3A0%3B'> <div id='ipswrapper'> <div class='main_shell'> <div id='navigation'> <ul id='section_buttons'> <li class='active'><span>Log In</span></li> </ul> </div> <div class='content_shell'> <div class='package'> <div> <div class='content_wrap'> <div style='clear:both'></div> <h2> This Login system is still in the works.</h2> <input type='hidden' name='do' value='login' /> <br /> <fieldset> <legend>Log In</legend> <div id='login_controls'> <label for='username'>Sign In Name</label> <input type='text' size='20' id='username' name='username' value='UserName'> <label for='password'>Password</label> <input type='password' size='20' id='password' name='password' value='PassWord'> </div> </fieldset> <br /> <div style='float: right'> <input type='submit' class='nav_button' value='Next >' /> </div> </div></div></div></div></div></div></form></body></html> Quote Link to comment Share on other sites More sharing options...
ShaneV Posted January 8, 2010 Report Share Posted January 8, 2010 Hi, thanks for the example Michael. I'm looking for something like this for IPB 2.3 can you help me? Quote Link to comment Share on other sites More sharing options...
Management Michael Posted January 9, 2010 Management Report Share Posted January 9, 2010 Hi, thanks for the example Michael. I'm looking for something like this for IPB 2.3 can you help me? I'm not aware of any IPB2.3 files that is similar. IPBWI or IPBSDK would probably be your best choice here. Quote Link to comment Share on other sites More sharing options...
ShaneV Posted January 11, 2010 Report Share Posted January 11, 2010 I'm not aware of any IPB2.3 files that is similar. IPBWI or IPBSDK would probably be your best choice here. Thanks for the information :) working fine now. Quote Link to comment Share on other sites More sharing options...
MPFF Posted February 5, 2010 Report Share Posted February 5, 2010 (MPFF) External Login System v1.0.0 - Released Very soon and intergratable into any page BasS™ 1 Quote Link to comment Share on other sites More sharing options...
ShaneV Posted February 13, 2010 Report Share Posted February 13, 2010 Sounds interesting MPFF ;) Any idea when? Maybe its more usefull to me then IPBSDK. Quote Link to comment Share on other sites More sharing options...
MPFF Posted February 13, 2010 Report Share Posted February 13, 2010 it will be ready once i finish (MPFF) Virtual Pet System v1.0.0 Quote Link to comment Share on other sites More sharing options...
ShaneV Posted March 13, 2010 Report Share Posted March 13, 2010 @MPFF, any news yet? :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.