Empezando por INSERT INTO foro_users ....
Gracias y un saludo.
|
|
#1 (permalink) |
![]() |
Consultas para insertar nuevo usuario en foro phpBB
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! |
|
|
|
|
|
#2 (permalink) |
![]() |
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:
Lo que no sé es que, si será suficiente con insertar el registro en dicha tabla o hacer más cosas.# -------------------------------------------------------- # # 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) ); 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!! |
|
|
|
|
|
#3 (permalink) |
![]() |
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! |
|
|
|
|
|
#4 (permalink) |
![]() |
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:
Y el procedimiento para borrar al alumno y todas sus relaciones: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
Código:
Espero que esté bien. No lo he comprobado a fondo.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 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! |
|
|
|
![]() |
| Herramientas | |
| Desplegado | |
|
|