Foros del Web » Programando para Internet » PHP »

registrate y logeate

Estas en el tema de registrate y logeate en el foro de PHP en Foros del Web. Como puedo hacer para que al logearse en mi página ya no salga ese "registrate" o "login" He intentado con esta sintaxis pero no me ...
  #1 (permalink)  
Antiguo 02/10/2012, 00:59
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
registrate y logeate

Como puedo hacer para que al logearse en mi página ya no salga ese
"registrate" o "login"

He intentado con esta sintaxis pero no me funciona.

Código PHP:
Ver original
  1. <?php
  2. if(isset($_SESSION['usuario'])) {
  3.     contenido de mi página
  4. } else {
  5.     registrate -  login
  6. }
  7. ?>

espero me puedan ayudar, muchas gracias.
  #2 (permalink)  
Antiguo 02/10/2012, 01:02
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: registrate y logeate

Si eso no sirve significa que $_SESSION['usuario'] no existe

hazle un echo a ver que sale. Si nos ale nada ya sabes el problema.
  #3 (permalink)  
Antiguo 02/10/2012, 01:17
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por memoadian Ver Mensaje
Si eso no sirve significa que $_SESSION['usuario'] no existe

hazle un echo a ver que sale. Si nos ale nada ya sabes el problema.
que raro aver te dejo la sintaxis ok porfavor.

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3.  
  4. $usuario = $_POST['usuario'];
  5. $pass = $_POST['contrasena'];
  6.  
  7. $conexion = mysql_connect($host,$user,$pw)or die("problemas al conectar bd");
  8. mysql_select_db($bd,$conexion)or die("problema al seleccionar bd");
  9.  
  10. $resultado = mysql_query("SELECT * FROM registro WHERE usuario='$usuario' AND contrasena='$pass'",$conexion);
  11.  
  12. while($fila=mysql_fetch_array($resultado)){
  13. $userdb = $fila['usuario'];
  14. $passdb = $fila['contrasena'];
  15.  
  16. if($usuario == $userdb && $pass == $passdb){
  17. $_SESSION['usuario'] = $usuario;
  18. $_SESSION['contrasena'] = $pass;
  19.  
  20. echo'
  21. <html>
  22.     <head>
  23.         <meta http-equiv="REFRESH" content="0;url=index.php">
  24.     </head>
  25. </html>
  26. ';
  27. } else {echo "error";}
  28.  
  29. }
  30.  
  31. ?>

y en index esta así

Código PHP:
Ver original
  1. <?php
  2.     if(!isset($_SESSION['usuario'])){
  3.     ?>
  4.     <div id="panel">       
  5.         <span>¡Hola, Invitado! (<a href="login?action=login">Iniciar sesión</a> — <a href="register.php?action=register">Registrate</a>)</span>                                                                                            
  6.     </div> 
  7.     <?php
  8.     } else {echo "hola"; }
  9.     ?>

espero me puedas ayudar, gracias
  #4 (permalink)  
Antiguo 02/10/2012, 05:01
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 12
Respuesta: registrate y logeate

Yo veo que el codigo esta bien...Proba start_session(); tal ves te falta iniciarla en el index.php
  #5 (permalink)  
Antiguo 02/10/2012, 10:23
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por pablo_exeg Ver Mensaje
Yo veo que el codigo esta bien...Proba start_session(); tal ves te falta iniciarla en el index.php
Ya puse session_start(); en el index pero no funciona y me manda este error
en el index:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at *:\****\www\****\index.php:10) in C:\AppServ\www\forosweb\index.php on line 18

no sé que pasa..
  #6 (permalink)  
Antiguo 02/10/2012, 10:28
 
Fecha de Ingreso: abril-2009
Mensajes: 356
Antigüedad: 15 años
Puntos: 7
Respuesta: registrate y logeate

Session start tiene que ser lo primero que salga en la pagina, lo primero de todo así que no se puede poner en cualquier sitio

Tiene que ir antes de la cabecera, por eso te ese error

Si isset(session_start) no te funciona prueba con if($session[nombre] != "")

En vez de decir si esta declarada la variable comprueba si esta tiene contenido
__________________
Cannabis; todo sobre el mundo de la marihuana
  #7 (permalink)  
Antiguo 02/10/2012, 11:08
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por dvd181191 Ver Mensaje
Session start tiene que ser lo primero que salga en la pagina, lo primero de todo así que no se puede poner en cualquier sitio

Tiene que ir antes de la cabecera, por eso te ese error

Si isset(session_start) no te funciona prueba con if($session[nombre] != "")

En vez de decir si esta declarada la variable comprueba si esta tiene contenido
no me funciona ya intenté en diferente orden y igual lo mismo tambien..
:(
  #8 (permalink)  
Antiguo 02/10/2012, 11:35
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: registrate y logeate

haz un var_dump después de crear la session a ver que sale.

Código PHP:
Ver original
  1. var_dump($_SESSION)
  #9 (permalink)  
Antiguo 02/10/2012, 12:07
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por memoadian Ver Mensaje
haz un var_dump después de crear la session a ver que sale.

Código PHP:
Ver original
  1. var_dump($_SESSION)
En el procesarlogin.php despues de
Código PHP:
Ver original
  1. if($usuario == $userdb && $pass == $passdb){
  2.     $_SESSION['usuario'] = $usuario;
  3.     $_SESSION['contrasena'] = $pass;
  4. }

puse lo que me dijiste y queda asi
Código PHP:
Ver original
  1. if($usuario == $userdb && $pass == $passdb){
  2.     $_SESSION['usuario'] = $usuario;
  3.     $_SESSION['contrasena'] = $pass;
  4.     var_dump($_SESSION);
  5. }

y al logearse me sale esto :

array(2) { ["usuario"]=> string(2) "as" ["contrasena"]=> string(2) "as" }
  #10 (permalink)  
Antiguo 02/10/2012, 12:23
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: registrate y logeate

esta curioso, prueba en vez de usar

Código PHP:
Ver original
  1. if(isset($_SESSION['usuario'])){

a

Código PHP:
Ver original
  1. if(!empty($_SESSION['usuario'])){

por cierto se supone que esta persistiendo la session ¿verdad?

prueba eso y vemos la persistencia de la session.
  #11 (permalink)  
Antiguo 02/10/2012, 12:36
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por memoadian Ver Mensaje
esta curioso, prueba en vez de usar

Código PHP:
Ver original
  1. if(isset($_SESSION['usuario'])){

a

Código PHP:
Ver original
  1. if(!empty($_SESSION['usuario'])){

por cierto se supone que esta persistiendo la session ¿verdad?

prueba eso y vemos la persistencia de la session.
que raro que no salga es lo mismo, sigue saliendo el "registrate" y el "login".
no se que pasa...
  #12 (permalink)  
Antiguo 02/10/2012, 12:42
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: registrate y logeate

Si esta raro:

Por favor un último intento XD

en el index pon así:

Código PHP:
Ver original
  1. <?php
  2. //antes de la comprobación de usuario
  3. var_dum($_SESSION);
  4.         if(!isset($_SESSION['usuario'])){
  5.         ?>
  6.         <div id="panel">      
  7.             <span>¡Hola, Invitado! (<a href="login?action=login">Iniciar sesión</a> — <a href="register.php?action=register">Registrate</a>)</span>                                                                                            
  8.         </div>
  9.         <?php
  10.         } else {echo "hola"; }
  11. ?>
  #13 (permalink)  
Antiguo 02/10/2012, 12:47
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por memoadian Ver Mensaje
Si esta raro:

Por favor un último intento XD

en el index pon así:

Código PHP:
Ver original
  1. <?php
  2. //antes de la comprobación de usuario
  3. var_dum($_SESSION);
  4.         if(!isset($_SESSION['usuario'])){
  5.         ?>
  6.         <div id="panel">      
  7.             <span>¡Hola, Invitado! (<a href="login?action=login">Iniciar sesión</a> — <a href="register.php?action=register">Registrate</a>)</span>                                                                                            
  8.         </div>
  9.         <?php
  10.         } else {echo "hola"; }
  11. ?>
en la pagina principal osea en el index sin logearme ni nada..
sale un texto que dice "NULL"..
y bueno probe con logearme pero nada sigue saliendo eso
  #14 (permalink)  
Antiguo 02/10/2012, 12:56
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: registrate y logeate

Bueno ya releí todos los mensajes, creo que noe stas usando session_start()

este debe ir al crear las sessiones por rjemplo en tu archivo conexión:

nada de espacios en blanco antes de session_start()
Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3.      
  4. $usuario = $_POST['usuario'];
  5. $pass = $_POST['contrasena'];
  6.      
  7. $conexion = mysql_connect($host,$user,$pw)or die("problemas al conectar bd");
  8. mysql_select_db($bd,$conexion)or die("problema al seleccionar bd");
  9.      
  10. $resultado = mysql_query("SELECT * FROM registro WHERE usuario='$usuario' AND contrasena='$pass'",$conexion);
  11.      
  12. while($fila=mysql_fetch_array($resultado)){
  13. $userdb = $fila['usuario'];
  14. $passdb = $fila['contrasena'];
  15.      
  16. if($usuario == $userdb && $pass == $passdb){
  17. $_SESSION['usuario'] = $usuario;
  18. $_SESSION['contrasena'] = $pass;
  19.      
  20. echo'
  21.    <html>
  22.        <head>
  23.            <meta http-equiv="REFRESH" content="0;url=index.php">
  24.        </head>
  25.    </html>
  26. ';
  27. } else {echo "error";}
  28.  
  29. }
  30.      
  31. ?>

y en index

arriba de cualquier cosa
Código PHP:
Ver original
  1. <?php
  2. ?>
  3. //todo lo demás
  #15 (permalink)  
Antiguo 02/10/2012, 13:26
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por memoadian Ver Mensaje
Bueno ya releí todos los mensajes, creo que noe stas usando session_start()

este debe ir al crear las sessiones por rjemplo en tu archivo conexión:

nada de espacios en blanco antes de session_start()
Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3.      
  4. $usuario = $_POST['usuario'];
  5. $pass = $_POST['contrasena'];
  6.      
  7. $conexion = mysql_connect($host,$user,$pw)or die("problemas al conectar bd");
  8. mysql_select_db($bd,$conexion)or die("problema al seleccionar bd");
  9.      
  10. $resultado = mysql_query("SELECT * FROM registro WHERE usuario='$usuario' AND contrasena='$pass'",$conexion);
  11.      
  12. while($fila=mysql_fetch_array($resultado)){
  13. $userdb = $fila['usuario'];
  14. $passdb = $fila['contrasena'];
  15.      
  16. if($usuario == $userdb && $pass == $passdb){
  17. $_SESSION['usuario'] = $usuario;
  18. $_SESSION['contrasena'] = $pass;
  19.      
  20. echo'
  21.    <html>
  22.        <head>
  23.            <meta http-equiv="REFRESH" content="0;url=index.php">
  24.        </head>
  25.    </html>
  26. ';
  27. } else {echo "error";}
  28.  
  29. }
  30.      
  31. ?>

y en index

arriba de cualquier cosa
Código PHP:
Ver original
  1. <?php
  2. ?>
  3. //todo lo demás
al parecer ya me logea.. y sale el mensaje en caso este logeado que puse..
pero sale junto a esto:

array(2) { ["usuario"]=> &string(2) "as" ["contrasena"]=> &string(2) "as" } hola a todos

en el index

para deslogearse tengo que crear un archivo y poner todo el index, pero sin los codigos php cierto ????????

gracias.
  #16 (permalink)  
Antiguo 02/10/2012, 14:18
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: registrate y logeate

Pues claro que te sale el array de session, por que tienes el vardump ahí, ya quitalo.

para el logout puedes vaciar las sessiones y session_destroy() según recuerdo
  #17 (permalink)  
Antiguo 02/10/2012, 15:02
 
Fecha de Ingreso: agosto-2012
Ubicación: Perú
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: registrate y logeate

Cita:
Iniciado por memoadian Ver Mensaje
Pues claro que te sale el array de session, por que tienes el vardump ahí, ya quitalo.

para el logout puedes vaciar las sessiones y session_destroy() según recuerdo
Me podrías decir como uso ese session_destoy(); porfavor porfavor :P
Para asi no hacer otro thread, yo no he usado eso por eso no sé..
espero me comprendas, gracias.
  #18 (permalink)  
Antiguo 02/10/2012, 15:28
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: registrate y logeate

te diría pero mejor te dejo el manual.

http://php.net/manual/es/function.session-destroy.php

Etiquetas: registrate, usuarios
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 06:49.