elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿Una dirección de URL "GLOBAL"?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Una dirección de URL "GLOBAL"?  (Leído 2,113 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Pregunta]: ¿Una dirección de URL "GLOBAL"?
« en: 4 Noviembre 2019, 02:14 am »

Buenas noches,
tengo la siguiente función...

Código
  1. function Eject($page)
  2. {
  3. if(is_string($page))
  4. {
  5. header('Location: aplication/'.($page));
  6. exit();
  7. }
  8. }
  9.  

Basicamente lo que hace esta función es expulsar a un usuario a otra pagina...

Digamos que...

Código
  1. $usuario_permitido = false;
  2. if($usuario_permitido == false)
  3. {
  4.      Eject('index');
  5. }
  6.  
  7. echo "Buenas noches!";
  8.  


Básicamente vamos a preguntar si el usuario tiene permitido ver esta pagina y en el caso de que sea falso lo va a eyectar a la pagina "index" por tanto no sólo no va a poder ver la pagina, si en el caso puede cambiar el comportamiento del href no va a poder ver el mensaje buenas noches ya que se uso "exit();"

La pregunta es, si yo uso Eject(); en una pagina dentro del directorio "aplication/" basta con dejar la función como esta...
pero si quiero ejecutar la función en el directorio "aplication/ajax/page.php" ya es un directorio diferente...

lo mismo si el directorio es "aplication/directorio_a/direcotorio_b/etc/page.php"

lo que estoy buscando es redireccionarlo de una forma más global sin necesidad de depender en que directorio este...

algo como...
Eject("www.aplication.com/aplication")


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Una dirección de URL "GLOBAL"?
« Respuesta #1 en: 4 Noviembre 2019, 02:21 am »

rutas absolutas, no tienes que usar la url, el navegador lo sobreentiende

con

Código:
header('Location: /aplication/'.($page));

lo enviará a tu_pagina.com/aplication/pagina ya que el / inicial le indica que es basado en el url raiz


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Una dirección de URL "GLOBAL"?
« Respuesta #2 en: 4 Noviembre 2019, 04:21 am »

Hola..

Intente nuevamente como me dijiste pero me sigue dando el mismo error, error que es la razón por la que pregunto esto.

El error me lo envía por consola...

estoy usando ajax

hago click en x boton -> realiza petición ajax -> el fichero ajax evalua como anteriormente había escrito si pasa x cosa "Eject('index')" el directorio sería aplication/ajax/fichero_ajax.php

Si yo uso window.location.href (javascript) todo funciona bien, pero lo quería hacer con header()
este es el error que me da:
básicamente no redirecciona y solo muestra este error.



Aísle el código y estoy 100% seguro que es eso.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Una dirección de URL "GLOBAL"?
« Respuesta #3 en: 4 Noviembre 2019, 04:54 am »

no es eso a primera vista...
 
el error es que estas usando ajax de forma sincrona lo que se considera obsoleto, muestra tu script de js donde aplicas el ajax

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: ¿Una dirección de URL "GLOBAL"?
« Respuesta #4 en: 4 Noviembre 2019, 11:54 am »

header('Location: /index.html');
header('Location: "https://www.google.com"');

Diría que la url lleva comillas, si no te va, prueba sin ellas.

Deberías dejar de usar javascript en general. Úsalo para quitarle carga al servidor o para meter/sacar/alterar contenido sin recargar la página. Te ahorrarás muchos problemas.
Por ejemplo si haces la redirección con javascript, voy a ajustes del navegador y lo desactivo. Así ya no me rediriges y veo el contenido. Una vez dentro de tu página lo vuelvo a activar y listo. Asique tu medida usando javascript no es fiable.

El error que te da es porque no usaste javascript asíncrono. Lo que significa que el cliente se va a quedar conjelado hasta que el servidor le conteste porque está esperando una respuesta sin la que no puede continuar la ejecucción. Por ejemplo un script. No es buena idea hacer esto a menos que el resto de elementos y scripts de la página trabajen sobre o con la respuesta del servidor.
 No sé si jquery te lo hace por defecto. Si es así y no necesitas esperar, setea async a true en el bloque que haces la petición. O haz un bloque/cuerpo de función nuevo para la petición si estás usando la petición en el espacio global. Diría que puede afectar por el hoisting a otras peticiones si no metes la petición en un bloque independiente. Prueba y lo sabes.

Mira la documentación de Mozilla XMLHttpRequest donde te explican como funciona.
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Una dirección de URL "GLOBAL"?
« Respuesta #5 en: 4 Noviembre 2019, 22:00 pm »

no es eso a primera vista...
 
el error es que estas usando ajax de forma sincrona lo que se considera obsoleto, muestra tu script de js donde aplicas el ajax



Es este:

Código
  1. $.ajax({
  2. url: 'ajax/resend_mail_recovery.php',
  3. type: 'POST',
  4. dataType: 'html',
  5. data: {id_user, page},
  6.  
  7. success: function()
  8. {
  9. $(document).ready(function()
  10. {
  11. document.body.style.cursor = 'default';
  12. document.getElementById('modal_show_loading').style.display = 'none';
  13. });
  14. }
  15. })
  16.  
  17. .done(function(results)
  18. {
  19. $('body').append(results);
  20. })
  21.  

Si uso "window.location.href" funciona de 10 pero ya al usar header me da este problema, también estoy en la incognita de cual es mejor si redirigirlo con js o con php (lo que sea más seguro)

No hay problema si el usuario desabilita javascript, ya que el programa detecta si esta desactivado y lo redirecciona con una <meta> a otra pagina usando <noscript><meta etc etc></meta></noscript>
« Última modificación: 4 Noviembre 2019, 22:03 pm por MiguelCanellas » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines