Foros del Web » Programando para Internet » PHP »

Que no se vea formulario si estoy logueado

Estas en el tema de Que no se vea formulario si estoy logueado en el foro de PHP en Foros del Web. Hola. Tengo una pagina (index.html) con un formulario para ingresar, quiero saber si es posible NO mostrar el formulario de logueo si el usuario a ...
  #1 (permalink)  
Antiguo 21/10/2009, 09:55
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Que no se vea formulario si estoy logueado

Hola.

Tengo una pagina (index.html) con un formulario para ingresar, quiero saber si es posible NO mostrar el formulario de logueo si el usuario a ingresado exitosamente.

Aqui va mi codigo :
Index.html
Código PHP:
<?php
session_start
();
if (isset(
$_SESSION["k_username"]))
{
    echo 
"<b>".$_SESSION["k_username"]."</b>.";
    echo 
"<p><a href=\"logout.php\">Desconectar</a></p>";
    .
"";
}
else
{
    echo
"<center>"
    
"        <table border=\"10\" align=\"center\">"
    
"            <form action=\"/conexion/validar_usuario.php\" method=\"POST\">"
    
"            Usuario:<input type=\"text\" name=\"usuario\" size=\"20\" maxlength=\"20\"/>"
    
"            <br/>"
    
"            Password:<input type=\"password\" name=\"password\" size=\"20\" maxlength=\"20\"/>"
    
"            <br/>"
    
"            <input type=\"submit\" value=\"Ingresar\"/>"
    
"            </form>"
    
"        </table>"
    
"    </center>"
    
."";
}
?>
validar_usuario.php
Código PHP:
<?php
session_start
();

include(
"conex.phtml");
$link=Conectarse();

function 
quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}
if(isset(
$_POST["usuario"]) && !empty($_POST["usuario"]) && ($_POST["password"]) && !empty($_POST["password"]))
{
$usuario strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));   
    
$password $_POST["password"];
     
 
    
$result mysql_query('SELECT password, username FROM usuarios WHERE username=\''.$usuario.'\'');
    if(
$row mysql_fetch_array($result))
    {
        if(
$row["password"] == $password)
        {
 
            
$_SESSION["k_username"] = $row['username'];
           
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="../../index.html">Index</a></p>';
 }
        else
        {
            echo 
'Password incorrecto';
        }
    }
    else
    {
        echo 
'Usuario no existente en la base de datos';
    }
    
mysql_free_result($result);
}
else
{
    echo 
'Debe especificar un usuario y password';
}
mysql_close();
?>
conex.phtml
Código PHP:
<?php
function Conectarse()
{
    if (!(
$link=mysql_connect("localhost","root","")))
    {
        echo 
"Error conectando a la base de datos.";
        exit();
    }
    if (!
mysql_select_db("hlota",$link))
    {
        echo 
"Error seleccionando la base de datos.";
        exit();
    }
    return 
$link;
}
?>
Lo que pasa ahora es que despues de loguearme y volver al inde.html me sigue mostrando el formulario para loguearme nuevamente.

Como puedo hacer para que no lo muestre ?


Saludos.
  #2 (permalink)  
Antiguo 21/10/2009, 09:57
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Que no se vea formulario si estoy logueado

condicional si la session existe?...
  #3 (permalink)  
Antiguo 21/10/2009, 10:13
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Que no se vea formulario si estoy logueado

y en codigo como seria?
  #4 (permalink)  
Antiguo 21/10/2009, 10:22
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Que no se vea formulario si estoy logueado

if($_SESSION["k_username"] != ""){
muestra formulario
}else{
no muestres form
}
  #5 (permalink)  
Antiguo 26/10/2009, 09:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Que no se vea formulario si estoy logueado

Gracias, probe el codigo pero no me funciono como deberia.
En el index.html me muestra el formulario y el link "Desconectar" al mismo tiempo, luego me logueo exitosamente y me manda a validar_usuario.php y me dice que he ingresado exitosamente y muestra mis nombres y apellidos y luego me dirigo al index.html pero aqui nuevamente me muestra el formulario y "Desconectar".
Siendo que deberia de mostrarme solo "Desconectar".
Aqui dejo el codigo.

index.html
Código PHP:
<?php
    session_start
();

    echo 
"Bienvenido";

    if(
$_SESSION["username"] != "")
    {
        
?>
        <form method="POST" action="conexion/validar_usuario.php">
        Usuario<input type="text" name="usuario" size="20" maxlength="20">
        <br>
        Contraseña<input type="password" name="password" size="20" maxlength="20">
        <br>
        <input type="submit" name="accion" value="Ingresar">
        </form>
        <?php
    
}
    else
    {
        echo 
"Estas logueado como $_POST['nombres']";
        echo 
"\n";
        echo 
'Bienvenido'.$_SESSION['nombres'].;
        echo 
"$_POST['nombres']";?>
        <p><a href="conexion/logout.php">Desconectar</a></p>
        <?php
    
}
    
?>
validar_usuario.php
Código PHP:
<?php
session_start
();

include(
"conex.phtml");
$link=Conectarse();
 
function 
quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}     
 
if(isset(
$_POST["usuario"]) && !empty($_POST["usuario"]) && ($_POST["password"]) && !empty($_POST["password"]))
{
    
$usuario strtolower(htmlentities($_POST["usuario"], ENT_QUOTES));   
    
$password $_POST["password"];
     
 
    
$result mysql_query('SELECT password, username, nombres, apellidos1, apellidos2 FROM usuarios WHERE username=\''.$usuario.'\'');
    if(
$row mysql_fetch_array($result))
    {
        if(
$row["password"] == $password)
        {
 
            
$_SESSION["username"] = $row["username"];
            
$_SESSION["nombres"] = $row['nombres'];
            
$_SESSION["apellidos1"] = $row['apellidos1'];
            
$_SESSION["apellidos2"] = $row['apellidos2'];
           
            echo 
'Has sido logueado correctamente '.$_SESSION['nombres']. $_SESSION['apellidos1']. $_SESSION['apellidos2'].' <p>';
            echo 
'<a href="../../index.html">Index</a></p>';
            
        }
        else
        {
            echo 
'Password incorrecto';
        }
    }
    else
    {
        echo 
'Usuario no existente en la base de datos';
    }
    
mysql_free_result($result);
}
else
{
    echo 
'Debe especificar un usuario y password';
}
mysql_close();
?>
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 14:42.