njoye njoye - 5 months ago 46
PHP Question

Class not found when include is working

I have these files:

/index.php
/Auth.class.php
/Config.class.php
/logcheck.php
/register.php


I am trying to include
Auth.class.php
and
Config.class.php
in
register.php
and
logcheck.php
, which is working fine like this:

include("Auth.class.php");
include("Config.class.php");


But when i'm trying to create an object of one of these classes in
register.php
i'm getting the
Fatal Error: Class 'Config' not found in....
error message.

The imports are working but creating an object not.
Config.class.php
and
Auth.class.php
both belong to PHPAuth. I didn't use short tags. If you need any more information, just ask.

Edit:

register.php

<?php
include("languages/en_GB.php");
include("Config.class.php");
include("Auth.class.php");

$dbh = new PDO("mysql:host=localhost;dbname=phpauth", "root", "");

$config = new Config($dbh);
$auth = new Auth($dbh, $config, $lang);

$register = $auth->register($_POST['email'], $_POST['password'], $_POST['password']);

if($register['error']) {
// Something went wrong, display error message
echo '<div class="error">' . $register['message'] . '</div>';
} else {
// Logged in successfully, set cookie, display success message
/* setcookie($config->cookie_name, $login['hash'], $login['expire'], $config->cookie_path, $config->cookie_domain, $config->cookie_secure, $config->cookie_http);*/
echo '<div class="success">' . $login['message'] . '</div>';
}
?>


Config.class.php

<?php
namespace PHPAuth;

/**
* PHPAuth Config class
*/
class Config
{
private $dbh;
private $config;
private $config_table = 'config';

/**
*
* Config::__construct()
*
* @param \PDO $dbh
* @param string $config_table
*/
public function __construct(\PDO $dbh, $config_table = 'config')
{
$this->dbh = $dbh;

if (func_num_args() > 1)
$this->config_table = $config_table;

$this->config = array();

$query = $this->dbh->query("SELECT * FROM {$this->config_table}");

while($row = $query->fetch()) {
$this->config[$row['setting']] = $row['value'];
}

$this->setForgottenDefaults(); // Danger foreseen is half avoided.
}

/**
* Config::__get()
*
* @param mixed $setting
* @return string
*/
public function __get($setting)
{
return $this->config[$setting];
}

/**
* Config::__set()
*
* @param mixed $setting
* @param mixed $value
* @return bool
*/
public function __set($setting, $value)
{
$query = $this->dbh->prepare("UPDATE {$this->config_table} SET value = ? WHERE setting = ?");

if($query->execute(array($value, $setting))) {
$this->config[$setting] = $value;
return true;
}
return false;
}

/**
* Config::override()
*
* @param mixed $setting
* @param mixed $value
* @return bool
*/
public function override($setting, $value){

$this->config[$setting] = $value;
return true;

}

/**
* Danger foreseen is half avoided.
*
* Set default values.
* REQUIRED FOR USERS THAT DOES NOT UPDATE THEIR `config` TABLES.
*/
private function setForgottenDefaults()
{
// verify* values.

if (! isset($this->config['verify_password_min_length']) )
$this->config['verify_password_min_length'] = 3;

if (! isset($this->config['verify_password_max_length']) )
$this->config['verify_password_max_length'] = 150;

if (! isset($this->config['verify_password_strong_requirements']) )
$this->config['verify_password_strong_requirements'] = 1;

if (! isset($this->config['verify_email_min_length']) )
$this->config['verify_email_min_length'] = 5;

if (! isset($this->config['verify_email_max_length']) )
$this->config['verify_email_max_length'] = 100;

if (! isset($this->config['verify_email_use_banlist']) )
$this->config['verify_email_use_banlist'] = 1;

// emailmessage* values

if (! isset($this->config['emailmessage_suppress_activation']) )
$this->config['emailmessage_suppress_activation'] = 0;

if (! isset($this->config['emailmessage_suppress_reset']) )
$this->config['emailmessage_suppress_reset'] = 0;

}


}


Auth.class.php

<?php

namespace PHPAuth;

use ZxcvbnPhp\Zxcvbn;
use PHPMailer\PHPMailer\PHPMailer;

/***
* Auth class
* Required PHP 5.4 and above.
*/

