Foros del Web » Programando para Internet » PHP »

variable de sesión si no existe

Estas en el tema de variable de sesión si no existe en el foro de PHP en Foros del Web. hola, en mi pagina principal creo una variable de la siguiente manera: <?php session_start(); $usuario = "visitante"; session_register("usuario"); ?> como puedo hacer para que no ...
  #1 (permalink)  
Antiguo 13/05/2005, 17:04
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 12 años, 9 meses
Puntos: 0
variable de sesión si no existe

hola,

en mi pagina principal creo una variable de la siguiente manera:

<?php
session_start();
$usuario = "visitante";
session_register("usuario");
?>


como puedo hacer para que no me cree esta variable si ya existe?

mi ejemplo es para crear un usuario visitante para todos los visitantes de mi web, pero que si se loguean la variable que se crea en dicho login nos sea remplazada si vuelven a pasar por mi index.php donde se crea por defecto la anterior.

espero haberme explicado
  #2 (permalink)  
Antiguo 13/05/2005, 17:29
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 16 años
Puntos: 0
con un if

a tu script le haces un if, quedaría
<?php
session_start();
if(!isset($_session['usuario'])){
$usuario = "visitante";
session_register("usuario");}
?>
__________________
Julio
Clasificados Gratis
  #3 (permalink)  
Antiguo 14/05/2005, 00:44
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
!!! Pero el uso de session_register() ya es obsoleto... no se debería usar a menos que usas una versión de PHP inferior de 4.1.X

Vamos a www.php.net/session_register y vemos:
Cita:
register_globals: Nota importante: Desde PHP 4.2.0 el valor por defecto de la directiva register_globals es off. La comunidad PHP anima a todos a no confiar en esta directiva y usar en su lugar superglobals.
El tema se trata en las FAQ: http://www.forosdelweb.com/showthrea...989#post238989

Igual que el tema del uso de sesiones:
http://www.forosdelweb.com/showthrea...992#post238992
http://www.forosdelweb.com/showthrea...998#post238998

Claro que una lectura obligada es la documentación oficial:
http://mx2.php.net/manual/es/reserve...iables.session

... claro... sí ya sabes todo esto y usas una versión vieja... entonces no dije nada .
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 14/05/2005 a las 00:49
  #4 (permalink)  
Antiguo 14/05/2005, 01:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 12 años, 9 meses
Puntos: 0
Sonrisa

gracias a los dos
  #5 (permalink)  
Antiguo 14/05/2005, 07:39
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Me gustaría saber como se podria ver esta página con las variables globales en off

http://www.forosdelweb.com/f18/variable-sesion-si-no-existe-297967/

ya que pasas la variable t por el url
  #6 (permalink)  
Antiguo 14/05/2005, 07:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 12 años, 9 meses
Puntos: 0
el caso es que si uso tu codigo:

<?php
session_start();
if(!isset($_session['usuario'])){
$usuario = "visitante";
session_register("usuario");}
?>


me vuelve a crear la sesión "visitante", borrandome la que acaba de crearse mediante login si vuelvo a pasar por la pagina donde se crea la variable de sesion si no existe

dicho de otra forma, lo que busco es:

al entrar en una pagina que mire si existe la sesion "usuario", y si no existe, crearla

Última edición por Marino; 14/05/2005 a las 08:10
  #7 (permalink)  
Antiguo 14/05/2005, 08:25
Avatar de jnegro  
Fecha de Ingreso: diciembre-2001
Ubicación: Salta
Mensajes: 238
Antigüedad: 16 años
Puntos: 0
combino el código con tu pregunta

Código PHP:
<?php
session_start
();
if([
B]!isset[/B]($_session['usuario'])){ /*al entrar en una pagina que mire si existe la sesion "usuario" (si "[B]no existe[/B]" usuario, entonces*/
$usuario "visitante";
session_register("usuario");}// crea la sesion usuario con el valor"visitante"
// si ya existe, el script no debería hacer nada.
/*PD si estas haciendo pruebas bajo windows puede ser que no te registre bién las sesiones y no las reconozca, me ha pasado muchas veces*/
?>
__________________
Julio
Clasificados Gratis
  #8 (permalink)  
Antiguo 14/05/2005, 13:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 12 años, 9 meses
Puntos: 0
gracias, lo he entendido muy bien, aunque sigue sin funcionarme, creo que será algo del servidor, gracias de nuevo gente.
  #9 (permalink)  
Antiguo 14/05/2005, 21:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por Marino
el caso es que si uso tu codigo:

<?php
session_start();
if(!isset($_session['usuario'])){
$usuario = "visitante";
session_register("usuario");}
?>
No, no, no y repito: no ... no revuelvas variables superglobales ($_SESSION) con funciones para crear variables globales (session_register). Hago la invitación a que leas cuidadosamente los enlaces que dejé con aterioridad (todos nos ahorramos tiempo).
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 02:36.