"Warning: Cannot modify header information - headers already sent by (output started at J:\wwwroot\cms\includes\systemcomponent.php:24) in J:\wwwroot\cms\includes\sentry.php on line 112"
Ik blijf dan ook gewoon het inlog scherm zien en word niet doorgestuurd. Nou heb ik beetje zitten proberen om het eruit te krijgen, maar ik kom er niet uit, ik hoop dat jullie me kunnen helpen. Ik zal hieronder even de desbetreffende scripts posten.
Alvast bedankt,
Bastiaan
systemcomponent
<?php
class systemcomponent
{
var $settings;
function getSettings()
{
// System variables
$settings['siteDir'] = '';
// Database variables
$settings['dbhost'] = 'localhost';
$settings['dbusername'] = 'root';
$settings['dbpassword'] = '';
$settings['dbname'] = 'cmsdb';
return $settings;
}
}
?>
sentry
<?php
////////////////////////////////////////////////////////////////////////////////////////
// Class: sentry
// Purpose: Control access to pages
///////////////////////////////////////////////////////////////////////////////////////
class sentry
{
var $loggedin = false; // Boolean to store whether the user is logged in
var $userdata; // Array to contain user's data
function sentry()
{
session_start();
header("Cache-control: private");
}
//======================================================================================
// Log out, destroy session
function logout()
{
unset($this->userdata);
session_destroy();
return true;
}
//======================================================================================
// Log in, and either redirect to goodRedirect or badRedirect depending on success
function checkLogin($user = '', $pass = '', $group = 10, $goodRedirect = '', $badRedirect =
'')
{
// Include database and validation classes, and create objects
require_once ('dbconnector.php');
require_once ('validator.php');
$validate = new validator();
$loginConnector = new dbconnector();
// If user is already logged in then check credentials
if ($_SESSION['user'] && $_SESSION['pass'])
{
// Validate session data
if (!$validate->validateTextOnly($_SESSION['user']))
{
return false;
}
if (!$validate->validateTextOnly($_SESSION['pass']))
{
return false;
}
$getUser = $loginConnector->query("SELECT * FROM cmsusers WHERE user = '" . $_SESSION['user'] .
"' AND pass = '" . $_SESSION['pass'] . "' AND thegroup <= " . $group .
' AND enabled = 1');
if ($loginConnector->getNumRows($getUser) > 0)
{
// Existing user ok, continue
if ($goodRedirect != '')
{
header("Location: " . $goodRedirect . "?" . strip_tags(session_id()));
}
return true;
}
else
{
// Existing user not ok, logout
$this->logout();
return false;
}
// User isn't logged in, check credentials
}
else
{
// Validate input
if (!$validate->validateTextOnly($user))
{
return false;
}
if (!$validate->validateTextOnly($pass))
{
return false;
}
// Look up user in DB
$getUser = $loginConnector->query("SELECT * FROM cmsusers WHERE user = '$user' AND pass = PASSWORD('$pass') AND thegroup <= $group AND enabled = 1");
$this->userdata = $loginConnector->fetchArray($getUser);
if ($loginConnector->getNumRows($getUser) > 0)
{
// Login OK, store session details
// Log in
$_SESSION["user"] = $user;
$_SESSION["pass"] = $this->userdata['pass'];
$_SESSION["thegroup"] = $this->userdata['thegroup'];
if ($goodRedirect)
{
header("Location: " . $goodRedirect . "?" . strip_tags(session_id()));
}
return true;
}
else
{
// Login BAD
unset($this->userdata);
if ($badRedirect)
{
header("Location:" . $badRedirect);
}
return false;
}
}
}
}
?>