class Auth
{
private $dbh;
public $config;
public $lang;
/***
* Initiates database connection
*/

public function __construct(\PDO $dbh, $config, $language = "en_GB")
{
$this->dbh = $dbh;
$this->config = $config;

if (version_compare(phpversion(), '5.4.0', '<')) {
die('PHP 5.4.0 required for PHPAuth engine!');
}

if (version_compare(phpversion(), '5.5.0', '<')) {
require("files/password.php");
}

// Load language
require "languages/{$language}.php";
$this->lang = $lang;

date_default_timezone_set($this->config->site_timezone);
}

/***
* Logs a user in
* @param string $email
* @param string $password
* @param int $remember
* @param string $captcha = NULL
* @return array $return
*/

public function login($email, $password, $remember = 0, $captcha = NULL)
{
$return['error'] = true;

$block_status = $this->isBlocked();
if($block_status == "verify")
{
if($this->checkCaptcha($captcha) == false)
{
$return['message'] = $this->lang["user_verify_failed"];
return $return;
}
}
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return $return;
}

$validateEmail = $this->validateEmail($email);
$validatePassword = $this->validatePassword($password);

if ($validateEmail['error'] == 1) {
$this->addAttempt();

$return['message'] = $this->lang["email_password_invalid"];
return $return;
} elseif($validatePassword['error'] == 1) {
$this->addAttempt();

$return['message'] = $this->lang["email_password_invalid"];
return $return;
} elseif($remember != 0 && $remember != 1) {
$this->addAttempt();

$return['message'] = $this->lang["remember_me_invalid"];
return $return;
}

$uid = $this->getUID(strtolower($email));

if(!$uid) {
$this->addAttempt();

$return['message'] = $this->lang["email_password_incorrect"];
return $return;
}

$user = $this->getBaseUser($uid);

if (!password_verify($password, $user['password'])) {
$this->addAttempt();

$return['message'] = $this->lang["email_password_incorrect"];
return $return;
}

if ($user['isactive'] != 1) {
$this->addAttempt();

$return['message'] = $this->lang["account_inactive"];
return $return;
}

$sessiondata = $this->addSession($user['uid'], $remember);

if($sessiondata == false) {
$return['message'] = $this->lang["system_error"] . " #01";
return $return;
}

$return['error'] = false;
$return['message'] = $this->lang["logged_in"];

$return['hash'] = $sessiondata['hash'];
$return['expire'] = $sessiondata['expiretime'];

return $return;
}

/***
* Creates a new user, adds them to database
* @param string $email
* @param string $password
* @param string $repeatpassword
* @param array $params
* @param string $captcha = NULL
* @param bool $sendmail = NULL
* @return array $return
*/

public function register($email, $password, $repeatpassword, $params = Array(), $captcha = NULL, $sendmail = NULL)
{
$return['error'] = true;

$block_status = $this->isBlocked();
if($block_status == "verify")
{
if($this->checkCaptcha($captcha) == false)
{
$return['message'] = $this->lang["user_verify_failed"];
return $return;
}
}
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return $return;
}

if ($password !== $repeatpassword) {
$return['message'] = $this->lang["password_nomatch"];
return $return;
}

// Validate email
$validateEmail = $this->validateEmail($email);
if ($validateEmail['error'] == 1) {
$return['message'] = $validateEmail['message'];
return $return;
}

// Validate password
$validatePassword = $this->validatePassword($password);
if ($validatePassword['error'] == 1) {
$return['message'] = $validatePassword['message'];
return $return;
}

$zxcvbn = new Zxcvbn();

if($zxcvbn->passwordStrength($password)['score'] < intval($this->config->password_min_score)) {
$return['message'] = $this->lang['password_weak'];
return $return;
}

if ($this->isEmailTaken($email)) {
$this->addAttempt();

$return['message'] = $this->lang["email_taken"];
return $return;
}

$addUser = $this->addUser($email, $password, $params, $sendmail);

if($addUser['error'] != 0) {
$return['message'] = $addUser['message'];
return $return;
}

$return['error'] = false;
$return['message'] = ($sendmail == true ? $this->lang["register_success"] : $this->lang['register_success_emailmessage_suppressed'] );

return $return;
}

/***
* Activates a user's account
* @param string $key
* @return array $return
*/

public function activate($key)
{
$return['error'] = true;

$block_status = $this->isBlocked();
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return $return;
}

if(strlen($key) !== 20) {
$this->addAttempt();

$return['message'] = $this->lang["activationkey_invalid"];
return $return;
}

$getRequest = $this->getRequest($key, "activation");

if($getRequest['error'] == 1) {
$return['message'] = $getRequest['message'];
return $return;
}

if($this->getBaseUser($getRequest['uid'])['isactive'] == 1) {
$this->addAttempt();
$this->deleteRequest($getRequest['id']);

$return['message'] = $this->lang["system_error"] . " #02";
return $return;
}

$query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET isactive = ? WHERE id = ?");
$query->execute(array(1, $getRequest['uid']));

$this->deleteRequest($getRequest['id']);

$return['error'] = false;
$return['message'] = $this->lang["account_activated"];

return $return;
}

/***
* Creates a reset key for an email address and sends email
* @param string $email
* @return array $return
*/

public function requestReset($email, $sendmail = NULL)
{
$return['error'] = true;
$block_status = $this->isBlocked();
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return $return;
}

$validateEmail = $this->validateEmail($email);

if ($validateEmail['error'] == 1) {
$return['message'] = $this->lang["email_invalid"];
return $return;
}

$query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
$query->execute(array($email));

if ($query->rowCount() == 0) {
$this->addAttempt();

$return['message'] = $this->lang["email_incorrect"];
return $return;
}

$addRequest = $this->addRequest($query->fetch(\PDO::FETCH_ASSOC)['id'], $email, "reset", $sendmail);
if ($addRequest['error'] == 1) {
$this->addAttempt();

$return['message'] = $addRequest['message'];
return $return;
}

$return['error'] = false;
$return['message'] = ($sendmail == true ? $this->lang["reset_requested"] : $this->lang['reset_requested_emailmessage_suppressed']);

return $return;
}

/***
* Logs out the session, identified by hash
* @param string $hash
* @return boolean
*/

public function logout($hash)
{
if (strlen($hash) != 40) {
return false;
}

return $this->deleteSession($hash);
}

/***
* Hashes provided password with Bcrypt
* @param string $password
* @param string $password
* @return string
*/

public function getHash($password)
{
return password_hash($password, PASSWORD_BCRYPT, ['cost' => $this->config->bcrypt_cost]);
}

/***
* Gets UID for a given email address and returns an array
* @param string $email
* @return array $uid
*/


public function getUID($email)
{
$query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
$query->execute(array($email));

if($query->rowCount() == 0) {
return false;
}

return $query->fetch(\PDO::FETCH_ASSOC)['id'];
}

/***
* Creates a session for a specified user id
* @param int $uid
* @param boolean $remember
* @return array $data
*/

private function addSession($uid, $remember)
{
$ip = $this->getIp();
$user = $this->getBaseUser($uid);

if(!$user) {
return false;
}

$data['hash'] = sha1($this->config->site_key . microtime());
$agent = $_SERVER['HTTP_USER_AGENT'];

$this->deleteExistingSessions($uid);

if($remember == true) {
$data['expire'] = date("Y-m-d H:i:s", strtotime($this->config->cookie_remember));
$data['expiretime'] = strtotime($data['expire']);
} else {
$data['expire'] = date("Y-m-d H:i:s", strtotime($this->config->cookie_forget));
$data['expiretime'] = 0;
}

$data['cookie_crc'] = sha1($data['hash'] . $this->config->site_key);

$query = $this->dbh->prepare("INSERT INTO {$this->config->table_sessions} (uid, hash, expiredate, ip, agent, cookie_crc) VALUES (?, ?, ?, ?, ?, ?)");

if(!$query->execute(array($uid, $data['hash'], $data['expire'], $ip, $agent, $data['cookie_crc']))) {
return false;
}

$data['expire'] = strtotime($data['expire']);
return $data;
}

/***
* Removes all existing sessions for a given UID
* @param int $uid
* @return boolean
*/

private function deleteExistingSessions($uid)
{
$query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE uid = ?");
$query->execute(array($uid));

return $query->rowCount() == 1;
}

/***
* Removes a session based on hash
* @param string $hash
* @return boolean
*/

private function deleteSession($hash)
{
$query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE hash = ?");
$query->execute(array($hash));

return $query->rowCount() == 1;
}

/**
* Function to check if a session is valid
* @param string $hash
* @return boolean
*/

public function checkSession($hash)
{
$ip = $this->getIp();

$block_status = $this->isBlocked();
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return false;
}
if (strlen($hash) != 40) {
return false;
}

$query = $this->dbh->prepare("SELECT id, uid, expiredate, ip, agent, cookie_crc FROM {$this->config->table_sessions} WHERE hash = ?");
$query->execute(array($hash));

if ($query->rowCount() == 0) {
return false;
}

$row = $query->fetch(\PDO::FETCH_ASSOC);

$sid = $row['id'];
$uid = $row['uid'];
$expiredate = strtotime($row['expiredate']);
$currentdate = strtotime(date("Y-m-d H:i:s"));
$db_ip = $row['ip'];
$db_agent = $row['agent'];
$db_cookie = $row['cookie_crc'];

if ($currentdate > $expiredate) {
$this->deleteExistingSessions($uid);

return false;
}

if ($ip != $db_ip) {
return false;
}

if ($db_cookie == sha1($hash . $this->config->site_key)) {
return true;
}

return false;
}

/**
* Retrieves the UID associated with a given session hash
* @param string $hash
* @return int $uid
*/

public function getSessionUID($hash)
{
$query = $this->dbh->prepare("SELECT uid FROM {$this->config->table_sessions} WHERE hash = ?");
$query->execute(array($hash));

if ($query->rowCount() == 0) {
return false;
}

return $query->fetch(\PDO::FETCH_ASSOC)['uid'];
}

/**
* Checks if an email is already in use
* @param string $email
* @return boolean
*/

public function isEmailTaken($email)
{
$query = $this->dbh->prepare("SELECT count(*) FROM {$this->config->table_users} WHERE email = ?");
$query->execute(array($email));

if ($query->fetchColumn() == 0) {
return false;
}

return true;
}

/**
* Adds a new user to database
* @param string $email -- email
* @param string $password -- password
* @param array $params -- additional params
* @return int $uid
*/

private function addUser($email, $password, $params = array(), &$sendmail)
{
$return['error'] = true;

$query = $this->dbh->prepare("INSERT INTO {$this->config->table_users} VALUES ()");

if(!$query->execute()) {
$return['message'] = $this->lang["system_error"] . " #03";
return $return;
}

$uid = $this->dbh->lastInsertId();
$email = htmlentities(strtolower($email));

if($sendmail) {
$addRequest = $this->addRequest($uid, $email, "activation", $sendmail);

if($addRequest['error'] == 1) {
$query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
$query->execute(array($uid));

$return['message'] = $addRequest['message'];
return $return;
}

$isactive = 0;
} else {
$isactive = 1;
}

$password = $this->getHash($password);

if (is_array($params)&& count($params) > 0) {
$customParamsQueryArray = Array();

foreach($params as $paramKey => $paramValue) {
$customParamsQueryArray[] = array('value' => $paramKey . ' = ?');
}

$setParams = ', ' . implode(', ', array_map(function ($entry) {
return $entry['value'];
}, $customParamsQueryArray));
} else { $setParams = ''; }

$query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET email = ?, password = ?, isactive = ? {$setParams} WHERE id = ?");

$bindParams = array_values(array_merge(array($email, $password, $isactive), $params, array($uid)));

if(!$query->execute($bindParams)) {
$query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
$query->execute(array($uid));

$return['message'] = $this->lang["system_error"] . " #04";
return $return;
}

$return['error'] = false;
return $return;
}

/**
* Gets basic user data for a given UID and returns an array
* @param int $uid
* @return array $data
*/

private function getBaseUser($uid)
{
$query = $this->dbh->prepare("SELECT email, password, isactive FROM {$this->config->table_users} WHERE id = ?");
$query->execute(array($uid));

if ($query->rowCount() == 0) {
return false;
}

$data = $query->fetch(\PDO::FETCH_ASSOC);

if (!$data) {
return false;
}

$data['uid'] = $uid;
return $data;
}

/**
* Gets public user data for a given UID and returns an array, password is not returned
* @param int $uid
* @return array $data
*/

public function getUser($uid)
{
$query = $this->dbh->prepare("SELECT * FROM {$this->config->table_users} WHERE id = ?");
$query->execute(array($uid));

if ($query->rowCount() == 0) {
return false;
}

$data = $query->fetch(\PDO::FETCH_ASSOC);

if (!$data) {
return false;
}

$data['uid'] = $uid;
unset($data['password']);
return $data;
}

/**
* Allows a user to delete their account
* @param int $uid
* @param string $password
* @param string $captcha = NULL
* @return array $return
*/

public function deleteUser($uid, $password, $captcha = NULL)
{
$return['error'] = true;

$block_status = $this->isBlocked();
if($block_status == "verify")
{
if($this->checkCaptcha($captcha) == false)
{
$return['message'] = $this->lang["user_verify_failed"];
return $return;
}
}
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return $return;
}

$validatePassword = $this->validatePassword($password);

if($validatePassword['error'] == 1) {
$this->addAttempt();

$return['message'] = $validatePassword['message'];
return $return;
}

$user = $this->getBaseUser($uid);

if(!password_verify($password, $user['password'])) {
$this->addAttempt();

$return['message'] = $this->lang["password_incorrect"];
return $return;
}

$query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");

if(!$query->execute(array($uid))) {
$return['message'] = $this->lang["system_error"] . " #05";
return $return;
}

$query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE uid = ?");

if(!$query->execute(array($uid))) {
$return['message'] = $this->lang["system_error"] . " #06";
return $return;
}

$query = $this->dbh->prepare("DELETE FROM {$this->config->table_requests} WHERE uid = ?");

if(!$query->execute(array($uid))) {
$return['message'] = $this->lang["system_error"] . " #07";
return $return;
}

$return['error'] = false;
$return['message'] = $this->lang["account_deleted"];

return $return;
}

/**
* Creates an activation entry and sends email to user
* @param int $uid
* @param string $email
* @param string $type
* @param boolean $sendmail = NULL
* @return boolean
*/

private function addRequest($uid, $email, $type, &$sendmail)
{
$return['error'] = true;

if($type != "activation" && $type != "reset") {
$return['message'] = $this->lang["system_error"] . " #08";
return $return;
}

// if not set manually, check config data
if($sendmail === NULL)
{
$sendmail = true;
if($type == "reset" && $this->config->emailmessage_suppress_reset === true ) {
$sendmail = false;
$return['error'] = false;
return $return;
}
if ($type == "activation" && $this->config->emailmessage_suppress_activation === true ) {
$sendmail = false;
$return['error'] = false;
return $return;
}
}

$query = $this->dbh->prepare("SELECT id, expire FROM {$this->config->table_requests} WHERE uid = ? AND type = ?");
$query->execute(array($uid, $type));

if($query->rowCount() > 0) {
$row = $query->fetch(\PDO::FETCH_ASSOC);

$expiredate = strtotime($row['expire']);
$currentdate = strtotime(date("Y-m-d H:i:s"));

if ($currentdate < $expiredate) {
$return['message'] = $this->lang["reset_exists"];
return $return;
}

$this->deleteRequest($row['id']);
}

if($type == "activation" && $this->getBaseUser($uid)['isactive'] == 1) {
$return['message'] = $this->lang["already_activated"];
return $return;
}

$key = $this->getRandomKey(20);
$expire = date("Y-m-d H:i:s", strtotime($this->config->request_key_expiration));

$query = $this->dbh->prepare("INSERT INTO {$this->config->table_requests} (uid, rkey, expire, type) VALUES (?, ?, ?, ?)");

if(!$query->execute(array($uid, $key, $expire, $type))) {
$return['message'] = $this->lang["system_error"] . " #09";
return $return;
}

$request_id = $this->dbh->lastInsertId();

if($sendmail === true)
{
// Check configuration for SMTP parameters
$mail = new PHPMailer;
if($this->config->smtp) {
$mail->isSMTP();
$mail->Host = $this->config->smtp_host;
$mail->SMTPAuth = $this->config->smtp_auth;
if(!is_null($this->config->smtp_auth)) {
$mail->Username = $this->config->smtp_username;
$mail->Password = $this->config->smtp_password;
}
$mail->Port = $this->config->smtp_port;

if(!is_null($this->config->smtp_security)) {
$mail->SMTPSecure = $this->config->smtp_security;
}
}

$mail->From = $this->config->site_email;
$mail->FromName = $this->config->site_name;
$mail->addAddress($email);
$mail->isHTML(true);

if($type == "activation") {

$mail->Subject = sprintf($this->lang['email_activation_subject'], $this->config->site_name);
$mail->Body = sprintf($this->lang['email_activation_body'], $this->config->site_url, $this->config->site_activation_page, $key);
$mail->AltBody = sprintf($this->lang['email_activation_altbody'], $this->config->site_url, $this->config->site_activation_page, $key);
}
else {
$mail->Subject = sprintf($this->lang['email_reset_subject'], $this->config->site_name);
$mail->Body = sprintf($this->lang['email_reset_body'], $this->config->site_url, $this->config->site_password_reset_page, $key);
$mail->AltBody = sprintf($this->lang['email_reset_altbody'], $this->config->site_url, $this->config->site_password_reset_page, $key);
}

if(!$mail->send()) {
$this->deleteRequest($request_id);

$return['message'] = $this->lang["system_error"] . " #10";
return $return;
}
}

$return['error'] = false;
return $return;
}

