pablo_unq
(Romero, Pablo Andrés)
1 Abril, 2022 13:24
1
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.
lleonardis
(Leonardis, Leonel Eduardo)
1 Abril, 2022 13:40
2
Hola Pablo, gracias por reportarlo!!!
Vamos a probarlo e incorporarlo para la próxima versión!!!
saludos.
2
lleonardis
(Leonardis, Leonel Eduardo)
1 Abril, 2022 16:26
3
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
pablo_unq
(Romero, Pablo Andrés)
1 Abril, 2022 17:47
4
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 ( …
lleonardis
(Leonardis, Leonel Eduardo)
1 Abril, 2022 18:57
5
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