Foros del Web » Programando para Internet » PHP »

problemas con if / else

Estas en el tema de problemas con if / else en el foro de PHP en Foros del Web. Hola amigos.... tengo un problemilla uqe me estoy volviendo loco en como hacerlo: tengo un script el cual un usuario se logea y si va ...
  #1 (permalink)  
Antiguo 23/11/2009, 05:18
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
problemas con if / else

Hola amigos....

tengo un problemilla uqe me estoy volviendo loco en como hacerlo:
tengo un script el cual un usuario se logea y si va navegando por mi web, hay un div el cual uestra el tipico " Hola: Pepe !!", pero el problema es que quiero que cuando haya session de usuario muestre el "Hola:Pepe", pero cuando no haya sessuin de usuario muestre un enlace que vaya a la pagina de login. He hecho asi, pero lo unico que he conseguido es que si no hay usuario registrado muestre el enlace a la pagina de login.php, pero lo que no consigo es que no aparezca el "Hola:"
<div>
<?php
if (!isset($_SESSION["cuenta_paginas"])){
$_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
}else{
$_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
}
?>

<?php
echo "Hola !! " . $_SESSION["cuenta_paginas"];
if (!isset($_SESSION["cuenta_paginas"])){
echo "<a href=http://www.jdwake.es/login.php>Conectar usuario</a>";}
?>
<a href="<?php echo $logoutAction ?>">Desconectar</a>
</div>

Es decir, si hay session de usuario, aparece:

Hola!! Pepe Desconectar session

si NO hay session aparece:

Hola !!Conectar usuario Desconectar session ( aquí es donde yo quiero que solo aparezca el "Conectar usuario"
  #2 (permalink)  
Antiguo 23/11/2009, 05:37
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: problemas con if / else

Creo que esta es la forma en como debes de hacer la operacion.


Código PHP:
Ver original
  1. <div>
  2. <?php
  3.  
  4. if (!isset($_SESSION["cuenta_paginas"])){
  5. $_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
  6. echo "<a href=http://www.jdwake.es/login.php>Conectar usuario</a>";
  7.  
  8. }else{
  9.  
  10. echo "Hola !! " . $_SESSION["cuenta_paginas"];
  11. echo "<a href=\"$logoutAction\">Desconectar</a>";
  12.  
  13.  
  14. }
  15. ?>
  16.  
  17.  
  18.  
  19. </div>
  #3 (permalink)  
Antiguo 23/11/2009, 06:53
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: problemas con if / else

Alternativamente, podes cerrar las comillas y usar puntos de union:

Cita:
echo "<a href='".$logoutAction."'>Desconectar</a>";
Pero en ese caso necesitas agregar una comilla simple antes de cerrar la doble... y luego de volver a abrirla.

Pero creo que el problema es otro:

Cita:
<?php
if (!isset($_SESSION["cuenta_paginas"])){
$_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
}else{
$_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
}
?>
Ese else esta de mas. En todo caso, podes ahorrarte los condicionales y hacer la simple adjudicacion asi:
Cita:
$_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
Mismo, podes no usar esa nueva variables y usar solamente: MM_Username

Luego viene esto:

Cita:
<?php
echo "Hola !! " . $_SESSION["cuenta_paginas"];
if (!isset($_SESSION["cuenta_paginas"])){
echo "<a href=http://www.jdwake.es/login.php>Conectar usuario</a>";}
?>
Es imposible que cuenta_paginas no este seteado!


El problema es de logica. Si no hay sesion, entonces :

$_SESSION['MM_Username']; esta vacio y no puede igualarse a la otra variable. Por lo tanto, al imprimirlo aparece ... nada.
  #4 (permalink)  
Antiguo 23/11/2009, 09:49
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: problemas con if / else

Muchas gracias ...

soys geniales... solucionado
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 12:50.