Foros del Web » Programando para Internet » PHP »

Login con sesiones y cookies php

Estas en el tema de Login con sesiones y cookies php en el foro de PHP en Foros del Web. Buenas a todos, estoy haciendo un login con cookies y sesiones en php, tengo todo hecho, incluido el registro, el problema es que no se ...
  #1 (permalink)  
Antiguo 21/06/2012, 11:51
Avatar de skamter  
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 1
Login con sesiones y cookies php

Buenas a todos, estoy haciendo un login con cookies y sesiones en php, tengo todo hecho, incluido el registro, el problema es que no se porque, en el archivo correcto.php en el que me confirma que estoy logeado me aperece el cf_id, el numero que identifica al usuario en vez del nombre de usuario en si.
A ver si me podeis echar una mano o darme alguna pista.
Os dejo los codigos.


index.php
Código PHP:
<?php
require ("funciones.php");

seguridadIndex();

$error 0;
$registrar=0;

if(isset(
$_POST['registrar']))
{    
    
$registrar 1;
    
$error registrarlogcok(limpiar($_POST['user']), $_POST['password']);
   
}
else if(isset(
$_POST['username']))
{
    
$recordarme=0;
    if(isset(
$_POST['recordarme']))$recordarme=1;
    
$error username(limpiar($_POST['user']), $_POST['password'],$recordarme);
    if(
$error>0)
    {
        
header("Location: correcto.php");
        exit();
    }
    
}
?>

     
      <br /><br />
      <br /><br /><br /><br /><br />
      <h1 class="entry-title">Formulario de Registro y username</h1>
      <br />
      <form name="username" method="post" action="">
          <div align="center"> 
          <table>
              <tr><td><label for="logcok">logcok: </label></td>   <td><input type="text" id="user" name="user" <?php if($registrar && $error>0) echo 'value="'.limpiar($_POST['user']).'"'?>/></td></tr>
              <tr><td> <label for="logcok"> Clave: </label></td>   <td><input type="passwordword" id="password" name="password" /></td></tr>
              <tr><td><label for="recordarme">Recordarme: </label></td><td><input type="checkbox" id="recordarme" name="recordarme" /></td></tr>
              <tr><td> </td>
                  <td align="right"><input type="submit" name="registrar" id="registrar" value="Registrar" /><input type="submit" name="username" id="username" value="username" /></td></tr>
          </table>
          
          <?php
            
switch ($error) {
                case -
1://username
                    
echo '<br/><strong>logcok o clave incorrecta</strong>';
                    break;
                case -
2://registro
                    
echo '<br/><strong>Error al registrarse. logcok ya existente.</strong>';
                    break;
                case -
3://registro
                    
echo '<br/><strong>El logcok y la contraseña deben tener como mínimo 4 carácteres.</strong>';
                    break;
                default:
                    if(
$registrar) echo '<br/><strong>Se ha registrado correctamente.</strong>';
                    break;
            }
?>

funciones.php

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

$salt "|#€7`¬23ads4ook12";
$saltCookie "|@#57e+ç´|@#d";



function 
seguridadIndex()
{
    
    if (isset(
$_SESSION['logcok']))
    {
        
        
header("Location: correcto.php");
        exit();
    }
    else if( isset(
$_COOKIE['identificado']))
    {     
        
$cookie limpiar($_COOKIE['identificado']);
        
$cf_id comprobarCookie($cookie);
        if(!
$cf_id)
        {
            
header("Location: correcto.php");
            exit();
        }
    }
}


function 
seguridad(){

    if (isset(
$_SESSION['logcok']))
    {
        return;
    }
    else if( isset(
$_COOKIE['identificado']))
    {     
        
$cookie limpiar($_COOKIE['identificado']);
        
$cf_id comprobarCookie($cookie);
        if(!
$cf_id)
        {
            echo 
"<script language='javascript'> document.location.href='index.php' </script>";
            exit();
        }
    }
    else
    {
        echo 
"<script language='javascript'> document.location.href='index.php' </script>";
        exit();
    }
       
}

function 
comprobarCookie($cookie)
{
    
$conexion=mysql_connect("1234","web","pass",false);
    
$bd mysql_select_db("dbdbdb",$conexion);
    
mysql_query("SET NAMES 'utf8'");
    
    
$sql "select cf_id from logcok where cookie='".mysql_escape_string($cookie)."' and validez<'".date("Y-m-d h:i:s")."'";
    
$result mysql_query($sql,$conexion);
    
    if(!
$result || mysql_affected_rows()<1) return false;
    else
    {
        
$row mysql_fetch_array($result);
        
$_SESSION['logcok']=$row['cf_id'];
        return 
$row['cf_id'];
    }
}


