error al vincular usuarios a moodle - G3.18.0

Hola:

Al vincular los usuarios a moodle, ./guarani vincular_usuarios_moodle, nos tiraba error cuando los apellidos o nombres, tenian un caracter especial (ej: ',D’Alessandro), lo pudimos solucionar, modificando el archivo
/gestion/php/extension_toba/guarani_modelo.php,

entre lineas 2649 y 2654

original:

$id = $usuario_moodle[‘id’];
$username = [b]addslashes/b;
$firstname = [b]addslashes/b;
$lastname = [b]addslashes/b;
$fullname = [b]addslashes/b;
$email = (isset($usuario_moodle[‘email’]))?$usuario_moodle[‘email’] : ‘’;
$email = [b]addslashes/b;
$values = “($id, ‘$username’, ‘$firstname’, ‘$lastname’, ‘$fullname’, ‘$email’)”;
por:

                                    $username  [b]pg_escape_string[/b]($usuario_moodle['username']);
				$firstname	= [b]pg_escape_string[/b]($usuario_moodle['firstname']);
				$lastname	= [b]pg_escape_string[/b]($usuario_moodle['lastname']);
				$fullname	= [b]pg_escape_string[/b]($usuario_moodle['fullname']);
				$email          = (isset($usuario_moodle['email']))? $usuario_moodle['email'] : '';
				$email          = [b]pg_escape_string[/b]($email);

Saludos!!!
Pablo.

Hola Pablo, gracias por reportarlo!!!

Vamos a probarlo e incorporarlo para la próxima versión!!!

saludos.
2

Hola Pablo,

Hice la prueba y no pude reproducir el problema con la función addslashes, en Guaraní y Moodle utilice el nombre Chicago O’Hare y el apellido D’Alessandro, elegí que vincule por la columna fullname, pero me vinculo bien.

Igualmente vamos a cambiar por la función pg_escape_string si es que a ustedes le dio error.

¿nos podes contar mas sobre el caso así lo podemos reproducir?

saludos.
2

Hola:

1 - ./guarani vincular_usuarios_moodle

1.1 – Columna ID : 1

1.2 Seleccione valores pertenecientes a la columna “ID”
(Puede seleccionar varios valores separandolos por “,”)

username

Este es el error q nos tiraba:

Cambie el dni: de la persona:

[ERROR][guarani] SQLSTATE[42601]: Syntax error: 7 ERROR: error de sintaxis en o cerca de «ERARIO»
LINE 1: …ahoo.com.ar’), (945, ‘1111111’, ‘ANA CLARA’, ‘D'ERARIO’, ‘…
^
[ERROR][guarani] toba_error_db:
ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_42601
[MENSAJE]: ERROR: error de sintaxis en o cerca de «ERARIO»
LINE 1: …ahoo.com.ar’), (945, ‘35725962’, ‘ANA CLARA’, ‘D'ERARIO’, '…
^
[SQL EJECUTADA]: INSERT INTO _temp_usuarios_moodle (id, username, firstname, lastname, fullname, email) VALUES ( …

Hola Pablo, pude reproducir el caso:

Con la función addslashes la query falla:

INSERT INTO _temp_usuarios_moodle (id, username, firstname, lastname, fullname, email) VALUES (24, '35725962', 'ANA CLARA', 'D\'ERARIO', 'ANA CLARA D\'ERARIO', 'pruebasguarani3+53789456@gmail.com');

Con la función pg_escape_string funciona bien:

INSERT INTO _temp_usuarios_moodle (id, username, firstname, lastname, fullname, email) VALUES (24, '35725962', 'ANA CLARA', 'D''ERARIO', 'ANA CLARA D''ERARIO', 'pruebasguarani3+53789456@gmail.com');

Gracias por el aporte, esto saldrá en la versión 3.20.2 y 3.21.0 seguramente.

saludos.
2