Hi everyone
ieri ho postato riguardo una classe auth che non funzionava, tutta colpa mia, ho proseguito con gli studi e ho capito cosa non andava.. dovevo studiare piu approfonditamente!
Purtroppo nn e' finita:P. All'interno della classe auth
Codice PHP:
class Auth {
function __construct()
{
if(!isset( $_SESSION['userType']))
{
Http::redirect('login.php');
}
elseif (isset($_POST['user']))
{
$this->userLogin();
}
elseif (isset($_GET['logout']))
{
$this->userLogout();
}
}
function userLogin()
{
global $pdo;
$qry = $pdo->prepare('QUERY_ADMIN_LOGIN');
$qry->execute(array(':username'=>$_POST['user'], ':password'=>$_POST['pass']));
if ($qry->rowCount() > 0)
{
while($qry->fetch('PDO_FETCH_NUM'))
$_SESSION['userType'] = $type;
$_SESSION['userName'] = $name;
$_SESSION['userSurname'] = $surname;
$_SESSION['userEmail'] = $email;
$_SESSION['userLastLogin'] = $lastlogin;
$pdo->exec('UPDATE admin_users SET lastlogin="'.time().'" WHERE username="$user"');
}
else
{
Http::redirect('login.php',array('error'=>'Incorrect user name and/or password.'));
}
}
function userLogout()
{
unset($_SESSION);
$HttpObj->redirect('login.php',array('error'=>'User logged out successfully'));
}
}
richiamo il metodo refresh della classe Http (posto solo la funzione non l'intera classe)
Codice PHP:
public static function redirect($page, $params = NULL)
{
$url = $page;
if(!empty($params) && strrchr($page, '?') == false)
$url .='?';
if(isset($params))
{
foreach($params as $k => $v)
{
$url .= $k.'='.urlencode($v).'&';
}
}
header('Location: '.$url);
}
Ovviamente le classi vengono istanziate prima di qualsiasi output, e di conseguenza l'header e' posizionato prima dell'output, posto il file comunque..
Codice PHP:
<?php
session_start();
require_once('settings.inc.php');
/* Database connection setup */
try {
$pdo = new PDO(DB_DNS, DB_SERVER_USERNAME, DB_SERVER_PASSWORD);
}
catch(PDOException $e) {
echo 'Errore di connessione: '.$e->getMessage();
}
/* Autoload classes */
function __autoload($class_name) {
require_once 'class/' . $class_name . '.class.php';
}
$HttpObj = new Http;
$authObj = new Auth;
?>
Il guaio e' che la pagina del refresh sta ancora caricando da ieri
.. Qualcuno mi sa dire perche' non funziona?
Thx.
Dimenticavo il refresh funziona perfettamente se chiamato al di fuori di quella classe.