Capturar nombre de Usuario (Ayuda!)
Número de respuestas: 13tengo un problema. El sitio web que tengo q mantener está basado en moodle y ya estaba implantado.
Para una pagina en .php(mía!) que cuelga del moodle que está implantado me vendría muy bien cómo capturar el usuario y el nombre de la persona que se ha autenticado contra moodle para luego mostrarlo en otra pagina .php
Se almacena en alguna variable de session?, en alguna cookie?, como puedo rescatarlo?.
Un saludo.
Re: Capturar nombre de Usuario (Ayuda!)
$USER->id
con ésta id puedes buscar en la tabla de usuarios de la base de datos del sitio, y tendrás toda la info que necesitas.
Un saludo.
Re: Capturar nombre de Usuario (Ayuda!)
Un saludo y muchas gracias!
Re: Capturar nombre de Usuario (Ayuda!)
Alvaro:
Al inicio de la página PHP, deberías anteponer el siguiente REQUIRE:
<?php
require('./config.php'); //asegúrate de completar correctamente la ruta hacia el archivo.
?>
Saludos!
Re: Capturar nombre de Usuario (Ayuda!)
Re: Capturar nombre de Usuario (Ayuda!)
<?php
session_name('PHPSESSID');
session_start();
require_once("http://www.misitio.com/config.php");
echo $user->id;
echo $user->firstname;
?>
he probado con require, require_once, al ppio entre medias y nada, no me muestra nada :-s. Alguna sugerencia más?. Puede ser que sea por tener en el include una URL?, en vez de un path relativo?, es que tengo q ponerlo así pq la maquina que tiene a moodle y mi servidor están en diferentes localizaciones.
Un saludo para todos.
Re: Capturar nombre de Usuario (Ayuda!)
Hola Alvaro,
Si lo que necesitas es identificar en un solo paso al usuario de moodle y el de otra aplicación te aconsejo que unas la instalación de Moodle a un CMS como Joomla (antes Mambo) de otro modo te será bastante complicado.
Saludos,
Fermin Cueva
Re: Capturar nombre de Usuario (Ayuda!)
Lo unico que me queda por comentar es que, yo al servidor en el que está instalado moodle, no tengo acceso de ningun tipo, con lo que a priori la unica solución que veo es lo que se comenta arriba, poner algun tipo de includes en mi pagina php y de esta forma compartir la variable $USER.
Bufff, con Joomla voy a necesitar instalar algo en el servidor?, porque ya comento que no tengo esta posibilidad :s.
Un saludo,
Álvaro
Re: Capturar nombre de Usuario (Ayuda!)
Vamos por partes,
1º Joomla es un sistema de gestión de recursos o contenidos, osea, algo así como un portal.
2º Si tienes que trabajar en una instalación de moodle de un cliente, lo lógico es que éste te de los datos de un usuario con privilegios de administrador. Si no te los da no puedes trabajar.
3º En caso de que se hubieran perdido los datos de ese usuario, para poder crear un nuevo usuario tendrías que tener acceso a la base de datos que hay alojada en el servidor.
Y por último y resumiendo:
Para poder utilizar los datos de un usuario de Moodle desde el mismo ordenador en el que estás identificado como usuario basta con incluir su id como se te ha explicado en anteriores mensajes. De otro modo, o sea si estás en otra máquina, es difícil, ya que hay que proteger los datos de la instalación y no sería bueno que se supiera públicamente cómo hacer eso .
Si fuera necesario, tu cliente también podría proporcionarte los datos de seguridad para manejar la base de datos y con ellos podrías crear un script que accediera a la misma, aunque Moodle está protegido contra la inyección de SQL, por lo que ese archivo debería proceder del mismo servidor que los de la instalación.
Espero que te sirva,
Fermin Cueva
Re: Capturar nombre de Usuario (Ayuda!)
Pues entonces me temo que no voy a poder. A lo máximo que creo que podría es almacenar el $USER->username en una variable de session y luego al propagar la session en las diferentes paginas .php que tenga llamar a esa variable de session para obtener el username.
Ésto lo he probado con el moodle que tengo instalado en mi maquina y tampoco he sido capaz de propagar la variable de Session. Os cuento un poco como lo he hecho:
En el fichero index.php de mi moodle , justo al final del fichero he añadido lo siguiente:
<?PHP print_footer('home'); // Please do not modify this line
//asignacion del usuario a una variable de session
if (isset($USER)) $_SESSION['usuario']=$USER->username;
?>
Y al acceder desde mi moodle a un script php creado por mí tengo lo siguiente:
<?php
session_name('MoodleSession');
echo $_SESSION['usuario'];
?>
Y nada de nada, no me lo muestra, me da el siguiente error:
Notice: Undefined variable: _SESSION in C:\Archivos de programa\Apache Group\Apache2\htdocs\forosomc\prueba.php on line 5
Es decir, no se me propaga la session correctamente y cosa q me extraña porque así lo he hecho en otra paginas php y no me ha dado problemas el tema de la propagación de sessiones.
No sé alguna sugerencia para pasar el $USER->username a una variable de session y que pueda propagarlo en mis script php?
Un saludito y gracias a todos chicos!
Si lo consigo os invito a unas cañas virtuales xDDD
Álvaro
Re: Capturar nombre de Usuario (Ayuda!)
Re: Capturar nombre de Usuario (Ayuda!)
Olvidate de utilizar todo eso de sesion name, $_SESSION, etc. No te a ir bien.
Mira, te pongo un ejemplo:
El archivo prova.php
-----------------------8<----------------------
<?php
//Donde tengo mi Moodle.
$path = "/usr/share/moodle";
require_once("$path/config.php");
print_object($USER);
echo "El nombre de ususrio es: $USER->username;
?>
--------------------------------8<-------------------------------
Donde puedes cambiar el $path con el path donde tu tengas el Moodle.
Ejecuto dicho script: http://localhost/prova.php
------------------------8<----------------------------------
stdClass ObjectEl nombre de ususrio es: admin;
(
[0] => 2
[id] => 2
[1] => manual
[auth] => manual
[2] => 1
[confirmed] => 1
[3] => 0
[policyagreed] => 0
[4] => 0
[deleted] => 0
[5] => admin
[username] => admin
.............
etc....
.............
----------------------------8<--------------------------
Si te fijas con lo que te he mandado, Moodle lo tengo en un sitio totalmente diferente de donde ejecuto el prova.php.
Ahora supongo que ya no tendras problemas,
Saludos!
Re: Capturar nombre de Usuario (Ayuda!)
Re: Capturar nombre de Usuario (Ayuda!)
Muchas gracias por la ayuda pero me temo que no me sirve y te comento el porqué:
El archivo "prova.php" y el archivo "config.php" de moodle están en servidores diferentes y yo no tengo acceso al archivo "config.php" con lo cuál en el require_once no me permite poner una URL (algo del tipo http://patata...) ya que tiene que ser un path relativo o absoluto a la maquina en la que se está ejecutando el script "prova.php" y yo la unica forma que tendría de hacer el require_once seria a traves de una URL pero como te comento, ésto no se puede hacer porque no te deja ( algo lógico ).
En fins, a ver si consigo que me den acceso al servidor de moodle.
Un saludo a todos y gracias.
Álvaro.