function 
registrarlogcok($user,$password)
{
    
$user mysql_escape_string($user);
    
$password mysql_escape_string($password);
    if(
strlen($user)<|| strlen($password)<4) return -3;
    
    global 
$salt;
    
$password sha1($salt.md5($password));
    
    
$conexion=mysql_connect("1234","web","pass",false);
    
$bd mysql_select_db("dbdbdb",$conexion);
    
mysql_query("SET NAMES 'utf8'");
    
    
    
$sql1 "select cf_id from logcok where UPPER(username)='".strtoupper($user)."'";
    
$result1 mysql_query($sql1,$conexion);
    if(
mysql_affected_rows()>0) return -2//user repetido
    
    
$sql "insert into logcok (username,password) values ('".$user."','".$password."')";
    
$result mysql_query($sql,$conexion);
    
    if(
$result) return 1//registro correcto
    
else return -2//error
}

function 
username ($user,$password,$recordarme)
{
    
$user mysql_escape_string($user);
    
$password mysql_escape_string($password);
    
    if(
strlen($user)<|| strlen($password)<4) return -3;
    
    global 
$salt;
    
$password sha1($salt.md5($password));
    
    
$conexion=mysql_connect("1234","web","pass",false);
    
$bd mysql_select_db("dbdbdb",$conexion);
    
mysql_query("SET NAMES 'utf8'");
    
    
$sql "select cf_id from logcok where UPPER(username)='".strtoupper($user)."' and password='".$password."'";
    
$result mysql_query($sql,$conexion);
    if(
mysql_affected_rows()<=|| !$result) return -1//user repetido
    
    
$row mysql_fetch_array($result);
    
$cf_id $row['cf_id'];
    
$_SESSION['logcok']=$cf_id;
    

    
    if(
$recordarme){
        global 
$saltCookie;

        
$cookie sha1($saltCookie.md5($cf_id.date("Y-d-m h:i:s")));

        
$sql2 "update logcok set cookie='".$cookie."',validez=DATE_ADD(now(),INTERVAL 6 MINUTE) where `cf_id`='".$cf_id."'";
        
$result2 mysql_query($sql2,$conexion);

        
setCookie("identificado",$cookie,time()+360,'/'); //cookie 6min
    
}
    
$_SESSION['logcok']=$cf_id;
    
    return 
true;
}

function 
destruirCookie($cookie)
{
    if(!isset(
$_SESSION['logcok'])) return;
    else 
$cf_id $_SESSION['logcok'];
    
    
$conexion=mysql_connect("1234","web","pass",false);
    
$bd mysql_select_db("dbdbdb",$conexion);
    
mysql_query("SET NAMES 'utf8'");
    
    
$sql "update logcok set validez=DATE_SUB(now(),INTERVAL 6 MINUTE) where `cf_id`='".$cf_id."'";
    
$result mysql_query($sql2,$conexion);
    if(
mysql_affected_rows()>0) return true
    else return 
false;
    
    
}

function 
limpiar($valor){
    
$valor strip_tags($valor);
    
$valor stripslashes($valor);
    
$valor htmlentities($valor);
    return 
$valor;
}

?>
  #2 (permalink)  
Antiguo 21/06/2012, 11:55
Avatar de skamter  
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Login con sesiones y cookies php

Y el ultimo

correcto.php

<?php
require ("funciones.php");
$error = 0;

seguridad();

if(isset($_POST['salir']))
{

destruirCookie($_COOKIE['identificado']);

$_SESSION = array();

$session_name = session_name();

unset($_SESSION['logcok']);

session_destroy();

if ( isset( $_COOKIE[ $session_name ] ) ) {
setcookie($session_name, '', time()-3600, '/');
}
if(isset($_COOKIE['identificado'])){
setcookie('identificado', '', time()-3600, '/');
}
header("Location: index.php");
exit();

}

?>


<body class="home blog layout-right">

<br /><br />
<br /><br /><br /><br /><br />
<h1 class="entry-title">Has sido logueado correctamente <?php echo '<span style=\"color:#009900;weight: bold\">'.$_SESSION['logcok']. '</span> ' ; //AQUI ES DONDE NO APARECE EL USERNAME SINO EL CF_ID
?>.</h1>
<br />
<form name="username" method="post" action="">
<div align="center">
<table>

<tr>
<td align="right"><input type="submit" name="salir" id="salir" value="Salir" /></td></tr>
</table>

<?php
if ($error) {
echo '<br/><strong>logcok o clave incorrecta</strong>';
}
?></div>
</form>

<br /><br />
<div id="p1"></div>



<br /><br />
<div id="atras"></div>
</body>
</html>
  #3 (permalink)  
Antiguo 21/06/2012, 17:06
Avatar de skamter  
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Login con sesiones y cookies php

Una ayuda por pequeña que fuera me vendria bien

Etiquetas: cookies, formulario, html, login, mysql, registro, sesiones, sql, 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 13:50.