Foros del Web » Programando para Internet » PHP »

cambiar boton al iniciar sesion

Estas en el tema de cambiar boton al iniciar sesion en el foro de PHP en Foros del Web. Hola, resulta que tengo 1 sistema de registro en mi web, el problema es que quiero que cuando un usuaario inicie sesion el boton de ...
  #1 (permalink)  
Antiguo 20/02/2010, 13:28
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
cambiar boton al iniciar sesion

Hola, resulta que tengo 1 sistema de registro en mi web, el problema es que quiero que cuando un usuaario inicie sesion el boton de iniciar sesion cambie por cerrar sesion, y se elimine el boton de registrarse, espero que alguien me eche 1 mano, un saludo
  #2 (permalink)  
Antiguo 20/02/2010, 14:12
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: cambiar boton al iniciar sesion

Pues la verdad es muy simple, con el manejo de condicionales en la sesion los podras lograr:


Código PHP:
Ver original
  1. <?php
  2.     if (isset($_SESSION['usuario'])) {
  3.     echo '<a href="cerrar-sesion.php"> Cerrar Sesion</a>';
  4.     }else{
  5.     echo '<a href="iniciar-sesion.php">Iniciar Sesion</a>';
  6.   }
  7. ?>

Estudia boen el codigo y lo podras aplicar a lo que quieras
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #3 (permalink)  
Antiguo 20/02/2010, 14:13
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: cambiar boton al iniciar sesion

Cita:
Iniciado por Most Ver Mensaje
Hola, resulta que tengo 1 sistema de registro en mi web, el problema es que quiero que cuando un usuaario inicie sesion el boton de iniciar sesion cambie por cerrar sesion, y se elimine el boton de registrarse, espero que alguien me eche 1 mano, un saludo
Hola. Cuando el usuario inicie sesión creas una sesión nueva (comprobando antes si existen esos datos en la BD) y lo que haces es que en menu comrpeubas si la sesion esta creada te muestre el botón Cerrar Sesión y si no esta creada (si no esta logueado) lo que haces es que te aparece el botón de Loguearse.

Espero que me haya explicado bien, sino es asi dimelo y te lo aclaro.

Saludos!
  #4 (permalink)  
Antiguo 20/02/2010, 16:02
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

Cita:
Iniciado por xorcisa Ver Mensaje
Hola. Cuando el usuario inicie sesión creas una sesión nueva (comprobando antes si existen esos datos en la BD) y lo que haces es que en menu comrpeubas si la sesion esta creada te muestre el botón Cerrar Sesión y si no esta creada (si no esta logueado) lo que haces es que te aparece el botón de Loguearse.

Espero que me haya explicado bien, sino es asi dimelo y te lo aclaro.

Saludos!
Ya eso es lo k pensava pero el problema es que no se me ocurre ni como empezar

Gracias tonchii, podrias explicarme algo:

que hace esa accion?:

