Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   problema con script (https://www.clubdelphi.com/foros/showthread.php?t=52767)

dape 30-01-2008 16:35:56

problema con script
 
Hola amigos, ten go un pequeño problemita con unos scripts que he desarrollado, en mis scripts tengo el siguiente código:

Código PHP:

if (!isset ($_SESSION['nivel']))
 {
  if(
$_SESSION['nivel'] == 1)
  
//Se permite el ingreso al área. OJO: modificar el nmero para cada nivel
  
{
  }
  else
  {
   
header("location: ../../index.html?acceso_no_autorizao");
   exit();
  }
 }
 else
 {
  
// chequear si se llama directo al script.
  
if ("/dataimpulse/sgdi/admin/findtodos.php" == $_SERVER['SCRIPT_FILENAME'])
  {
   
header("location: ../prohibido.html?acceso_no_autorizado");
   exit();
  }
 } 

con el cual permito o no la ejecución del script, pero resulta que esto funciona bien en la mayoria de los scripts menos en 5 de ellos, y cuando hago clic en el enlace que me llevan a estos scripts, el codigo en cuestion me bota al index.html.

Esto ocurre en un script a la vez, si salgo y vuelvo a entrar ese enlace ya funciona bien pero otra deja de funcionar. Llevo un tiempo con este problemita y no he encontrado forma de resolverlo.

Les estaré muy agradecido si me pueden dar alguna idea que este pasando.

Saludos desde Tacna - Perú

David.

dec 30-01-2008 16:49:46

Hola,

Me llaman la atención las primeras condiciones:

Código PHP:


if (!isset ($_SESSION['nivel']))
 {
  if(
$_SESSION['nivel'] == 1)
  
//Se permite el ingreso al área. OJO: modificar el nmero para cada nivel
  
{
  }
  else
  {
   
header("location: ../../index.html?acceso_no_autorizao");
   exit();
  }
 }

/* */ 

Discurres, si no me equivoco, de esta manera: Si NO está "seteado" el elemento "nivel" de la variable "$_SESSION", compruebo el valor del elemento "nivel" de la variable "$_SESSION". Ahora bien, si no está "seteado" el elemento en cuestión, no tendrá valor alguno tampoco que poder comparar.

Eso es lo segundo que se me vino a la cabeza y que me llamó la atención. Lo otro es que el problema pueda estar entorno a la variable "$_SESSION", puesto que su elemento "nivel" puede llegar a tener un valor que no sea el apropiado, dependiendo del caso, y por tanto "tu lógica" falle.

dape 30-01-2008 23:39:12

Entiendo Dec, sin embargo cuando ejecuto los scripts en local, estos funcionan como espero pero en cuanto los subo al servidor empieza a fallar, ¿crees que el hecho de que se ejcute en el local o el servidor afecte en algo?, disculpa si pregunto una tonteria pero mis conocimientos de PHP aun no son muy buenos.

¿conoces algun otro metodo que me permita controlar la ejecución de los scripts o alguna página de donde pueda guiarme?

Saludos desde Tacna - Perú

David.

keyboy 31-01-2008 01:08:11

La observación de dec, más allá de si ejecutas en local o en el servidor, se refiere a que tienes la condición alrevés; donde dice

Código PHP:

if (!isset ($_SESSION['nivel']))
{
  ...


debería ser

Código PHP:

if (isset ($_SESSION['nivel']))
{
  ...


esto es, sin el signo !, puesto que es en ese bloque donde a continuación preguntas cuál es el valor de $_SESSION['nivel']. Como digo, ésta es una errata que no tiene que ver con dónde se ejecuta el script; quizá fue un simple error al escribir aquí el código pero sería bueno que aclarases esto antes de proseguir.

Bye

dape 31-01-2008 17:33:06

mmmmmmmmm, probare entonces sin el signo en cuestion y le aviso como anda.

Saludos desde Tacna - Perú

David.


La franja horaria es GMT +2. Ahora son las 07:06:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi