Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/plugins/avatarep.php on line 1102

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
Login externo con ajax
Páginas (2):    1 2
battousai   30 Nov, 2010, 11:11 am
#11
se puede hacer con cualquier tipo de form, el problema es que no se ajax y tampoco se las variables que se deben de pasar. como en el caso de phpbb3
nentab   27 Dec, 2010, 4:47 pm
#12
Pues que yo sepa eso en MyBB de momento no se puede hacer. A ver más adelante con nuevas actualizaciones.
SergioM   27 Dec, 2010, 6:10 pm
#13
Necesitas un par de modificaciones pero si se puede.

El sistema que usa MyBB para iniciar sesión por fuerza pasa en algun momento por alguna redirección, por lo tanto no es compatible con AJAX.

Lo que puedes hacer es hacer los siguientes cambios:
Primero abre member.php y localiza la siguiente linea:
Código:
// Redirect to the URL if it is not member.php
redirect(htmlentities($mybb->input['url']), $lang->redirect_loggedin);
Reemplaza esas 2 lineas por lo siguiente:
Código:
            // Redirect to the URL if it is not member.php
            if(!isset($mybb->input['remote_login']))
                redirect(htmlentities($mybb->input['url']), $lang->redirect_loggedin);
            else
                exit();

En este caso, a tu formulario externo tendrias que agregarle el siguiente campo oculto:
Código:
<input name="remote_login" type="hidden" value="1" />
Y también cambiar el action en tu forma a:
Código:
action='member.php?ajax=1'
Ajustalo a la carpeta donde se encuentre tu foro.

Esto no lo he probado por completo, pero deberá funcionar. No me voy a meter a detalles de AJAX por el momento, asumiré que tienes noción basica de jQuery o prototype. Realmente yo no conozco bien prototype pero si te podria ayudar si usas jQuery.

Ya solo bastaria que en tu forma (sea el framework que sea) haga submit por metodo post a tu forma por medio de AJAX y que capture cualquier texto desplegado que en este caso seria un mensaje de error en formato XML.

Lo que hace el codigo que te mostre es que si la forma contiene el elemento 'remote_login' entonces simplemente terminará el script de inicio de sesión sin cambiar a ninguna otra pagina. Y si hubo error será impreso y tu script de AJAX lo debera de capturar, ya muestras ese mensaje como quieras Tongue

Saludos.
Páginas (2):    1 2
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.