Jump to content
gianjj

Parametri script esterno

Recommended Posts

Posted (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 by gianjj (see edit history)

Share this post


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

Share this post


Link to post
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

Share this post


Link to post
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

 

 

Share this post


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

Share this post


Link to post
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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Ok provo e ti faccio sapere, sono a un passo dalle ferie e sto facendo 300 cose 😉😉

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More