Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245

    [php] variabili globali

    Buongiorno e buona domenica.
    Da stamattina litigo con le variabili globali.
    Ho letto la documentazione e pensavo di aver capito e invece....no!
    Dunque una variabile globale va dichiarata, prima di essere utilizzata, con global e sarà visibile al resto dei sorgenti, anche funzioni in altri file .php, giusto?

    Partendo da questo presupposto ho un file config.php dove imposto i parametri di connessione :

    config.php
    codice:
    global $dbname="...." ;
    $dbhost="...."; etc etc
    poi ho un file miefunzioni.php contenente tutte le utility che eseguono lookup.

    nel file di controllo, home.php ho :
    codice:
    require ("config.php");
    include("miefunzioni.php")
    in questo modo, pensavo, che le variabili dichiarate nel config.php fossero disponibili a tutte le miefunzioni.php .

    Cosi non è ... la connessione al db fallisce miseramente e io non capisco dove erro.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    36 visite e nessuna risposta.....allora l'argomento è complesso?

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    e tu sei sicuro che l'errore sia una variabile non definita?
    personalmente, cerco di evitare il più possibile di definire variabili globali

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    rispondere ad una domanda con una domanda non è il massimo....comunque :
    devo parametrizzare le connessioni al DB con gli opportuni parametri, premesso che sono novizio, cosa utilizzo in alternativa alle variabili globali?

    PS mi permetto dopo n post inseriti e tanto aiuto ricevuto dal forum di fare questa osservazione : invece di dire io personalmente non le uso sarebbe stato bello leggere "io non le uso perchè faccio così......." senza polemica, capiamoci!

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Per prima cosa, non hai postato una sola riga di codice da dove si possa capire come stai agendo esattamente e neppure indicazioni di eventuali errori: dato che qui sfere di cristallo non ne ha nessuno farti una domanda è il minimo per provare a capire.
    Seconda cosa, le variabili globali non le uso perché preferisco non incasinarmi la vita e usare variabili che nascono e vivono nel loro scope.

    Io uso sempre funzioni/classi generaliste e riusabili in vari ambiti, settando i parametri quando serve. E le variabili di configurazione vengono incluse.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    perdonami....
    ho scritto cosa imposto dove lo imposto e come lo richiamo.
    l'errore è che la variabile globale è vuota.
    cosa dovevo scrivere di piu?
    Parliamo, ove non avessi letto con attenzione, dei parametri per aprire le connessioni al DB.
    Dove le imposti tu, solitamente, e come le richiami?
    (famo prima ;-) )

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Hai scritto global accanto al nome della variabile nella tua funzione prima di richiamare quella che hai già definito come globale?

    Come le richiamo: passo i dati come parametro alla mia funzione di connessione o mi creo una classe apposita...

    PS: cosa potevi scrivere di più? Mah, magari postare il codice dove richiami le tue variabili globali? Magari per vedere insieme se non ci fossero errori di sintassi?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    non capisco ma mi adeguo....
    codice:
    <?php//avvio la sessione
    session_start();
    if(!isset($_SESSION['ut_id']))
    {
        header('Location: ita/ita.html');
        exit;
    }
    global $db_host, $db_nomedb, $db_utente, $db_password;
    
    
    // Dati connessione al database
    $db_host = '89.46.xxx';        // Host - solitamente localhost
    $db_utente = 'Sql998xxx';        // Nome utente del Database
    $db_password = '951556nxxx';        // Password del Database
    $db_nomedb = 'Sql998xxx_1';     // Nome del Database
    questo file config.php (estratto)

    Poi dentro gli altri file apro la connessione con :
    $db_host, $db_utente,etc etc

    codice:
    try{
    
    
       $pdo =new PDO("mysql:host=$db_host;dbname=$db_nomedb", $db_utente, $db_password);
     
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    spiegami bene cosa intendi per class....magari con un esempio, se vuoi.
    Grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    ovviamente se li scrivo a manina funziona, con le variabili no perchè sono blank

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Il try che hai postato sta dentro ad una funzione?

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.