Código:
  if (isset($_SESSION['usuario'])) {
y como le ingreso esto al menu:


Código:
echo '<a href="cerrar-sesion.php"> Cerrar Sesion</a>';

          }else{

          echo '<a href="iniciar-sesion.php">Iniciar Sesion</a>';
  #5 (permalink)  
Antiguo 20/02/2010, 16:37
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: cambiar boton al iniciar sesion

Cita:
Iniciado por Most Ver Mensaje
Ya eso es lo k pensava pero el problema es que no se me ocurre ni como empezar

Gracias tonchii, podrias explicarme algo:

que hace esa accion?:

Código:
  if (isset($_SESSION['usuario'])) {
y como le ingreso esto al menu:


Código:
echo '<a href="cerrar-sesion.php"> Cerrar Sesion</a>';

          }else{

          echo '<a href="iniciar-sesion.php">Iniciar Sesion</a>';
if (isset($_SESSION['usuario'])) lo que hace es reconocer si hay una sesion creada (lo que ocurre cuando se inicia sesion :P), y te muestra las acciones para el usuario registrado. Si no sbes lo de las sesiones creo q deberias empezar mas atras en cuando php :S

Y como ingresar eso al menu no lo entendi que me preguntas, si eso es un menu, que cambia dependiendo si el usuario esta o no logeado.
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #6 (permalink)  
Antiguo 20/02/2010, 20:22
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

Mira te explico mejor ok, mi web tiene 3 archivos html y 3 css.css y 2 archivos php

css_registrarse.css - Estilo de Formulario de registro
css_iniciar.css - Estilo de Formulario de Inicio de sesion
css.css - Estilo de pagina de inicio

index.html - Pagina de inicio
iniciar.html - Formulario iniciar sesion
registrarse.html - Formulario registrarse

iniciando.php - Funcion que hace que inicie sesion
registrando.php - Funcion que hace que mande los datos del nuevo usuario a la Base de Datos

ok?

Entonces resulta que cuando inicio sesion arriba sige saliendo Iniciar Sesion - Registrarse, bueno eso es lo k kiero cambiar, la duda es si puedo cambiarlo con el sistema de registro que tengo, o necesito uno especial, y como hacerlo, creo que ahora si me explicado Bien.

arriba del todo de la pagina es donde quiero que cambie el menu cuando se inicia sesion osea que lo de registrarse se sustitulla por Mi Perfil y que iniciar sesion se sustitulla por Cerrar sesion:

http://todoenlaces.org/en-mantenimiento/index.html

Insertando la web no deseo hacer spam

Otra cosa, donde puedo encontrar un tutorial o manual donde muestre lo que dices de sesiones, todos los tipos y ejemplos y demas?

Un saludo.

Última edición por Most; 20/02/2010 a las 20:28
  #7 (permalink)  
Antiguo 20/02/2010, 20:26
Avatar de juanmacastillo  
Fecha de Ingreso: agosto-2008
Ubicación: Madrid
Mensajes: 12
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: cambiar boton al iniciar sesion

Saludos!. Es que si el formulario lo envías desde una página html, no va a cambiar ningún contenido. ¿Tu web no varía en algo cuando está el usuario "logeado". Por lo que cuentas, no varía en nada...
A lo mejor no lo he entendido bien.
  #8 (permalink)  
Antiguo 20/02/2010, 20:36
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

exacto, cuando inicia sesion un usuario o yo, no varia nada, todo sige igual, lo unico que esta en php es la funcion para iniciar sesion que manda la informacion para conectarse, y el registro que escribe en la DB
si cambio el index.html por index.php osea le cambio la extension, entonces si se podra escribir, o no?
por que toda la web esta en html los formularios todo...
  #9 (permalink)  
Antiguo 21/02/2010, 09:33
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

Aqui te dejo el codigo esntero de cuando se pulsa el boton de iniciar sesion, aver si me puedes ayudar mejor:


iniciando.php
Código PHP:
<?php
ob_start
();

include(
"config.php"); 

// connect to the mysql server 
$link mysql_connect($server$db_user$db_pass
or die (
"ERROR: MYSQL ".mysql_error()); 

// select the database
mysql_select_db($database
or die (
"ERROR: MYSQL ".mysql_error()); 

$match "select id from $table where username = '".$_POST['username']."' 
and password = '"
.$_POST['password']."';"

$qry mysql_query($match
or die (
"ERROR: MYSQL ".mysql_error()); 
$num_rows mysql_num_rows($qry); 

if (
$num_rows <= 0) { 
echo 
"El nombre de usuario o contraseña son incorrectos: <strong>".$_POST['username']."</strong><br>"
echo 
"<a href=iniciar.html>Volver Atras</a>"
exit;

} else { 

setcookie("loggedin""".$_POST['username'].""time()+(3600 24));
echo 
"Bienvenido: <strong>".$_POST['username']."</strong><br>"
echo 
"Continue a la web <a href=index.html>Pulsa aqui</a>."
}
ob_end_flush();
?>
  #10 (permalink)  
Antiguo 21/02/2010, 09:46
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: cambiar boton al iniciar sesion

Pues ahora mucho mas claro .

Mira lo que debes aplicar no es en el archivo con el que inicias sesion, sea como este esuqmeatizada tu web, agrega esto en la parte que quieras que cambie, siempre que el archivo este con la extension .php , jejeje.

Mira :
Código PHP:
Ver original
  1. if(isset($_COOKIE['loggedin'])) {
  2.  
  3. echo '<a href="cerrar-sesion.php">Cerrar Sesion</a>';
  4.  
  5. } else {
  6.  
  7. echo '<a href="iniciar-sesion.php">Iniciar Sesion</a>';
  8.  
  9. }

Es muy siemple, como te habia puesto antes, pero en vez de usar la session usas la cookie que creaste cuando se loguea para saber que existe. Y cuando hace el logout esa cookie debe destruirse, por lo tanto se vera el enlace para iniciar sesion, y asi puedes ir modificando y agregando para hcer paginas privadas, contenido oculto


Espero haberte ayudado
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #11 (permalink)  
Antiguo 21/02/2010, 09:50
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

Ok amigo, quen son los archivos esos de cerrar-sesion.php y iniciar-sesion.php?

edit: a si esos son los archivos que voy a crear ahora para cerrar sesion y iniciarla xD

ok entonces no lo tengo que agregar al iniciando.php, es que no e entendido muy bien lo que as dicho hay arriba

Cita:
Mira lo que debes aplicar no es en el archivo con el que inicias sesion, sea como este esuqmeatizada tu web, agrega esto en la parte que quieras que cambie, siempre que el archivo este con la extension .php , jejeje.

Última edición por Most; 21/02/2010 a las 09:58
  #12 (permalink)  
Antiguo 21/02/2010, 10:07
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: cambiar boton al iniciar sesion

Claro, debes poner el codigo que te pase en la parte de tu pagina que desees que aparezca, por ejemplo: tienes un menu lateral que muestra la informacion de cada usuario, bueno pon el codigo en todas las paginas, en la parte del menu lateral y se mostrara la informacion de iniciar sesion o cerrar sesion dependiendo si esta logueado.

Se entiende ???
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #13 (permalink)  
Antiguo 21/02/2010, 10:16
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

si ahora si, que lo meta en index.html en donde esta el menu, ok pues es que resulta que eso lo tengo de esta forma:

Código:
<ul id="nav">
      <li><a href="iniciar.html">Iniciar Sesion</a></li>
      <li id="current"><a href="index.html">Inicio</a></li>
      <li><a href="contacto.html">Contacto</a></li>
      <li><a href="registrarse.html">Registrarse</a></li>
 </ul>
Bien pues ese nav lleva a el css.css, y entonces lo e puesto, y se me an añadidon las 2 opciones y ahora me e dado cuanta que no se agragan los botones, si no que se agrega todo el codigo a la barra
  #14 (permalink)  
Antiguo 21/02/2010, 10:27
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: cambiar boton al iniciar sesion

Prueba poner <ul id="nav"> antes de poner el condicional if, y cuando lo cierres poner el </ul>. No tendria por que afectarte el css.
Seria:
Código PHP:
Ver original
  1. <ul id="nav">
  2. if(isset($_COOKIE['loggedin'])) {
  3. &#160;
  4. echo '<a href="cerrar-sesion.php">Cerrar Sesion</a>';
  5. &#160;
  6. } else {
  7. &#160;
  8. echo '<a href="iniciar-sesion.php">Iniciar Sesion</a>';
  9. &#160;
  10. }
  11. </ul>

Aclaracion: el archivo debes guardarlo como index.php sino no funcionara nada


Saludos
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #15 (permalink)  
Antiguo 21/02/2010, 10:44
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

ya lo e echo como tu as dicho lo dejo para que lo veas lo que sale en el menu:

el iniciar.html lo e renombrado a iniciar.php



el codigo se a quedado asi:

INICIAR.PHP
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>

<
html lang="en" xmlns="http://www.w3.org/1999/xhtml">

  <
head>

    <
title>TodoEnlaces Descarga Directas Peliculasseriesjuegossoftware y Mas</title>

    <
meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
    <
link href="css-iniciar.css" rel="stylesheet" type="text/css" />

    <
style type="text/css">
<!--
.
Estilo2 {font-family"Times New Roman"Timesserif}
-->
    </
style>
</
head>
<
script type="text/javascript">
function 
setFocus(aField) {
document.forms[0][aField].focus();
}

function 
isAnEmailAddress(aTextField) {

if (
document.forms[0][aTextField].value.length<5) {
return 
false;
}
else if (
document.forms[0][aTextField].value.indexOf("@") < 1) {
return 
false;
}
else if (
document.forms[0][aTextField].value.length -
 
document.forms[0][aTextField].value.indexOf("@") < 4) {
return 
false;
}
else { return 
true; }
}

function 
isEmpty(aTextField) {
if ((
document.forms[0][aTextField].value.length==0) ||
 (
document.forms[0][aTextField].value==null)) {
return 
true;
}
else { return 
false; }
}

function 
validate() {

if (
isEmpty("username")) {
    
alert("Please fill your username.");
    
setFocus("username");
    return 
false;
}
if (
isEmpty("password")) {
    
alert("Please fill in your password.");
    
setFocus("password");
    return 
false;
}
return 
true;

}
</script>
  <body>


    <!--                  navigation                  -->


<ul id="nav">
if(isset($_COOKIE['loggedin'])) {
 
echo '<a href="cerrar-sesion.php">Cerrar Sesion</a>';
 
} else {
 
echo '<a href="iniciar-sesion.php">Iniciar Sesion</a>';
 
}
</ul>



    <!--                  main title                  -->


    <h1 id="title">&nbsp;</h1>


    <!--                  beginning of actual page                  -->


  <div id="wrapper">


      <!--                  this is the small black bar                  -->


        <div id="top">
          <ul>
          <li id="software"><a href="software.php">Software</a></li>
          <li id="series"><a href="series.php">Series</a></li>
          <li id="juegos"><a href="juegos.php">Juegos</a></li>
          <li id="musica"><a href="musica.php">Musica</a></li>
          <li id="peliculas"><a href="peliculas.php">Peliculas</a></li>
        </ul>
      </div>


      <!--                  space for ads                  -->


      <div id="adspace">
        <center><script type="text/javascript"><!--
google_ad_client = "pub-6582205853720100";
/* 468x60, creado 19/02/10 */
google_ad_slot = "5617050262";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center>
      </div>


      <!--                  image links                  -->
      <div id="main">
        <form action="iniciando.php" method="post" onsubmit="return validate()">
          <center>
            <table width="200" border="1">
              <tr>
                <td><table width="353" border="0">
                  <tr>
                    <td width="112" height="30">Usuario: </td>
                    <td width="231"><input type="text" name="username" size="20" /></td>
                  </tr>
                  <tr>
                    <td height="32">Contrase&ntilde;a:</td>
                    <td><input type="password" name="password" size="20" /></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td><input name="submit" type="submit" value="Iniciar Sesion" /></td>
                    <td><a href="registrarse.html">
                      <input type="button" onclick=" location.href='registrarse.html' " value="Registrarse" name="boton" />
                    </a></td>
                  </tr>
                  <tr> </tr>
                </table></td>
              </tr>
            </table>
            </center>
          <p>
            <center>
              <script type="text/javascript"><!--
google_ad_client = "pub-6582205853720100";
/* 468x60, creado 19/02/10 */
google_ad_slot = "5617050262";
google_ad_width = 468;
google_ad_height = 60;
//-->
      </script>
              <script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
            </center>
          </p>
        </form>
      </div>
  </div>
  <!--                  footer                  -->


      <div id="footer"> La administracion de <a href="index.php">TodoEnlaces.org</a> no almacena contenido ilegal en su servidor</div>


</body>
</html> 
Te pongo todo en iniciar.php
  #16 (permalink)  
Antiguo 21/02/2010, 17:52
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: cambiar boton al iniciar sesion

Claro pero recuerda, debes decirle al navegador que debe interpretar ese codigo como php, tenes q abrir las etiuqetas <?php y cerrar con ?>, por que si no sera solo texto

Código PHP:
Ver original
  1. <!--                  navigation                  -->
  2.  
  3.  
  4. <ul id="nav">
  5. <?php
  6. if(isset($_COOKIE['loggedin'])) {
  7.  
  8. echo '<a href="cerrar-sesion.php">Cerrar Sesion</a>';
  9.  
  10. } else {
  11.  
  12. echo '<a href="iniciar-sesion.php">Iniciar Sesion</a>';
  13.  
  14. }
  15. ?>
  16. </ul>
  17.  
  18.  
  19.  
  20.     <!--                  main title                  -->
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #17 (permalink)  
Antiguo 21/02/2010, 18:09
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

tienes razon, lo cambio y te aviso...
  #18 (permalink)  
Antiguo 22/02/2010, 13:39
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años
Puntos: 6
Respuesta: cambiar boton al iniciar sesion

Ahora si va :)

Etiquetas: iniciar, botones
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 22:39.