Here's my class.  I start the session in the
constructor and in later methods attempt to register
session variables.  You can see I've tried a couple
different methods but none of them maintain the
session variable values.  Any suggestions?

Mike

<?php

class login {

//This variable tells the browser where to redirect to
the loginpage
var
$loginPage='http://www.somedomain.com/somepage.php';
var
$exitPage='http://www.somedomain.com/somepage.html';
var $loggedIn;
var $access;
var $accesslevel;

 function login($loggedIn, $access, $accesslevel) {   

  session_start();
  if ($loggedIn=='1') {
   $this->checkLogin();
  }
  if ($access=='1') {
   $this->checkAccess();
  }
  if ($access=='0' && $loggedIn=='0') {
   $this->authenticateLogin();
  }
 }
 
function checkLogin() { 
  
  if (session_is_registered('user')!='True') {
   session_register('unauthorizedaccess');
   $unauthorizedaccess="http://"; .
$_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'];
   header("location: $this->loginPage");
   exit();
  }
 }
 
 function checkAccess() { 
   
   if (session_is_registered('permission')=='True') {
    if
($HTTP_SESSION_VARS['permission']<$this->accesslevel)
{
     session_destroy();
     header("location: $this->exitPage");
     exit();
    }
   }
   else {
    session_register('unauthorizedaccess');
    $unauthorizedaccess="http://"; .
$_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"];
    header("location: $this->loginPage");
    exit();
   }
 }

 function authenticateLogin() { 

  if ((!$HTTP_POST_VARS['un']) ||
(!$HTTP_POST_VARS['pw'])) {
   session_register('loginError');
   header("Location: $this->loginPage");
   exit();
  }

  else {

   include("includes/db_connect.inc");

   //call db_connect function from db_connect.inc
   db_connect() or trigger_error("MySQL error #" .
mysql_errno() . ":" . mysql_error());

   $query="select * from users where username=\"" .
addslashes($HTTP_POST_VARS['un']) ."\" and
password=\"" . addslashes($HTTP_POST_VARS['pw']) .
"\"";

   $result=mysql_query($query) or trigger_error("MySQL
error #" . mysql_errno() . ":" . mysql_error());

   $foundCount = mysql_num_rows($result);

   if ($foundCount==1) {
    session_register('user');
    session_register('permission');
    session_register('company');
    session_unregister('loginError');
    for ($i=0; $i < $foundCount; $i++) {
     $row=mysql_fetch_array($result);     
     $_SESSION['user']=$row['userID'];  
     $_SESSION['permission']=$row['permissionLevel']; 

     $_SESSION['company']=$row['companyID'];
    }
    if
(session_is_registered('unauthorizedaccess')=='True')
{
    
$location=$HTTP_SESSION_VARS['unauthorizedaccess'];
     session_unregister('unauthorizedaccess');
     header("Location: $location");
     exit();
    }
   }
   else {
    session_register('loginError');
    header("Location: $this->loginPage");
    exit();
   }
  }
 }


//closes class
}

?>

--- "CPT John W. Holmes" <[EMAIL PROTECTED]>
wrote:
> From: "micro brew" <[EMAIL PROTECTED]>
> > I've been experimenting with sessions.  I can make
> > them work just fine in a normal PHP page.  But
> when I
> > create a class and try to define a session
> variable
> > within a method in the class it won't work.  I've
> > tried setting the session variable directly
> > ($_SESSION['name']='somevalue') but that didn't
> work.
> > The normal way of setting it -
> > session_start();
> > session_register('name');
> > $name='somevalue';
> >
> > - didn't work either (within the class).
> 
> "didn't work" isn't very helpful to us. How useful
> would it be for me to
> just answer you with "it worked" for me.
> 
> Show us some code examples (short ones) as to how
> this doesn't work, please.
> 
> ---John Holmes...
> 


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to