Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [PHP] Apertura connessione DB ad oggetti

    Ragazzi ho un problemino.
    Premetto che in quanto a programmazione ad oggetti sono proprio all'inizio.
    Ho creato una classe
    Codice PHP:
    <?php 
    class DbController  
    {   
        public function 
    ApriConnessione()   
        {   
            
    // definisco le variabili d'accesso al db
            
    $dbhost 'localhost';   
            
    $dbusername 'root';   
            
    $dbpassword 'pippo';   
            
    $dbname 'prova';  

            
    $db mysql_connect($dbhost$dbusername$dbpassword);
            if (!
    $db)
                die (
    "Errore nella connessione. Verificare i parametri d'accesso");
            
    mysql_select_db($dbname$db)
                or die (
    "Errore nella selezione del database. Verificare i parametri d'accesso");
            return 
    $db;
        }    
    }  
    ?>
    Quindi la richiamo nella mia pagina principale
    Codice PHP:
    <?php 
    // Includo il Controller del database
    include(ADMIN_URL_CONTROLLERS 'DbController.php');

    $conn = new DbController();
    $db $conn->ApriConnessione();

    switch(
    $_GET['option'])
    {
        case 
    'login'
            require_once(
    ADMIN_URL_VIEWS 'login/login.php');
        break;
        case 
    '404'
            require_once(
    ADMIN_URL_VIEWS 'error/error.php');
        break;
        default:
            require_once(
    ADMIN_URL_VIEWS 'index/index.php');
        break;
    }  
    ?>
    Nella pagina login.php ho questo:
    Codice PHP:
    <?php 
    // Includo il Controller della pagina
    include(ADMIN_URL_CONTROLLERS 'LoginController.php');

    $var = new LoginController(); 

    // Includo gli header della pagina
    include(ADMIN_URL_VIEWS 'header.php');
    ?>
    <div id="login">
        <p class="errore"><?php if(isset($_POST['invia'])) $var->AutorizzaUtente(mysql_escape_string($_POST['username']), md5($_POST['password']))?></p>   
        <form action="" method="post">   
            <fieldset>   
            <legend>Login</legend>   
                Username:
       
                    <input type="text" name="username" size="25" />
     
                Password:
       
                    <input type="password" name="password" size="25" />
       
                    <input type="submit" name="annulla" value="Annulla" /><input type="submit" name="invia" value="Invia" />     
            </fieldset>   
        </form>
    </div>
    e nel LoginController.php quest'altro:
    Codice PHP:
    <?php 
    class LoginController  
    {   
        public function 
    TitoloPagina()   
        {   
            print 
    'Login';     
        }   
        public function 
    AutorizzaUtente($username$password)
        {
            
    $query "SELECT * FROM prova_cpanel WHERE username = '$username' AND password = '$password'";
            
    $result mysql_query($query);
            if(
    mysql_num_rows($result) == 1)
            {
                
    $row mysql_fetch_array($result);
                print 
    'ok';
                
    $_SESSION['prova_auth'] = TRUE;
                
    $_SESSION['prova_userid'] = $row['id'];
                
    $_SESSION['prova_username'] = $username;
                
    $_SESSION['prova_last_access'] = $row['last_access'];
                
    $query "UPDATE prova_cpanel SET ip = '".$_SERVER['REMOTE_ADDR']."', last_access = '".time()."' WHERE id = ".$_SESSION['tuttannuncitalia_userid']."";
                
    mysql_query($query);
                
    header("Location: index.php");
                exit();
            }
            else print 
    'Errore! Username o password errate';
        }
    }  
    ?>
    Insomma la cosa sembrerebbe contorta ma non lo è...sto usando una sorta di framework, fatto da me, per avvicinarmi allo Zend Framework e magari un giorno usarlo con maggiore facilità.
    Il problema sta nel fatto che non riesco a creare una connessione al database.
    Quando provo a compilare il form della pagina login.php, la funzione AutorizzaUtente() non va, mi restituisce solo l'errore.
    Se invece inserisco i dati corretti non appare nulla!

  2. #2
    Niente raga, ho risolto! semplicemente mancava un bel session_start() prima di aprire le sessioni nella funzione AutorizzaUtente()

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.