Jump to content
DevFuse Forums
Sign in to follow this  
Lindsey

Login form but need a check done

Recommended Posts

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

Share this post


Link to post
Share on other sites

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;
   }
}
?>

Share this post


Link to post
Share on other sites

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>

Share this post


Link to post
Share on other sites

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>

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...