Foros del Web » Programando para Internet » PHP »

Función que condiciona acciones

Estas en el tema de Función que condiciona acciones en el foro de PHP en Foros del Web. Buenas tardes chic@s, forer@s! El día de hoy, vengo en solicitud de su ayuda, ya que me he atorado un poco. Bueno lo que ando ...
  #1 (permalink)  
Antiguo 05/12/2016, 18:22
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Pregunta Función que condiciona acciones

Buenas tardes chic@s, forer@s!

El día de hoy, vengo en solicitud de su ayuda, ya que me he atorado un poco.
Bueno lo que ando haciendo es una función, que básicamente lo que hace es redirigir hacia un ?action= cuando no sea de los indicados en la misma función.

Consta de un if donde se identifica la acción y si es diferente a alguna de las permitidas te redirige a la acción principal (inicio). Esto es con el fin de que no se pierda contenido o valla a una página vacía ya que trabajo mediante la variable que les comentaba anteriormente para mostrar x contenido y no batallar.
Código PHP:
Ver original
  1. # REDIRIGIMOS HACIA "X" ACTION SI NO EXISTE
  2.     function vCOND($vAC,$vPG,$vRD){
  3.         if($vACT != $vAC){
  4.             vHEADER(WwW.'/'.$vPG.'.php?action='.$vRD);
  5.         }
  6.     }
vHEADER() Es otra función que utilizo para acortar un header('Location: blala'); esto para ahorrar tiempo a la hora de escribir código.
$vACT Es la variable que recibe el valor de ?action= mediante el método $_GET.
$vAC Es el conjunto de "acciones" a las que están permitidas accesar por el usuario.
$vPG Es la página definida en la condición a la cual se enviará al usuario, que luego es complementada con un .php, por ejemplo si el contenido de la variable fuera "index", entonces redirigiría a index.php.
$vRD Es el valor de ?action= al cual se enviará al usuario, por ejemplo principal para que al final quedara vHEADER(WwW.'/index.php?action=perfil).

Esta condición ocurriría en caso de que el valor de $vAC no cumpla ninguna de las permitidas, entonces redirija al inicio, para como decía en el inicio evitar que el usuario se quede esperando una página que sencillamente no tiene nada dentro.

- Un fuerte abrazo y les deseo éxito en sus actividades .
  #2 (permalink)  
Antiguo 07/12/2016, 14:31
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Respuesta: Función que condiciona acciones

Podrían ayudarme chic@s :d
  #3 (permalink)  
Antiguo 07/12/2016, 14:44
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Función que condiciona acciones

"$vAC Es el conjunto de "acciones" a las que están permitidas accesar por el usuario."

Según eso, quiere decir que $vAC es un arreglo no? ya que dices "conjunto" de acciones.

Si es así tendras que recorrer $vAC y checkear si se tiene acceso a la acción, algo así:

Código PHP:
Ver original
  1. for($k=0;$k<sizeof($vAC);$k++){
  2.     if($vACT != $vAC[$k]){
  3.     vHEADER(WwW.'/'.$vPG.'.php?action='.$vRD);
  4.     exit;
  5.     }
  6. }

Uso exit en cambio de break, ya que vHEADER redirecciona...

No se si estoy en lo correcto...

Última edición por alvaro_trewhela; 07/12/2016 a las 15:03
  #4 (permalink)  
Antiguo 07/12/2016, 16:39
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Respuesta: Función que condiciona acciones

Así es, es un arreglo:
Código PHP:
Ver original
  1. $actions = array('principal', 'profile', 'account', 'mail', 'password', 'personal', 'notifications');
  2.   vCOND($actions,'settings','principal');

Que utilizo en la función que ya me has hecho el favor de complementar.
Código PHP:
Ver original
  1. # REDIRIGIMOS HACIA "X" ACTION SI NO EXISTE
  2.     function vCOND($vAC,$vPG,$vRD){
  3.         for($k = 0;$k < sizeof($vAC);$k++){
  4.             if($vACT != $vAC[$k]){
  5.                 vHEADER(WwW.'/'.$vPG.'.php?action='.$vRD);
  6.                 exit;
  7.             }
  8.         }
  9.     }

El problema es que al accesar a la página, el header() se repite tantas veces que el navegador termina por mostrarme un error en la página y nada más no carga con ninúna acción que introduzca de las que se supone son permitidas e inclusive la principal. ¿Qué será lo que estoy haciendo mal?

-Saludos
  #5 (permalink)  
Antiguo 08/12/2016, 13:15
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Función que condiciona acciones

Me puedes mostrar vHEADER porfavor...

Y disculpa es mucho más fácil in_array

if(!in_array($vACT,$vAC)){
vHEADER(WwW.'/'.$vPG.'.php?action='.$vRD);
exit;
}

Última edición por alvaro_trewhela; 08/12/2016 a las 13:56

Etiquetas: acciones, usuario, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:13.