Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    103

    Metodo refresh non funziona su altra classe.

    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_DNSDB_SERVER_USERNAMEDB_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.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    103
    Scusate, ho fatto un altra brutta figura , sara' che qui e' tardi (2AM).. :berto:

    non ho messo un controllo per verificare se la pagina caricata era gia login.php, quindi non faceva altro che fare il refresh un milione di volte.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.