Tengo la versión de SMF 2.0 RC5 integrado con joomla, me va todo perfecto. Registro el usuario en joomla a la vez se da de alta en smf, y está todo integrado, ahora quiere hacer un login (para otra cosa) que valide sobre los usuarios de smf, ahora lo explico mejor.
Tengo un formulario Usuario y contraseña, que quiero al confirmar comprobar que el usuario es quien dice ser, es decir validad sobre el smf dicho usuario, he visto que con las funciones smf_setLoginCookie(); y smf_authenticateUser(); podria hacerlo, teniendo el api.php pero no me devuelve nada. No sé si es el camino correcto, si la api no corresponde con la versión que tengo o si no hay forma.
¿alguien me podría ayudar?
Quoteinclude_once("smf_1-1_api.php");
$password = $_POST["pwd"];
$username = $_POST["username"];
$cookiename = $smf_settings['cookiename'];
unset($_COOKIE[$cookiename]);
smf_setLoginCookie(3600, $username, $password, $encrypted = false);
smf_authenticateUser();
echo 'algo '. smf_authenticateUser() ;
Tengo este código de prueba, donde recibo usuario/password, y lo intento validar, deberia imprimir true o false, pero la función smf_authenticateUser() no devuelve nada.
El archivo api, tiene modificada una linea para obtener los datos de Settings.php que tengo local, ya que no está sobre el directorio de smf.
Quoterequire_once('Settings.php');
Muchas gracias
Bueno por si alguien anda buscando lo mismo despues de quemarme un poco la cabeza di con la clave.
Quoteinclude_once("smf_2_api.php");
global $user_info;
$password = $_POST["pwd"];
$username = $_POST["username"];
if (smfapi_authenticate($username, $password)){
if(smfapi_login($username)){
echo 'Conectado como: '. $user_info['name'];
}
}else{
echo 'Error de Conexión';
}
La información se pude encontrar en este hilo http://www.simplemachines.org/community/index.php?topic=453008.0
hay que agregar una linea en el archivo api que indique donde están los Settings (linea 588)
Quote// $settings_path = $_SERVER['DOCUMENT_ROOT'] . /path/to/Settings.php
en mi caso lo he dejado como
Quote$settings_path = 'Settings.php';
El "global $user_info;" es simplemente para poder imprimir el nombre de quien se ha logeado.
En resumidas cuentas con la función smfapi_authenticate($username, $password) podremos saber si el usuario que quiere entrar esta validando correctamente el usuario y contraseña; true/false son los valores devueltos. Con smfapi_login($username) le decimos a SMF que dicho usuario se ha conectado.