/**
* Returns request data if key is valid
* @param string $key
* @param string $type
* @return array $return
*/

public function getRequest($key, $type)
{
$return['error'] = true;

$query = $this->dbh->prepare("SELECT id, uid, expire FROM {$this->config->table_requests} WHERE rkey = ? AND type = ?");
$query->execute(array($key, $type));

if ($query->rowCount() === 0) {
$this->addAttempt();

$return['message'] = $this->lang[$type."key_incorrect"];
return $return;
}

$row = $query->fetch();

$expiredate = strtotime($row['expire']);
$currentdate = strtotime(date("Y-m-d H:i:s"));

if ($currentdate > $expiredate) {
$this->addAttempt();

$this->deleteRequest($row['id']);

$return['message'] = $this->lang[$type."key_expired"];
return $return;
}

$return['error'] = false;
$return['id'] = $row['id'];
$return['uid'] = $row['uid'];

return $return;
}

/**
* Deletes request from database
* @param int $id
* @return boolean
*/

private function deleteRequest($id)
{
$query = $this->dbh->prepare("DELETE FROM {$this->config->table_requests} WHERE id = ?");
return $query->execute(array($id));
}

/**
* Verifies that a password is valid and respects security requirements
* @param string $password
* @return array $return
*/


File goes on but Character-Limitation is reached, I also don't think that the main code itself is necessary.

Answer

As pointed out by @Jeff in the comments, you have a namespace problem in register.php,

You can do one of the following,

  • Use use :

    If you would use use your register.php would look like:

    <?php 
    include("languages/en_GB.php");
    include("Config.class.php");
    include("Auth.class.php");
    
    use \PHPAuth\{Config, Auth};
    
    $dbh = new \PDO("mysql:host=localhost;dbname=phpauth", "root", "");
    
    $config = new Config($dbh);
    $auth = new Auth($dbh, $config, $lang);
    
    $register = $auth->register($_POST['email'], $_POST['password'], $_POST['password']);
    
    if($register['error']) {
        // Something went wrong, display error message
        echo '<div class="error">' . $register['message'] . '</div>';
    } else {
        // Logged in successfully, set cookie, display success message
    /*   setcookie($config->cookie_name, $login['hash'], $login['expire'], $config->cookie_path, $config->cookie_domain, $config->cookie_secure, $config->cookie_http);*/
        echo '<div class="success">' . $login['message'] . '</div>';
    }
    ?>
    

  • Or explicit declaration of the namespace when creating the object (that is using the FQN):

    Then your register.php would look like:

    <?php 
    include("languages/en_GB.php");
    include("Config.class.php");
    include("Auth.class.php");
    
    $dbh = new PDO("mysql:host=localhost;dbname=phpauth", "root", "");
    
    $config = new \PHPAuth\Config($dbh);
    $auth = new \PHPAuth\Auth($dbh, $config, $lang);
    
    $register = $auth->register($_POST['email'], $_POST['password'], $_POST['password']);
    
    if($register['error']) {
        // Something went wrong, display error message
        echo '<div class="error">' . $register['message'] . '</div>';
    } else {
        // Logged in successfully, set cookie, display success message
    /*   setcookie($config->cookie_name, $login['hash'], $login['expire'], $config->cookie_path, $config->cookie_domain, $config->cookie_secure, $config->cookie_http);*/
        echo '<div class="success">' . $login['message'] . '</div>';
    }
    ?>
    

    Hope it helps you!

    Suggested Reading:

    http://php.net/manual/en/language.namespaces.basics.php

    http://php.net/manual/en/language.namespaces.rationale.php

    http://php.net/manual/en/language.namespaces.php

    Another thing: The use portion I have used in the first example is only compatible with PHP7. If you are using PHP lower than Version 7, then you can use this use declarations:

    use \PHPAuth\Config;
    use \PHPAuth\Auth;
    
  • Comments