Gian Luca Posted August 14, 2019 Share Posted August 14, 2019 (edited) Ciao a tutti, ho cercato senza risultati così apro un topic... Ho uno script PHP esterno che svolge alcune funzioni di aggiornamento (quantità, codici, prezzi, on/off prodotti etc) nella versione 1.6 funzionava mentre nella 1.7 no riesco a richiamare i parametri di connessione al DB. Appurato che i parametri di connessione al DB sono qui: app/config/parameters.php non riesco a richiamarli 🙄 Se li scrivo direttamente nello script tutto funziona! ....Ma non mi piace l'idea di avere questi dati incastonandoli in più file, quindi vorrei richiamarli includo la PHP, es: require_once ('/var/www/vhosts/mio-dominio.ch/httpdocs/app/config/parameters.php') ?? $parameters["database_name"]; Non riesco in nessun modo a richiamare le variabili.... potreste darmi indicazioni pls Edited August 14, 2019 by gianjj (see edit history) Link to comment Share on other sites More sharing options...
Guest Posted August 14, 2019 Share Posted August 14, 2019 (edited) basta che lo script include all'inizio include ("/var/www/vhosts/SITO/config/config.inc.php"); subito dopo richiami la classe DB così $db = Db::getInstance(); e puoi utilizzare direttamente la classe DB di prestashop non devi fare altro, se invece vuoi utilizzare una tua classe DB creata custom allora puoi recuperarti i valori //PARAMETRI DI CONNESSIONE DI MYSQL $directory=_DB_SERVER_; // Database host $user_DB=_DB_USER_; // Database username $password_DB=_DB_PASSWD_; // Database password $name_DB=_DB_NAME_; // Database nome PS. ricordarsi che la 1.7 usa un altro sistema di login, che non è uguale alla 1.6 Saluto Edited August 14, 2019 by Guest (see edit history) Link to comment Share on other sites More sharing options...
Gian Luca Posted August 20, 2019 Author Share Posted August 20, 2019 Ciao Solved, intanto grazie per la risposta Ti confermo che uso la versione 1.7 e so che le variabili sono in un nuovo file e le richiamo con "include" Purtroppo non ho ancora risolto come richiamare le variabili presenti nel file "app/config/parameters.php" per collegarmi al DB, e non trovo nulla, sgoogolando non trovo esempi concreti.... se hai una soluzione te ne sono grato, nel frattempo continuo con la connessione scritta direttamente nello script Grazie Link to comment Share on other sites More sharing options...
Guest Posted August 20, 2019 Share Posted August 20, 2019 Quello che ti avevo scritto e il sistema di connessione al db di presta da file esterno con utilizzo variabili di connessione se mi spieghi meglio cosa devi fare magari posta il tuo codice dove devi connetterti e vedo di integrare la cosa Link to comment Share on other sites More sharing options...
Gian Luca Posted August 20, 2019 Author Share Posted August 20, 2019 (edited) ok provo a postarti la parte di codice della connessione, tanto oltre non vado FILE: app/config/parameters.php <?php return array ( 'parameters' => array ( 'database_host' => '127.0.0.1', 'database_port' => '', 'database_name' => 'database_PS', 'database_user' => 'user_PS', 'database_password' => '*******', 'database_prefix' => 'ps_', 'database_engine' => 'InnoDB', 'mailer_transport' => 'smtp', 'mailer_host' => '127.0.0.1', 'mailer_user' => NULL, 'mailer_password' => NULL, 'secret' => '00000000000000000000000000000000', 'ps_caching' => 'CacheMemcache', 'ps_cache_enable' => false, 'ps_creation_date' => '2019-06-15', 'locale' => 'it-IT', 'cookie_key' => '00000000000000000000000', 'cookie_iv' => '6tkBDOi4', 'new_cookie_key' => '00000000000000000000', ), ); File: FILE: /update.php <?php include ('/var/www/vhosts/my-site.ch/httpdocs/app/config/parameters.php'); // DATI CONNESSIONE DB $servername = "127.0.0.1"; $db_name = "database_PS"; $username = "user_PS"; $password = '*******'; $database_prefix = "ps_"; // ===> (questi dati non riesco a richiamarli dal'include) // CONNESSIONE AL DB try { $db = new PDO("mysql:host=$servername;dbname=".$db_name."", $username, $password); // set the PDO error mode to exception $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "<hr /><p><strong>Siamo qui</strong> - <strong>Connesso con successo</strong></p>"; } catch(PDOException $e) { echo "<hr /><p><strong>Siamo qui</strong> - <strong>Connessione Fallita</strong>: " . $e->getMessage() . "</p>"; } // da qui in poi il resto dellos cript che funziona una volta collegato al DB Grazie Edited August 20, 2019 by gianjj (see edit history) Link to comment Share on other sites More sharing options...
Guest Posted August 20, 2019 Share Posted August 20, 2019 perdona perchè non usi le istruzioni che ti avevo già dato FILE : update.php include ("/var/www/vhosts/SITO/config/config.inc.php"); $db = Db::getInstance(); // da qui in poi il resto dello script che funziona una volta collegato al DB con le 2 istruzioni che ho messo io attivi immediatamente la connessione al DB senza dover eseguire nuovamente il codice che hai messo tu //-------------------- // CONNESSIONE AL DB try { $db = new PDO("mysql:host=$servername;dbname=".$db_name."", $username, $password); // set the PDO error mode to exception $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "<hr /><p><strong>Siamo qui</strong> - <strong>Connesso con successo</strong></p>"; } catch(PDOException $e) { echo "<hr /><p><strong>Siamo qui</strong> - <strong>Connessione Fallita</strong>: " . $e->getMessage() . "</p>"; } //------------------- quindi se vuoi verificare il login sulla pagina puoi usare il codice diretto // controlla login utente $employee = new Employee(); $is_employee_loaded = $employee->getByEmail($_SESSION['user_login'], $_SESSION['pass_login']); // controlla login utente if(!$is_employee_loaded) { // errore, il login non ha funzionato ?> <script language="javascript" type="text/javascript"> document.location.href = "http INDEX"; </script> <?php } // ---------------------- se vuoi fare un update alla tabella product puoi usare la query $db->execute("UPDATE "._DB_PREFIX_."product SET quantity='0' WHERE id_product=".$id_product); se vuoi leggere una tabella specifica usi la query $SQLfornitore= "SELECT * FROM "._DB_PREFIX_."supplier WHERE id_supplier=".1; $FETCHfornitore = $db->getRow($SQLfornitore,false); ecc ossia in questo modo puoi usare tutta la classe DB di prestashop e nello specifico le sue query Se invece ho capito male me lo fai sapere Saluto Link to comment Share on other sites More sharing options...
Gian Luca Posted August 23, 2019 Author Share Posted August 23, 2019 Ok provo e ti faccio sapere, sono a un passo dalle ferie e sto facendo 300 cose 😉😉 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now