Allora, innanzitutto un saluto a tutti. Sono un po' fuori luogo perché sono un programmatore che non ha fatto molto nel campo web, e mi è stato dato un piccolo incarico per una modifica ad un progetto in php che usa Joomla. Chiedo perdono in anticipo se scriverò stupidaggini.
Ho bisogno di accedere al database di un sito che usa Joomla da una pagina web che deve stare necessariamente subito dopo l'indirizzo del sito web, ad esempio:
www.ilmiosito.it/lamiapagina.phpHo quindi necessità di recuperare la password, il nome del DB ecc. chiamando l'oggetto seguente:
$conf = & JFactory::getConfig()
Però non riesco ad includere la classe JFactory nella mia nuova pagina che ovviamente non si trova nella struttura di cartelle che si aspetta Joomla (infatti è alla radice del sito).
Per includere gli oggetti di cui ho bisogno provo qualcosa del genere (che tra l'altro ho trovato spulciando questo ed altri forum):
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
// senza la prossima echo ho l'errore "Oggetto non trovato!" e l'errore 404
echo 'bla bla bla';
// i percorsi alle pagine sono abbreviati usando *
if (file_exists('*defines.php'))
require_once '*defines.php';
if (!defined('_JDEFINES')) {
define('JPATH_BASE', dirname(__FILE__));
require_once '*defines.php';
}
require_once '*framework.php';
-------------
RISULTATO:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\www\pagina.php:6) in C:\***\framework.php on line 28
Alla riga 28 di framework.php c'è il seguente:
header( 'Location: ../installation/index.php' );
Quindi la prima domanda è cosa dovrei modificare per non includere le intestazioni di cui mi dice l'errore.
Come ho scritto nel commento, senza la echo alla riga 4 non mi visualizza proprio la pagina e mi rimanda alla pagina
http://localhost/installation/index.php.
---
Infine una domanda (perdonatemi se è una castroneria), se per caso inserisco la password della base dati direttamente nel codice php invece di prenderlo da JFactory, commetto un errore grave di sicurezza oltre che di progettazione? Perché alla fine non sarà visibile dagli utenti ed allo stesso tempo non avrò bisogno di JFactory, giusto?