Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    46

    Problema connesisone DB

    Ciao a tutti, mi trovo di fronte ad un problema probabilmente banale al quale però non trovo soluzione!! Mi spiego meglio, sto realizzando un progetto php in particolare mi trovo a dover realizzare la parte riguardante il log-in. La struttura generale del sito è gestita secondo l'MVC,
    in particolare ogni pagina ha una sua vista, un suo controller ed un suo model. L'accesso alla sezione log-in avviene quindi attraverso un link che va a caricare la relativa vista, tale vista contiene una classica form Username e Password che tramite il metodo action demanda la gestione dei dati inseriti ad un file chiamato controller_login.php, questo file dopo una serie di controlli va a richiamare il model_login.php, fin qui funziona tutto liscio ma il problema compare ora in quanto questo model non riesce a connettersi al db tramite le variabili inserite in config.php, file che viene caricato nell'index del sito. La cosa strana è che questo avviene SOLO per questo model mentre gli altri accedono normalmente al db. Spero di essere stato chiaro

  2. #2
    facci vedere questi file... magari possiamo aiutarti..

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    46
    Ok..... in verità ho risolto il primo problema inserendo config.php nel mio model, sinceramente però vorrei capire perchè se caricandolo nel mio index non posso accederci dal model..... posto il codice và...
    index.php:
    Codice PHP:
    require_once 'config.php';

    require_once 
    'header.php';

    require_once 
    'footer.php'
    header.php:
    codice:
    [*]Login[*]/
    link al login

    Codice PHP:
    <?php if (isset ($_GET['view'])) { require '/view/vista_'.$_GET['view'].'.php'; } else {require '/view/vista_home.php';}
    richiesta della vista

    vista_login.php:

    codice:
    <div id="content" > 
    <div id="form_login"> 
    <form method="POST" action="controller/controller_login.php">
    Username: <input name="username" type="text" /> 
    Password: <input name="password" type="text" /> <input name="invia" type="submit" value="Login" > </form> </div> 
    <?php require '/controller/controller_login.php'; ?> </div>
    controller_login.php:

    Codice PHP:
    <?php
    // controllo sul parametro d'invio
    if(isset($_POST['invia']) && (trim($_POST['invia']) == "Login"))
    {
      
    // controllo sui parametri di autenticazione inviati
      
    if( !isset($_POST['username']) || $_POST['username']=="" )
      {
        echo 
    "Attenzione, inserire la username.";
      }
      elseif( !isset(
    $_POST['password']) || $_POST['password'] =="")
      {
        echo 
    "Attenzione, inserire la password.";
      }else{
        
    // validazione dei parametri tramite filtro per le stringhe
        // trim elimina gli spazi, FILTER_SANITIZE_STRING elimina eventuali tag HTML dalla stringa
        
    $username trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
        
    $password trim(filter_var($_POST['password'], FILTER_SANITIZE_STRING));
        
    /*$salt = sha1($password);
        $password = md5($salt.$password);
            commentato momentaneamente per eseguire test*/
        
        
    require '../model/model_login.php';
        
        
    $login getLoginData($username$password);
          
    print_r ($login);
        
        
    // controllo sul risultato dell'interrogazione -> non ho corrispondenze nel db
            
    if ($login == '0'|| !isset($login))
        {
            
    // reindirizzamento alla homepage in caso di insuccesso
              
    header("Location: ../index.php?view=login");
              
        }else{      
            
    // creazione del valore di sessione
            
    session_start();
              
    $_SESSION['login'] = $login['ID'];
          
    $_SESSION['username'] = $login['utente'];
          
    $_SESSION['tipo_utente'] = $login['tipo'];
          echo 
    '   stampa di SESSION    ';
          
    print_r($_SESSION);
             
            
    // reindirizzamento a index in caso di successo
            
              
    header("Location: ../index.php"); 
        }
      }
    }
    ?>
    e infine model_login.php:
    Codice PHP:
    <?php require '../config.php'
    function 
    getLoginData($username$password) {
     
    $cn mysql_connect(HOSTNOME_UTENTE_DBPASSWORD_UTENTE_DB) or die('Errore di connessione all host: controllare la correttezza dei parametri');
    mysql_select_db(NOME_DB$cn) or die('Errore di connessione al database: controllare che il nome del database sia corretto'); 
    $query "select * from utenti where utente = '$username' and password = '$password'"$risultato mysql_query($query$cn); 
    $utente = array();
     if (
    mysql_num_rows($risultato)==0) { $utente '0'; } else { $utente mysql_fetch_assoc($risultato); } 
    mysql_close(); return $utente; } ?>
    ecco tutto il codice relativo alla parte non funzionante... grazie mille spero sia abbastanza comprensibile.....

  4. #4
    Mi dispiace, ma io non riesco a comprendere quale sia il tuo problema.
    Tu dici che vuoi accedere al model_login.php nella index, ma in che senso???

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    46
    No il mio problema in verità è che da model_login.php non riuscivo ad accedere alle variabili globali dichiarate in config.php tanto che la connessione al db mi dava errore perché non riconosceva le variabili contenenti host, username, password e nomeDB dichiarate, appunto, in config.php. Ho risolto il problema inserendo tramite require il config.php anche nel model, ma la cosa che non capisco perché in questo model necessito del require mentre sugli altri no...

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.