Retroceder   Foros del Web > Diseño de Sitios web > Aplicaciones pre-fabricadas

Respuesta
 
Herramientas Desplegado
Antiguo 27-feb-2007, 06:49   #1 (permalink)
Bravenap está en el buen camino
 
Avatar de Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 1.899
Enviar un mensaje por Skype™ a Bravenap
Consultas para insertar nuevo usuario en foro phpBB

Muy buenas. Quiero crear un usuario nuevo desde una aplicación ASP.Net en un foro phpBB. No tengo acceso al código fuente del foro (está en Arsys) por lo que no sé exactamente las consultas necesarias para crear un nuevo usuario.

Empezando por INSERT INTO foro_users ....

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Bravenap está desconectado   Responder Citando
Antiguo 02-mar-2007, 14:58   #2 (permalink)
daniel00 está en el buen camino
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 634
Enviar un mensaje por MSN a daniel00 Enviar un mensaje por Yahoo  a daniel00
Re: Consultas para insertar nuevo usuario en foro phpBB

Que tal Bravenap.

Fijate que tengo el mismo problema y lo que he encontrado hasta ahora es que la estructura de la tabla usuarios es la siguiente( para mySQL ) :
Código:
# --------------------------------------------------------
#
# Table structure for table 'phpbb_users'
#
CREATE TABLE phpbb_users (
   user_id mediumint(8) NOT NULL,
   user_active tinyint(1) DEFAULT '1',
   username varchar(25) NOT NULL,
   user_password varchar(32) NOT NULL,
   user_session_time int(11) DEFAULT '0' NOT NULL,
   user_session_page smallint(5) DEFAULT '0' NOT NULL,
   user_lastvisit int(11) DEFAULT '0' NOT NULL,
   user_regdate int(11) DEFAULT '0' NOT NULL,
   user_level tinyint(4) DEFAULT '0',
   user_posts mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
   user_timezone decimal(5,2) DEFAULT '0' NOT NULL,
   user_style tinyint(4),
   user_lang varchar(255),
   user_dateformat varchar(14) DEFAULT 'd M Y H:i' NOT NULL,
   user_new_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
   user_unread_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
   user_last_privmsg int(11) DEFAULT '0' NOT NULL,
   user_login_tries smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
   user_last_login_try int(11) DEFAULT '0' NOT NULL,
   user_emailtime int(11),
   user_viewemail tinyint(1),
   user_attachsig tinyint(1),
   user_allowhtml tinyint(1) DEFAULT '1',
   user_allowbbcode tinyint(1) DEFAULT '1',
   user_allowsmile tinyint(1) DEFAULT '1',
   user_allowavatar tinyint(1) DEFAULT '1' NOT NULL,
   user_allow_pm tinyint(1) DEFAULT '1' NOT NULL,
   user_allow_viewonline tinyint(1) DEFAULT '1' NOT NULL,
   user_notify tinyint(1) DEFAULT '1' NOT NULL,
   user_notify_pm tinyint(1) DEFAULT '0' NOT NULL,
   user_popup_pm tinyint(1) DEFAULT '0' NOT NULL,
   user_rank int(11) DEFAULT '0',
   user_avatar varchar(100),
   user_avatar_type tinyint(4) DEFAULT '0' NOT NULL,
   user_email varchar(255),
   user_icq varchar(15),
   user_website varchar(100),
   user_from varchar(100),
   user_sig text,
   user_sig_bbcode_uid char(10),
   user_aim varchar(255),
   user_yim varchar(255),
   user_msnm varchar(255),
   user_occ varchar(100),
   user_interests varchar(255),
   user_actkey varchar(32),
   user_newpasswd varchar(32),
   PRIMARY KEY (user_id),
   KEY user_session_time (user_session_time)
);
Lo que no sé es que, si será suficiente con insertar el registro en dicha tabla o hacer más cosas.

Ahora bien, también esta el detalle del campo password, ya que revise el código fuente ( lo puede bajar de www.phpbb.com ) y según yo ( es que no sé php) lo encriptan usando MD5.

Así es que hay que buscar como encriptar usando MD5 en .Net.

O ya encontraste la solución??

Saludos y suerte!!
daniel00 está desconectado   Responder Citando
Antiguo 05-mar-2007, 03:41   #3 (permalink)
Bravenap está en el buen camino
 
Avatar de Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 1.899
Enviar un mensaje por Skype™ a Bravenap
Re: Consultas para insertar nuevo usuario en foro phpBB

Gracias por responder. Esto y ultimando el procedimiento completo, ya que hay que añadir más registros en otras tablas. En cuanto esté lo pongo.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Bravenap está desconectado   Responder Citando
Antiguo 05-mar-2007, 07:23   #4 (permalink)
Bravenap está en el buen camino
 
Avatar de Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 1.899
Enviar un mensaje por Skype™ a Bravenap
Re: Consultas para insertar nuevo usuario en foro phpBB

Bueno allá va. Se trata de un procedimiento almacenado que registra a nuevos alumnos en una base de datos y al mismo tiempo, ya que la base de datos es la misma, crea usuarios para el foro y les asigna a un grupo para que puedan participar en el subforo del curso al que están inscritos. Marco en rojo sólo las consultas que corresponden a las tablas del foro phpBB.

Código:
ALTER PROCEDURE PA_FC_Inscripcion
(
	@nuevoAlumno bit = 1,
	@idAlumno int = NULL,
	@apellidos nvarchar(255) = '',
	@nombre nvarchar(255) = '',
	@direccion nvarchar(255) = '',
	@localidad nvarchar(255) = '',
	@cp numeric = NULL,
	@telefono char(50) = NULL,
	@correo nvarchar(255) = NULL,
	@profesion nvarchar(255) = NULL,
	@curso int = NULL,
	@pago char(1) = NULL,
	@importe char(50) = NULL,
	@empresa nvarchar(255) = NULL,
	@dirEmpresa nvarchar(255) = NULL,
	@CIFEmpresa char(50) = NULL,
	@locEmpresa nvarchar(255) = NULL,
	@CPEmpresa numeric = NULL,
	@factura bit = 0,
	@usuarioForo varchar(25) = '',
	@pass varchar(32) = ''
)
AS
BEGIN
	DECLARE @Error int, @idForo int, @idGrupo int
	BEGIN TRAN

	IF @nuevoAlumno = 1
	BEGIN
		-- Se crea el usuario para el foro
		SELECT @idForo = (SELECT MAX(user_id) FROM foroCursos_users) + 1
		INSERT INTO foroCursos_users
			(user_id, username, user_regdate, user_password, user_email, user_viewemail, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey)
			VALUES 
			(@idForo, @usuarioForo, DATEDIFF(ss, '01-01-1970', GetDate()) , @pass, @correo, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 'D M d, Y g:i a', 'spanish', 1, 0, 1, 0,'')
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError

		-- Se crea el grupo para uso personal
		INSERT INTO foroCursos_groups (group_name, group_description, group_single_user, group_moderator) VALUES ('', 'Personal User', 1, 0)
		SELECT @idGrupo = (SELECT @@identity)
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
	
		-- Se crea la relación usuario-grupo para el grupo de uso personal
		INSERT INTO foroCursos_user_group (user_id, group_id, user_pending) VALUES (@idForo, @idGrupo, 0)
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		
		-- Se inserta el nuevo alumno
		INSERT INTO fc_alumnos
			(Apellidos,Nombre,Domicilio,Localidad,CP,Telefono,Correo,Profesion,IDForo)
			VALUES
			(@apellidos,@nombre,@direccion,@localidad,@cp,@telefono,@correo,@profesion,@idForo)
		SELECT @idAlumno = (SELECT @@identity)
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
	END
	ELSE
	BEGIN
		-- Como ya está registrado, se busca su ID en el foro
		SELECT @idForo = (SELECT IDForo FROM fc_alumnos WHERE ID = @idAlumno)
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
	END

	INSERT INTO fc_relAlumnoCurso
		(Alumno,Curso,Estado,FechaInscripcion,FormaPago,Importe,Empresa,DirEmpresa,CIFEmpresa,LocEmpresa,CPEmpresa,Factura)
		VALUES
		(@idAlumno,@curso,1,GETDATE(),@pago,@importe,@empresa,@dirEmpresa,@CIFEmpresa,@locEmpresa,@CPEmpresa,@factura)
	SET @Error = @@Error
	IF (@Error<>0) GOTO TratarError

	-- Añadir al usuario al grupo del foro que corresponda al curso
	SELECT @idGrupo = (SELECT group_id FROM foroCursos_groups WHERE group_name = 'Grupo'+CONVERT(char(4),@curso))
	INSERT INTO foroCursos_user_group (user_id, group_id, user_pending) VALUES (@idForo, @idGrupo, 0)
	SET @Error = @@Error
	IF (@Error<>0) GOTO TratarError

	SELECT @idAlumno

	COMMIT TRAN

TratarError: 
	IF @Error<>0
	BEGIN
		ROLLBACK TRAN
		SELECT @Error
	END
END
Y el procedimiento para borrar al alumno y todas sus relaciones:
Código:
ALTER PROCEDURE PA_FC_BorrarAlumno
(
	@idAlumno int
)
AS
BEGIN
	DECLARE @Error int, @idForo int, @usuarioForo varchar(25)
	BEGIN TRAN

		SELECT @idForo = (SELECT IDForo FROM fc_alumnos WHERE ID = @idAlumno)

		-- Se borra el alumno
		DELETE fc_alumnos WHERE ID = @idAlumno
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		DELETE fc_relAlumnoCurso WHERE Alumno = @idAlumno
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError

		-- Se borra el usuario del foro y sus relaciones
		SELECT @usuarioForo = (SELECT username FROM foroCursos_users WHERE user_id = @idForo)
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		DELETE foroCursos_users WHERE user_id = @idForo
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		DELETE foroCursos_groups WHERE group_id IN (SELECT group_id FROM foroCursos_user_group WHERE user_id = @idForo)
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		DELETE foroCursos_user_group WHERE user_id = @idForo
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		UPDATE foroCursos_posts SET poster_id = -1, post_username = @usuarioForo
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		UPDATE foroCursos_vote_voters SET vote_user_id = -1 WHERE vote_user_id = @idForo
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		UPDATE foroCursos_topics SET topic_poster = -1 WHERE topic_poster = @idForo
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError
		DELETE foroIm_topics_watch WHERE user_id = @idForo
		SET @Error = @@Error
		IF (@Error<>0) GOTO TratarError

	COMMIT TRAN

TratarError: 
	IF @Error<>0
	BEGIN
		ROLLBACK TRAN
		SELECT @Error
	END

END
Espero que esté bien. No lo he comprobado a fondo.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Bravenap está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 05:08.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93