Joomla.it Forum

Non solo Joomla... => Sviluppo => : serpicomania 11 Jan 2010, 09:52:08

: [RISOLTO] Utilizzare username dell'utente loggato in PHP
: 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
: Re:Utilizzare username dell'utente loggato in PHP
: scarinciotto 11 Jan 2010, 10:30:42
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;
  }
?>

: Re:Utilizzare username dell'utente loggato in PHP
: serpicomania 11 Jan 2010, 10:50:07
con la api mi da "Fatal Error: Class 'JFactory' not found nella directory di easyphp...

per il primo metodo invece:
Notice: Undefined variable: _SESSION
: Re:Utilizzare username dell'utente loggato in PHP
: serpicomania 11 Jan 2010, 11:16:54
Sono riuscito ad includere la Jfactory ma nel codice php

echo 'Ciao ' .$user->username

stampa solo Ciao
: Re:Utilizzare username dell'utente loggato in PHP
: serpicomania 11 Jan 2010, 11:20:21
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;
: Re:Utilizzare username dell'utente loggato in PHP
: scarinciotto 11 Jan 2010, 11:20:53
Sono riuscito ad includere la Jfactory ma nel codice php

echo 'Ciao ' .$user->username

stampa solo Ciao
eri loggato sul sito, vero?
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: serpicomania 11 Jan 2010, 12:07:40
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
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: scarinciotto 11 Jan 2010, 13:29:36
uhm... questo è abbastanza strano... io l'ho fatto e il controllo viene eseguito su tutti i browser!
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: mau_develop 11 Jan 2010, 13:51:07
... 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.
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: mmleoni 11 Jan 2010, 16:00:45
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
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: scarinciotto 11 Jan 2010, 16:03:13
secondo me lui non sta facendo pagine fuori da joomla... sta creando dei wrapper....
penso eh....
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: mmleoni 11 Jan 2010, 16:08:15
che cosa intendi con wrapper?? un iframe?
in questo caso la pagina è sicuramente fuori dal flusso di joomla.

ciao,
marco
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: serpicomania 13 Jan 2010, 10:56:21
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...
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: scarinciotto 13 Jan 2010, 11:06:51
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!  ;)
: Re:[RISOLTO] Utilizzare username dell'utente loggato in PHP
: mmleoni 13 Jan 2010, 11:18:10
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