How to clear the buffer to use these files for a login validation. I get error: Cannot modify header information - headers already sent by (output started at /var/www/html/test/includes/clsDB.php:134) in /var/www/html/test/includes/clsVERIFY.php on line 51
#================================================
The login form
#================================================
<?
if (isset($username) && isset($password)) {
include('includes/clsVERIFY.php');
$verify = new clsVERIFY();
$call = $verify->Login($username,$password);
}
else {
?>
<HTML>
<HEAD>
<TITLE>TEST CLASS</TITLE>
</HEAD>
<BODY bgcolor="#999999">
<br><center>
<? echo $_GET['msg']; ?><br><br>
<form action="" method="post">Username:<br>
<input name="username" type="text"><br>
Password:<br>
<input name="password" type="text"><br><br>
<input name="submit" type="submit" value="Login">
</form>
</center>
</BODY>
</HTML>
<?
}
?>
#=========================================
eof
#=========================================
#=========================================
file clsVERIFY
#=========================================
<?
require_once('includes/clsDB.php');
global $DB;
$DB = new objDB("mysql");
class clsVERIFY {
var $username;
var $password;
var $validname;
var $validpass;
var $valid;
function Login($username,$password) {
$valid = 0;
global $DB;
$query = "SELECT username,password FROM users ";
$query .= "WHERE username=\"$username\" AND password=\"$password\" LIMIT 1";
$result = $DB->runUpdate($query);
$this->validname = $result['username'];
$this->validpass = $result['password'];
if ($this->validname == $username) {
$valid = 1;
}
else {
$valid = 0;
}
if ($this->validpass == $password) {
$valid = $valid + 1;
}
else {
$valid = 0;
}
switch ($valid) {
case 0:
$msg = "Invalid Login!";
header("location:../login.php?msg".$msg);
exit();
break;
case 1:
$msg = "Invalid Password!";
header("location:../login.php?msg".$msg);
exit();
break;
case 2:
$msg = "Welcome ".$username;
header("location:../index.php?msg".$msg);
exit();
break;
default:
trigger_error("Error:Invalid user information ----- objVERIFY:Login.valid");
break;
} // end switch
} // end function Login
} // end class
?>[/COLOR]
#=============================================
#EOF
#=============================================
#=============================================
file clsDB
#=============================================
<?
global $DBCONNECTION;
// set global connection data
// -------------------------------------------------------
$DBCONNECTION["host"] = "localhost";
$DBCONNECTION["user"] = "joseph-batson";
$DBCONNECTION["pass"] = "FJ40bmwz-3";
$DBCONNECTION["data"] = "clm";
// create class for db connection, queries
// ------------------------------------------------------
class objDB {
// set class variables
// ------------------------------------------------
var $connection;
var $type;
// create function to select db type and create connection
// ---------------------------------------------------------------------
function objDB($dbtype) {
$this->type = $dbtype;
global $DBCONNECTION;
$dbcnx["hostname"] = $DBCONNECTION["host"];
$dbcnx["username"] = $DBCONNECTION["user"];
$dbcnx["password"] = $DBCONNECTION["pass"];
$dbcnx["database"] = $DBCONNECTION["data"];
// create connection based on db type
// ------------------------------------------------------------------
switch ($this->type) {
CASE "mysql":
if (!($this->connection = @mysql_connect($dbcnx["hostname"], $dbcnx["username"], $dbcnx["password"]))) {
}
else {
if (!(mysql_select_db($dbcnx["database"], $this->connection))) {
}
}
break;
CASE "mssql":
if (!($this->connection = @mssql_connect($dbcnx["hostname"], $dbcnx["username"], $dbcnx["password"]))) {
}
else {
if (!(mssql_select_db($dbcnx["database"], $this->connection))) {
}
}
break;
default:
trigger_error('Error: Could not connect to database type: '.$this->type.' -- objDB:db.Constructor');
break;
} // END SWITHCH
} // END FUNCTION OBJDBTYPE
// general function to run SELECT queries
// ------------------------------------------------------------------
function runQuery($query) {
switch ($this->type) {
CASE "mysql":
$result = mysql_query("$query", $this->connection);
if (!($result)) {
die ("Error: Query failed: ".$this->type." -- ".mysql_error());
}
while ($row = mysql_fetch_array($result)) {
array_push($rows, $row);
}
return $rows;
mysql_close($this->connection);
break;
CASE "mssql":
$result = mssql_query("$query", $this->connection);
if (!($result)) {
die ("Error: Query failed: ".$this->type." -- ".mssql_get_last_message());
}
while ($row = mssql_fetch_array($result)) {
array_push($rows, $row);
}
return $rows;
mssql_close($this->connection);
break;
default:
trigger_error('Error: Could not connect to database type: '.$this->type.' -- objDB:db.runQuery');
break;
} // END SWITHCH
} // END FUNCTION RUNQUERY
// function to run update, insert and delete queries
// ------------------------------------------------------------------
function runUpdate ($query) {
Switch ($this->type) {
CASE "mysql":
$result = mysql_query("$query", $this->connection);
if (!($result)) {
die ('Error: Could not run update Query on '.$this->type.' -- objDB:db.runUpdate');
}
return $result;
mysql_close($this->connection);
break;
CASE "mssql":
$result = mssql_query("$query", $this->connection);
if (!($result)) {
die ('Error: Could not run update Query on '.$this->type.' -- objDB:db.runUpdate');
}
return $result;
mssql_close($this->connection);
break;
default:
trigger_error('Error: Could not connect to database type: '.$this->type.' -- objDB:db.runUpdate');
break;
} // END SWITHCH
} // END FUNCTION UPDATEQUERY
} // END CLASS OBJDB
?>[/COLOR]
#=========================================
eof
#=========================================
I have tried using the ob_start() and ob_end_flush() but maybe where I am placing them is wrong.