Jump to content

Parametri script esterno


Gian Luca

Recommended Posts

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 by gianjj (see edit history)
Link to comment
Share on other sites

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 by Guest (see edit history)
Link to comment
Share on other sites

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

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

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 by gianjj (see edit history)
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...