Joomla.it Forum
Non solo Joomla... => Sviluppo => : serpicomania 11 Jan 2010, 09:52:08
-
Vorrei capire come poter utilizzare l'user name dell'utente loggato per utilizzarlo sulle pagine php che inserisco nel sito
-
puoi usare sia gli array di sessione che le api... per il primo basta che vedi il campo contenuto nell'array $_SESSION (mi sembra $_SESSION['username'] ma non ci giurerei!)
con le api puoi usare questo codice:
<?php
$user =& JFactory::getUser();
if (!$user->username) {
echo 'errore devi essere loggato!!!';
return;
} else {
echo 'Ciao '.$user->username;
}
?>
-
con la api mi da "Fatal Error: Class 'JFactory' not found nella directory di easyphp...
per il primo metodo invece:
Notice: Undefined variable: _SESSION
-
Sono riuscito ad includere la Jfactory ma nel codice php
echo 'Ciao ' .$user->username
stampa solo Ciao
-
Ho risolto cosi
// Set flag that this is a parent file
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require('libraries/joomla/factory.php');
// initialize the application
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$user =& JFactory::getUser();
echo 'Ciao '.$user->username;
echo 'Ciao '.$user->email;
-
Sono riuscito ad includere la Jfactory ma nel codice php
echo 'Ciao ' .$user->username
stampa solo Ciao
eri loggato sul sito, vero?
-
ovviamente si...comunque ho riscontrato che il codice funziona solo con firefox mentre con gli altri browser (chrome, ie) non visualizzo l'user come al solito
-
uhm... questo è abbastanza strano... io l'ho fatto e il controllo viene eseguito su tutti i browser!
-
... ma come fai ad usare i metodi di joomla se invece di estendere le classi fai dei file php esterni all'mvc?
Secondo me l'unico modo, o almeno il più sano, è fare una query separata al db usando come chiave la sessione.
... ma magari sono fuori io...
M.
-
la domanda è più che altro perchè stai inserendo delle pagine php al di fuori del flusso di Joomla... :(
ho riscontrato che il codice funziona solo con firefox ...
niente di più facile né di strano: nel tuo codice, se è fuori da Joomla, come recuperi l'identificativo di sessione?
ciao, marco
-
secondo me lui non sta facendo pagine fuori da joomla... sta creando dei wrapper....
penso eh....
-
che cosa intendi con wrapper?? un iframe?
in questo caso la pagina è sicuramente fuori dal flusso di joomla.
ciao,
marco
-
sono wrapper e si sono file php esterni perchè il progetto che sto facendo lo richiede...ci sono altri modi per ricavare l'user e farlo vedere sempre?? a sto punto non so piu se posso segnalare il post come risolto...
-
ma riesci a ricavare lo user dalle sessioni o api in un wrapper (scusa ma non ricordo bene!) ???
Se si... allora ok... hai risolto il problema! ;)
-
se sei un iframe non tutti i browser trasmettono i cookies (dipende dall'header P3P)e quindi corri il rischio di non riconnetterti alla sessione.
fai come detto da mau_develop: passare nell'url l' id di sessione e poi recupera l'utente dalla tabella #__session
ps: NON PASSARE DIRETTAMENTE l'id utente ;D
ciao,
marco