phobia
Terugkerende gebruiker
- Lid geworden
- 4 sep 2006
- Berichten
- 1.777
Ik heb deze controller:
Mijn database.php is dit:
en dit is de login:
Nu verwacht ik dat ik een array terug krijg met gegevens.
Maar de pagina blijft leeg.
Door echo's ben ik er achter dat het komt door de Fetch functie.
Doe ik een print_r in de Fetch fuctie, dan verschijnen de gegevens op het scherm.
Maar hij blijkt de gegevens niet return te gevens aan mijn login functie!
Kan iemand mij vertellen waarom hier niet gebeurt wat ik verwacht.
Ergens sterft het script ik ik weet niet waar en waarom!
Ik laad dit allemaal op een index.php waar ik ook de error-report aan heb staan!
PHP:
include('classes/database.php');
include('classes/login_class.php');
$conn = new database();
$login = new login();
$conn->db = $db;
$conn->Connect();
if($login->check('GeeJee', '2011')) {
echo 'Okey';
echo '<pre>';
print_r($login->check('GeeJee', '2011'));
echo '</pre>';
} else {
echo 'Failed';
}
Mijn database.php is dit:
PHP:
<?PHP
class database {
private $connection = FALSE;
private $result = FALSE;
public $table_array = array();
public $db = '' ;
// __construct
public function Connect() {
global $host ;// host Database
global $user ;// username Database
global $pass ;// password Database
global $db ;// name Database
$this->connection = mysql_connect($host, $user, $pass);
if ($this->connection) {
$this->db = mysql_select_db($db);
return TRUE;
} else {
return FALSE;
}
}
// end Connect
// protection strings in to DB
////// protect($string)
public function protect($string) {
$this->connection;
$string = mysql_real_escape_string($string);
$string = strip_tags($string);
$string = addslashes($string);
return $string;
}
// end protect
// check if tables are made
public function check_tables() {
foreach($this->table_array as $key) {
$result = mysql_query("show tables like '$key'",$this->connection) or die ('error reading database');
if (mysql_num_rows ($result)<1)
$error[] = $key;
}
if(isset($error)) {
return $error;
} else {
return FALSE;
}
}
// end check_tables
// Run Query in database
public function Query($query,$lowLimit = 0, $maxLimit = 0) {
if($lowLimit > 0) {
$query .= " Limit $lowLimit";
if($maxLimit > 0) {
$query .= " ,$maxLimit";
}
}
$result = mysql_query($query)or die (mysql_error());
if ($result) {
$this->result = $result;
} else {
return FALSE;
}
}
// end Run Query
// Fetch Query in database
public function Fetch() {
if ($this->result) {
while($fetch = mysql_fetch_array($this->result)or die(mysql_error())) {
$result[] = $fetch;
}
return $result;
} else {
return FALSE;
}
}
// end Fetch Query
// RowCount Query in database
public function RowCount() {
if ($this->result) {
$count = mysql_num_rows($this->result)or die(mysql_error());
return $count;
} else {
return FALSE;
}
}
// end RowCount
// close database connection
///////// close()
public function Close() {
if ($this->connection) mysql_close($this->connection);
}
// end Close
}//end Class
?>
en dit is de login:
PHP:
<?PHP
class login extends database
{
// check if in database
// check($Uname, $pass
public function check($Uname, $pass) {
//$this->Connect();
//clean strings
$Uname = $this->protect($Uname);
$pass = $this->protect($pass);
$SQL = "SELECT * FROM users WHERE user_login = '".$Uname."' AND user_authorization = '".$pass."'";
$this->Query($SQL,1);
if($this->RowCount() > 0) {
// user found
return $this->Fetch();
} else {
// user NOT found
return FALSE;
}
$this->Close();
}
// end check
} // end class login
?>
Nu verwacht ik dat ik een array terug krijg met gegevens.
Maar de pagina blijft leeg.
Door echo's ben ik er achter dat het komt door de Fetch functie.
Doe ik een print_r in de Fetch fuctie, dan verschijnen de gegevens op het scherm.
Maar hij blijkt de gegevens niet return te gevens aan mijn login functie!
Kan iemand mij vertellen waarom hier niet gebeurt wat ik verwacht.
Ergens sterft het script ik ik weet niet waar en waarom!
Ik laad dit allemaal op een index.php waar ik ook de error-report aan heb staan!