killer4all2
Gebruiker
- Lid geworden
- 26 mei 2009
- Berichten
- 449
Goeden dag,
Momenteel ben ik bezig met het leren van oop programmeren en dit gaat mij goed af tot nu toe. Ik heb alleen 1 ding wat ik snap.
Waarom werkt het eerste script wel en het tweede script niet? De eerst is bedoeld om te controleren of de combinatie tussen het ingevulde passwoord en username in de database bestaat en returned dan true or false.
De tweede doet dit ook alleen dan controleert hij voor email en antwoord. Het zijn beide varchars in de database. Bij validate login zou er bijvoorbeeld een waarde meekomen als. $user = "username" en bij $pass = "password". Bij validate recover zou dan meekomen $email = "mijnemail@email.com", $question = "vraag", $answer="antwoord";
(momenteel word er nog niks gedaan met $question omdat ik eerst graag wou weten waarom dit niet werkt voordat ik verder ga met het bouwen van meerdere functionaliteiten)
Ik heb al aardig wat op internet gezocht, maar het word mij niet echt duidelijk waarom dit niet werkt. Van de error die weergeven word, word ik ook niet veel wijzer. Ik hoop dat jullie mij kunnen helpen.
Alvast bedankt!,
Gr Rowan
Error:
[1]
[2]
Gehele class
Momenteel ben ik bezig met het leren van oop programmeren en dit gaat mij goed af tot nu toe. Ik heb alleen 1 ding wat ik snap.
Waarom werkt het eerste script wel en het tweede script niet? De eerst is bedoeld om te controleren of de combinatie tussen het ingevulde passwoord en username in de database bestaat en returned dan true or false.
De tweede doet dit ook alleen dan controleert hij voor email en antwoord. Het zijn beide varchars in de database. Bij validate login zou er bijvoorbeeld een waarde meekomen als. $user = "username" en bij $pass = "password". Bij validate recover zou dan meekomen $email = "mijnemail@email.com", $question = "vraag", $answer="antwoord";
(momenteel word er nog niks gedaan met $question omdat ik eerst graag wou weten waarom dit niet werkt voordat ik verder ga met het bouwen van meerdere functionaliteiten)
Ik heb al aardig wat op internet gezocht, maar het word mij niet echt duidelijk waarom dit niet werkt. Van de error die weergeven word, word ik ook niet veel wijzer. Ik hoop dat jullie mij kunnen helpen.
Alvast bedankt!,
Gr Rowan
Error:
Code:
Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\icms\models\m_auth.php on line 83
Call Stack
# Time Memory Function Location
1 0.0007 689752 {main}( ) ..\recover.php:0
2 0.0039 743120 Auth->validateRecover( ) ..\recover.php:27
PHP:
$Database = new mysqli($server, $user, $pass, $db);
[1]
PHP:
function validateLogin($user, $pass)
{
//acces database
global $Database;
// create query
if($stmt = $Database->prepare("SELECT * FROM users WHERE username = ? AND password = ?"))
{
$stmt->bind_param("ss", $user, md5($pass . $this->salt));
$stmt->execute();
$stmt->store_result();
// check for num_rows
if($stmt->num_rows() > 0)
{
// succes
$stmt->close();
return TRUE;
}
else
{
$stmt->close();
return FALSE;
}
}
else
{
die("ERROR: Could not prepare MySqli statement");
}
}
[2]
PHP:
function validateRecover($email, $question, $answer)
{
//acces database
global $Database;
//create query
if($stmt = $Database->prepare("SELECT * FROM users WHERE email = ? AND answer = ?"))
{
$stmt->bind_param("ss", $email, $answer);
$stmt->execute();
$stmt->store_result();
//check for num_rows if there are any results
if($stmt->num_rows() > 0)
{
$stmt->close();
return TRUE;
}
else
{
$stmt->close();
return FALSE;
}
}
else
{
die("ERROR: Could not prepare MySqli statement");
}
}
Gehele class
PHP:
<?php
/*
Authorization Class
Deal with auth tasks
*/
class Auth
{
private $salt = 'j4H9?s0d';
/*
Constructor
*/
function __construct()
{
}
/*
Login functions
*/
function validateLogin($user, $pass)
{
//acces database
global $Database;
// create query
if($stmt = $Database->prepare("SELECT * FROM users WHERE username = ? AND password = ?"))
{
$stmt->bind_param("ss", $user, md5($pass . $this->salt));
$stmt->execute();
$stmt->store_result();
// check for num_rows
if($stmt->num_rows() > 0)
{
// succes
$stmt->close();
return TRUE;
}
else
{
$stmt->close();
return FALSE;
}
}
else
{
die("ERROR: Could not prepare MySqli statement");
}
}
function checkLoginStatus()
{
if(isset($_SESSION['loggedin']))
{
return TRUE;
}
else
{
return FALSE;
}
}
function logout()
{
session_destroy();
session_start();
}
/*
Account functions
*/
function validateRecover($email, $question, $answer)
{
//acces database
global $Database;
//create query
if($stmt = $Database->prepare("SELECT * FROM users WHERE email = ? AND answer = ?"))
{
$stmt->bind_param("ss", $email, $answer);
$stmt->execute();
$stmt->store_result();
//check for num_rows if there are any results
if($stmt->num_rows() > 0)
{
$stmt->close();
return TRUE;
}
else
{
$stmt->close();
return FALSE;
}
}
else
{
die("ERROR: Could not prepare MySqli statement");
}
}
}
?>
Laatst bewerkt: