Home arrow PHP arrow Page 4 - Building a Logout Class

Testing the Classes - PHP

The main function of the logout class is to log out a user and then redirect the user to the login page. On a programmatic level, the logout class terminates and destroys the session variables that the login class created for the user and also logs the exit time to the database. This article will show you how to create a logout class. It is part of a series on application framework components.

TABLE OF CONTENTS:
  1. Building a Logout Class
  2. Recording the Logout Session
  3. The Database Tables
  4. Testing the Classes
By: Chris Neeman
Rating: starstarstarstarstar / 6
September 05, 2007

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

Let's test the login/logout classes and see if they work. Create a new PHP document and add the following code. I've commented on the code that I used here so it should be easy to understand:

<?php
error_reporting(E_ALL &~E_NOTICE);
// First load the DB.php class from PEAR
require_once 'DB.php';
// Now load our DBAL class
require_once('../DB/db.class.php');
//load the config file for the login class
require_once('config/login.conf.php');
//finally load the login class itself.
require_once('login.class.php'); /*
$emails =mysql_escape_string($_POST['email']);
$pass=mysql_escape_string($_POST['pass']); */
if(isset($_POST['sub'])){
  $emails=$_POST['email'];
  $pass=$_POST['pw'];
  $dp=$dbpath;
  echo "<b>Contents of db connection variable:</b>";
  print_r($dp);
  echo '<br>';
  $a = new authorization($emails,$dp,$pass);
  $y = $a->check_user();
  if($y){
    $myid=$a->getid();
    $myname=$a->getname();
    echo "<b>Userid:</b> ".$myid." <b>Username: </b>".$myname;
    echo '<table>
    <tr>
      <td><a
href="../../app_fwork/authorize/logout.class.php">Logout</a></td>
    </tr>';
    echo '</table>';
  }else{
    $err=$a->showerror();
    echo $err."ERR";
  }
  exit;
}
?>
<html>
<head></head>
 <body>
  <form id="form1" name="form1" method="post" action="<? $_SERVER
['PHP_SELF']?>">
    <table width="100%" border="0">
      <tr>
        <td colspan="2"><center>Please login below:</center></td>
      </tr>
      <?php if(!empty($errmsg)){ ?>
      <tr>
        <td width="10%" bgcolor="#FF0000"><b>ERROR!</b></td>
        <td width="90%"><?php echo $errmsg;?></a></td>
      </tr>
<?php } ?>
<?php if(isset($lmsg)){ ?>
      <tr>
        <td width="10%" ><b>Logout message</b></td>
        <td width="90%"><?php echo "You've been logged out.'";?
></td>
      </tr>
<?php } ?>
      <tr>
        <td><b>Email:</b></td>
        <td><input name="email" type="text" class="input200"
id="email" value="mubasen.gaseb@damaranet.com" size="50"/></td>
      </tr>
      <tr>
        <td><b>Password:</b></td>
        <td><label>
          <input name="pw" type="password" class="input200"
id="pw" value="pass" />
          <input name="sub" type="hidden" value="sub" />
        </label></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><a
href="../../app_fwork/authorize/logout.class.php"></a></td>
      </tr>
      <tr>
        <td><a
href="../../app_fwork/DB/validate.class.php"></a></td>
        <td><label>
          <input type="submit" name="Submit" value="Login" />
        </label></td>
      </tr>
    </table>
   </form>
</body>
</html>

The HTML form collects the username and password and then compares it with the information in the database. This is done through the checkuser() function defined in the login class. Upon successful authentication the username and id are displayed together with the contents of the connection variable. The id of the user is received through the getid() function of the login class; similarly, the username is received through the getname() function. Below is a screenshot of the login test:

Conclusion

There's a couple of things that I haven't done here in terms of security. The first is that I did not hash the passwords that are stored in the database, so please make sure that you implement this safety measure. Use either MD5() or Crypt() to encrypt the passwords. If there are other things that I have not done correctly than please, by all means, correct them before using the code. It is also a good idea to keep both the login application and users table separate from the other applications and databases. The users table should be in a separate database from the rest of the tables.



 
 
>>> More PHP Articles          >>> More By Chris Neeman
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PHP ARTICLES

- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: