Foros del Web » Programando para Internet » PHP »

variable global

Estas en el tema de variable global en el foro de PHP en Foros del Web. Hola a todos, tengo una pregunta que no logro resolver: Resulta que tengo un proyecto web, pues bien, me gustaría hacer que en la primera ...
  #1 (permalink)  
Antiguo 11/01/2006, 03:38
 
Fecha de Ingreso: febrero-2002
Ubicación: Valladolid
Mensajes: 83
Antigüedad: 15 años, 10 meses
Puntos: 1
Pregunta variable global

Hola a todos, tengo una pregunta que no logro resolver:

Resulta que tengo un proyecto web, pues bien, me gustaría hacer que en la primera página se me cargara en una variable global un valor, por ejemplo ok=0, de tal manera que al entrar en las páginas siguientes compruebe el valor de la variable global ok, si es 0 no pasa nada y sigo hacia adelante, pero si no tiene valor o la variable no existe que se me redirija a la página index.php

Alguien me puede ayudar con este código, es que me gustaría que funcionara y mis conocimientos de php no son muy buenos que digamos.

Muchas gracias anticipadas. Un Saludo.
  #2 (permalink)  
Antiguo 11/01/2006, 03:50
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola chi_flao

Echa un vistazo al tema de las sesiones, creo que puede servirte:

http://es2.php.net/manual/es/ref.session.php

Saludos,
  #3 (permalink)  
Antiguo 11/01/2006, 04:19
 
Fecha de Ingreso: febrero-2002
Ubicación: Valladolid
Mensajes: 83
Antigüedad: 15 años, 10 meses
Puntos: 1
Muchas gracias, lo he estado mirando y he puesto esto en mi página


index.php

<?php
session_start();
$_SESSION['acceso'] = 1;
?>


cualquiera.php

<?php
if (!session_is_registered('acceso')) {
?>
<SCRIPT LANGUAGE="JavaScript">
location.href='buena.php';
</SCRIPT>
<?
}
?>


El problema es que se me hace un bucle infitino ya que index.php es una página con frames que lo primro que hago es el código que he puesto arriba y luego llamo a la página cualquiera.php, pero esta determina que la variable acceso nunca existe.

¿Voy bien encaminado?

Muchas Gracias.
  #4 (permalink)  
Antiguo 11/01/2006, 12:21
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Probá con esto:

index.php

Código PHP:
<?php
session_start
();
$_SESSION['acceso'] = 1;
?>
sesion.php

Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['acceso'])) {
    
header("location:index.php");
        exit;
} elseif (isset(
$_SESSION['acceso']) && $_SESSION['acceso'] != 1) {
    
header("location:index.php");
        exit;
}
?>
Lo de arriba te conviene guardarlo en un archivo aparte, por ej. sesion.php y lo incluís en cada página así:

pagina1.php

Código PHP:
<?php
include("sesion.php");
?>
Al cargar página1.php, va a incluir sesion.php. Ese archivo es el que va a iniciar una sesión (si no existe ya, si existe no crea otra), y va a buscar entre las variables de sesión una que se llame acceso. Si no existe, redirecciona y detiene la ejecución del script. Si existe, pero tiene un valor distinto a 1, lo mismo. En cualquier otro caso (la variable existe y vale 1), el script no produce ningún efecto y página1 se carga normalmente.

Una observación: no te conviene redireccionar con JavaScript cuando esté usando sesiones. No es por algo entre JS y sesiones, sino simplemente porque en general, esas redirecciones buscan evitar el ingreso a una página sin autorización. Si yo tuviera JS deshabilitado (lo cual se hace muy fácil), entonces podría ver tu página... Bueno, si agregás exit no, porque corta el script, pero igual, mejor usar php. No vas a tener problemas con header() porque está al principio del script.

Suerte.
  #5 (permalink)  
Antiguo 12/01/2006, 02:45
 
Fecha de Ingreso: febrero-2002
Ubicación: Valladolid
Mensajes: 83
Antigüedad: 15 años, 10 meses
Puntos: 1
Muchas Gracias califa010, me va estupendo, lo he estado probando y genial, además la redirección tienes razón, es mejor hacerla así.

Muchas gracias de nuevo por tu atención.


Un saludo y feliz año
  #6 (permalink)  
Antiguo 12/01/2006, 04:30
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Por nada. Me alegro de que hayas solucionado el problema.

Saludos
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 11:41.