PHP - Moodle - Error de sufijo en html

 
Vista:
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 31/12/2019 21:02:00
Buenas compañeros,

Tengo un pequeño problema con un acceso alternativo "login" en Moodle.

La cuestión, es que tengo un archivo "html" el cual es el "login" del Moodle. Cuando el acceso es incorrecto, Moodle añade a la url el sufijo:
Código:
?errorcode=3
Por lo tanto, si el "login" es www.midominio.com/login/index.html

Moodle me lo transforma en www.midominio.com/login/index.html?errorcode=3 o 2, en función del tipo de error que sea.

Lo que me gustaría hacer, es que si me aparece el ?errorcode=3 la página me muestre un error, ejemplo... Datos de acceso incorrectos...

quisiera hacer que cuando el errorcode=3 se de, me aparezca una ventana de alerta para indicar el error...

¿Alguna idea?

¡Gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por José Manuel (62 intervenciones) el 07/01/2020 12:50:58
Hola Emanuel:

Creo que esto debería ir en el foro de PHP: https://www.lawebdelprogramador.com/foros/PHP/index1.html

En cuanto a la pregunta:

1.- Activa $CFG->alternateloginurl si no lo has hecho.

2.- Obtienes el dato de $_GET['errorcode'] y con un if, actúas en consecuencia.

Ejemplos:

- Obtienes el dato directamente (no recomendable por seguridad):
1
2
3
4
5
<?php
   if ($_GET["errorcode"] == 3){
      echo '<scrip>alert("Las credenciales introducidas son inválidas");</script>';
   }
?>

- Usamos el API de Moodle para ello (mucho mejor):
1
2
3
4
5
<?php
   if (optional_param('errorcode', 0, PARAM_INT) == 3) {
      echo '<scrip>alert("Las credenciales introducidas son inválidas");</script>';
   }
?>

Cuéntanos. Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 08/01/2020 17:22:29
Gracias por el comentario ahora me surge la duda de donde debo colocar el código, debe de ir en el formulario de login externo? o en login.php de moodle?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por José Manuel (62 intervenciones) el 09/01/2020 11:03:38
Hola Emanuel:

Puedes modificar directamente el fichero login.php de moodle aunque no es lo recomendable. Ya que estás creando un login externo, usa ese mismo para personalizar ahí todo lo que necesites.

Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 12/01/2020 17:17:52
Con el código comprendo que el errorcode es la variable pero donde declaro dicha variable en el submit

este es el codigo de mi formulario:

1
2
3
4
5
6
7
8
<form action="https://midominio.com/moodle/login/index.php" id="login" method="POST" >
<input class="input" id="username" name="username" type="text" placeholder="Usuario"
value="" required />
<input class="input" id="password" name="password" type="password" placeholder="Contraseña" value="" required />
	</p>
		<button  style="background-color: transparent" id="contraseña" class=" " type="button" onclick="mostrarContrasena()"><i class="fa fa-eye-slash"></i></button>
		<font color="#000000"><input id= "entrar" name="submit" nbsp="nbsp" type="submit"  onclick="entrar()" value="Entrar"/>
		</form>

adicional encontre este código pero nuevamente no se donde se declara la variable errorcode:


1
if ( isset($_REQUEST['errorcode']) and $_REQUEST['errorcode']==3 )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por José Manuel (62 intervenciones) el 13/01/2020 17:21:07
Hola Emanuel:

La variable errorcode no tienes que declararla. Tú mismo indicas en tu duda del primer mensaje que Moodle te la agrega a la url. Efectivamente, ahí es donde queda declarada. Ese ?errorcode=3 que indicas que te pone Moodle en la url es la declaración. Te está pasando la variable por el llamado QueryString de la URL. PHP puede consumir esa información con $_REQUEST o $_GET.

De hecho, más que $_REQUEST es mejor usar $_GET (en este caso). El código que indicas es mejor si:

1
if ( isset($_GET['errorcode']) and $_GET['errorcode']==3 )

Insisto. La variable errorcode te la añade Moodle en la URL cuando el acceso es incorrecto (como tú mismo has indicado), momento en que queda "declarada" y accesible a través del array $_GET (preferible) o $_REQUEST.

Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 13/01/2020 17:44:27
Muy amable por tu paciencia, sin embargo cuando le doy clic al submit no me lanza ningun mensaje, me aparece de esta manera, el codigo lo estoy incrustando al index.

de esta manera:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form action="https://inebchamil.edu.gt/moodle-copia/login/index.php" id="login" method="POST" >
<input class="input" id="username" name="username" type="text" placeholder="Usuario"
value="" required />
<input class="input" id="password" name="password" type="password" placeholder="Contraseña" value="" required />
	</p>
		<button  style="background-color: transparent" id="contraseña" class=" " type="button" onclick="mostrarContrasena()"><i class="fa fa-eye-slash"></i></button>
		<font color="#000000"><input id= "entrar" name="submit" nbsp="nbsp" type="submit"  onclick="entrar()" value="Entrar"/>
		</form>
              </div>
            </div>
            </div>
        </div>
					</div>
 
<?php
 
if ( isset($_REQUEST['errorcode']) and $_REQUEST['errorcode']==3 )
{
echo '<scrip>alert("Las credenciales introducidas son inválidas");</script>';
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 13/01/2020 17:47:44
error
asi me aparece, que estoy haciendo mal???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por José Manuel (62 intervenciones) el 13/01/2020 19:04:08
Hola:

El alert que te aparece tal cual es que no lo está interpretando. Fíjate bien que en el código, en la línea 19, has olvidado poner la t de script. Debe quedar así:

1
2
echo '<script>alert("Las credenciales introducidas son inválidas");</script>';
// Cuidado que tienes <scrip>!!!

Recuerda además que un alert con JavaScript es más un salir del paso que una solución adecuada. Eso sí, es un comienzo. Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 14/01/2020 17:49:46
Ya corregi sin embargo me sigue sin interpretar el código
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<form action="https://inebchamil.edu.gt/moodle-copia/login/index.php" id="login" method="POST" >
<input class="input" id="username" name="username" type="text" placeholder="Usuario"
value="" required />
<input class="input" id="password" name="password" type="password" placeholder="Contraseña" value="" required />
	</p>
		<button  style="background-color: transparent" id="contraseña" class=" " type="button" onclick="mostrarContrasena()"><i class="fa fa-eye-slash"></i></button>
		<font color="#000000"><input id= "entrar" name="submit" nbsp="nbsp" type="submit"  onclick="entrar()" value="Entrar"/>
		</form>
              </div>
            </div>
            </div>
        </div>
					</div>
 
<?php
 
if ( isset($_REQUEST['errorcode']) and $_REQUEST['errorcode']==3 )
{
echo "<script>alert("Las credenciales introducidas son inválidas");</script>";
 
?>
 
(PROBÉ CON LAS COMILLAS Y LA COMILLA SIMPLE)
}
 
<?php
 
if ( isset($_REQUEST['errorcode']) and $_REQUEST['errorcode']==3 )
{
echo '<script>alert("Las credenciales introducidas son inválidas");</script>';
}
 
?>

esta es la URL de la pagina: https://inebchamil.edu.gt/


ERROR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por José Manuel (62 intervenciones) el 15/01/2020 17:58:26
Hola:

Sigue mal. Efectivamente has corregido la etiqueta script pero los pares de comillas están mal e interrumpes la cadena. Debes tener:

1
echo '<script>alert("Las credenciales introducidas son inválidas");</script>';

Nota el uso de comillas simples y dobles. Un saludo,

https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 16/01/2020 17:30:07
1
2
3
4
5
<?php
   if (optional_param('errorcode', 0, PARAM_INT) == 3) {
      echo 'Las credenciales introducidas son inválidas';
   }
?>

Intenté con un echo nada mas pero creo que la condicion tiene algún error porque deberia mostrarme en pantalla el echo pero no me muestra nada, a que se deberá?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 18/01/2020 21:22:29
Como lo compruebo???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Emanuel
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Moodle - Error de sufijo en html

Publicado por Emanuel (12 intervenciones) el 14/02/2020 16:22:48
Hola, no he logrado solucionarlo, no comprendo como funciona el codigo
1
var_dump(optional_param('errorcode', 0, PARAM_INT) == 3);
Ayudaaaaa!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar