LiveUser
[ class tree: LiveUser ] [ index: LiveUser ] [ all elements ]

Source for file example.php

Documentation is available at example.php

  1. <?php
  2. /**
  3.  * Test for the LiveUser class
  4.  * ===============================
  5.  *
  6.  * This example sets up an authorization system using the LiveUser
  7.  * class. You don't have to use this to use the LiveUser class(es), but
  8.  * this way you don't need to take care of the login-process, storing
  9.  * the user object in a session and more...
  10.  *
  11.  * This example is intended to be used with the auth XML driver.
  12.  * No permission management is supported.
  13.  *
  14.  * @author
  15.  * @version $Id: example.php 203124 2005-12-18 12:41:10Z lsmith $
  16.  ***/
  17.  
  18. // Get LiveUser configuration array
  19. require_once 'conf.php';
  20.  
  21. if (!isset($liveuserConfig)) {
  22.     die('<p style="color: red; text-align: center;">The XML file isn\'t readable/writable. Add the right permissions to it and then try again.</p>');
  23. }
  24.  
  25. // The error handling stuff is not needed and used only for debugging
  26. // while LiveUser is not yet mature
  27. PEAR::setErrorHandling(PEAR_ERROR_CALLBACK'eHandler');
  28.  
  29. function eHandler($errObj)
  30. {
  31.     echo('<hr /><span style="color: red">' $errObj->getMessage(':<br />'$errObj->getUserInfo('</span><hr />');
  32. }
  33.  
  34.  
  35. class Log_liveuserlog extends Log
  36. {
  37.     function Log_liveuserlog($name ''$ident ''$conf = array(),
  38.                             $level = PEAR_LOG_DEBUG)
  39.     {
  40.         $this->_id md5(microtime());
  41.         $this->_ident $ident;
  42.         $this->_mask = Log::UPTO($level);
  43.     }
  44.  
  45.     function log($msg$level)
  46.     {
  47.         echo "message: $msg\n";
  48.     }
  49. }
  50.  
  51. class LU_Default_observer
  52. {
  53.     function notify(&$notification)
  54.     {
  55.         echo "observer called on event: " $notification->getNotificationName(" \n";
  56.     }
  57. }
  58.  
  59. // Create new LiveUser (LiveUser) object.
  60. $LU =LiveUser::factory($liveuserConfig);
  61.  
  62. $obs = new LU_Default_observer();
  63.  
  64. $LU->dispatcher->addObserver(array(&$obs'notify'));
  65.  
  66. if (!$LU->init()) {
  67.     var_dump($LU->getErrors());
  68.     die();
  69. }
  70.  
  71. $username (array_key_exists('handle'$_REQUEST)) $_REQUEST['handle': null;
  72. $password (array_key_exists('passwd'$_REQUEST)) $_REQUEST['passwd': null;
  73. $logout (array_key_exists('logout'$_REQUEST)) $_REQUEST['logout': false;
  74.  
  75. if ($logout{
  76.     $LU->logout(true);
  77. elseif($username && (!$LU->isLoggedIn(|| $LU->getProperty('handle'!= $username)) {
  78.     $LU->login($username$password);
  79. }
  80.  
  81. ?>
  82. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  83. <html>
  84. <head>
  85.     <title>Example 1</title>
  86.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  87.     <style type="text/css">
  88.     <!--
  89.     body {
  90.         font-family: Verdana, Arial, Helvetica, sans-serif;
  91.         font-size: 12px;
  92.         color: #000000;
  93.         background-color: #FFFFFF
  94.     }
  95.  
  96.     table {
  97.         border: 1px solid #000;
  98.         border-top: 0px;
  99.         border-right: 0px;
  100.         border-spacing: 0px;
  101.         border-collapse: collapse;
  102.     }
  103.  
  104.     table td {
  105.         width: 100px;
  106.         border-top: 1px solid #000;
  107.         border-right: 1px solid #000;
  108.         padding: 5px;
  109.     }
  110.  
  111.         .center {
  112.            text-align: center;
  113.     }
  114.     .center table {
  115.            margin: auto;
  116.     }
  117.     -->
  118.     </style>
  119. </head>
  120.  
  121. <body>
  122. <?php
  123. // Check if the user has logged in successfully
  124. if (!$LU->isLoggedIn()) {
  125.     if (!$username{
  126. ?>
  127.     <form name="loginform" method="post" action="example.php">
  128.     <div class="center">
  129.         <table width="300" border="0" cellspacing="0" cellpadding="5">
  130.             <tr>
  131.                 <td colspan="2"><b>Example login</b></td>
  132.             </tr>
  133.             <tr>
  134.                 <td>Handle:</td>
  135.                 <td>
  136.                     <input type="text" name="handle" maxlength="80" value="" />
  137.                 </td>
  138.             </tr>
  139.              <tr>
  140.                 <td>Password:</td>
  141.                 <td>
  142.                     <input type="password" name="passwd" maxlength="80" value="" />
  143.                 </td>
  144.             </tr>
  145.             <tr>
  146.                 <td colspan="2">
  147.                     <div class="center">
  148.                         <input type="submit" value="Login" />
  149.                     </div>
  150.                 </td>
  151.             </tr>
  152.         </table>
  153.     </div>
  154.     </form>
  155. <?php
  156.     // The user couldn't login, so let's check if the reason was that
  157.     // he's not yet been declared "valid" by an administrator.
  158.     else if ($LU->isInactive()) {
  159. ?>
  160.         <h3>Sorry kid, but one of our admins has yet approved
  161.        your user status. Please be patient. Don't call us -
  162.        we'll call you.</h3>
  163.       <p align="center"><a href="example.php?logout=1">Logout</a></p>
  164. <?php
  165.     else {
  166. ?>
  167.       <h3>Sorry, we can't let you in. Check if the spelling of
  168.       your handle and password is correct.</h3>
  169.       <p align="center"><a href="example.php?logout=1">Logout</a></p>
  170. <?php
  171.     }
  172. ?>
  173.         <p>&nbsp;</p>
  174.         <p><i>Login Data for this Example:</i></p>
  175.         <table>
  176.             <tr>
  177.                 <td style="text-align: center; font-weight: bold;">Handle</th>
  178.                 <td style="text-align: center; font-weight: bold;">Password</th>
  179.             </tr>
  180.             <tr>
  181.             <td>father</td>
  182.                 <td>father</td>
  183.             </tr>
  184.             <tr>
  185.             <td>mother</td>
  186.                 <td>mother</td>
  187.             </tr>
  188.             <tr>
  189.                 <td>child</td>
  190.                 <td>child</td>
  191.     </tr>
  192.     </table>
  193. <?php
  194. else {
  195. ?>
  196.     <h2 align="center">User logged in: <?php echo $LU->getProperty('handle')?></h2>
  197.     <h3>Congrats, you're in</h3>
  198.     <p align="center"><a href="example.php?logout=1">Logout</a></p>
  199. <?php
  200. }
  201. // Just some more debug output with no further relevance
  202. echo '<hr />Handle:';
  203. print_r($LU->getProperty('handle'));
  204. echo '<hr />Name:';
  205. print_r($LU->getProperty('name'));
  206.  
  207. echo '<hr /><pre>';
  208. print_r($LU);
  209. echo '<hr />';
  210. print_r($_SESSION);
  211. echo '<hr />';
  212. print_r($_REQUEST);
  213. echo '<hr />';
  214. echo 'Observer<br />';
  215. var_dump($GLOBALS['obs']);
  216. echo '</pre>';
  217. ?>
  218. </body>
  219. </html>

Documentation generated on Mon, 11 Mar 2019 15:40:12 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.