Jump to content
DevFuse Forums

Login form but need a check done


Lindsey

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

Link to comment
Share on other sites

  • Management

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

Link to comment
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>

Link to comment
Share on other sites

  • Management

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>

Link to comment
Share on other sites

  • 3 months later...
  • 4 weeks later...
  • 4 weeks later...

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.

×
×
  • Create New...