Foros del Web » Programando para Internet » PHP »

Problema de logeo en php

Estas en el tema de Problema de logeo en php en el foro de PHP en Foros del Web. Que tal amigos tengo un problema feito arme este sistema de logeo en el index.php que lo que primero hace es fijar si existe una ...
  #1 (permalink)  
Antiguo 04/05/2011, 11:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 62
Antigüedad: 13 años, 7 meses
Puntos: 2
Exclamación Problema de logeo en php

Que tal amigos tengo un problema feito arme este sistema de logeo en el index.php que lo que primero hace es fijar si existe una cookie de usuario y pass y si no existe perdirle al usuario que se logee pero cuando ingreso el usuario y password y le doy a enter tipo se actualiza la pagina y no pasa nada y le pongo cualquier cosa en los input "asdasdas" y enter y entra como el usuario que habia puesto antes de que se actualize es decir que para que me logee tengo que ingresar una vez los datos correctos y luego cualquier cosa para que me lleve al perfil del usuario.

Espero atte una respuesta y muchas gracias a todos

Código PHP:
<?php

include("bbdd/conectar.php");

$familia $_COOKIE['usuarioco'];

$contra $_COOKIE['passco'];



$consulta3 "SELECT * FROM familias WHERE  admin = '$familia' AND pass = '$contra';";

$select3 mysql_query($consulta3$conectar); //hacemos la consulta

$contar3 mysql_num_rows($select3); //contamos la cantidad de usuarios y buscamos nuestro user

if($contar3) { // si ta correcto logea

?>

<html>

        <table border="1" align="center">

                                        <tr>

                                        <td>Usted esta en el hogar:</td>

                                        

                                        

                    

                                        </tr>



<?php







//$consultar_ape = "SELECT * from familias WHERE apellidos = '$usuario' OR admin = '$usuario';"; //seleccionar la tabla usuarios

$consultar_ape "SELECT * from familias WHERE  admin = '$familia';";

$hacerConsulta mysql_query($consultar_ape,$conectar);    //el quuery que hace la consulta

$contar_user mysql_num_rows($hacerConsulta);           



for(
$contador=0;$contador $contar_user;$contador++){

                

                
$apellidos=mysql_result($hacerConsulta,$contador"apellidos");

            

                echo(
"<tr><td>".$apellidos."</td>");

                



}



?>

<html>

</table>

    <table border="1">

                                        <tr>

                                        <td>Titulo</td>

                                        <td>Desarrollo</td>

                                        

                    

                                        </tr>

<?php

$consultar_noti 
"SELECT * from noticias WHERE familia = '$familia';"//seleccionar la tabla usuarios

$hacerConsulta2mysql_query($consultar_noti,$conectar);    //el quuery que hace la consulta

$contar_user2 mysql_num_rows($hacerConsulta2);           



for(
$contador2=0;$contador2 $contar_user2;$contador2++){

                
$titulo=mysql_result($hacerConsulta2,$contador2"titulo");

                
$desarrollo=mysql_result($hacerConsulta2,$contador2"desarrollo");

                

                echo(
"<tr><td>".$titulo."</td>");

                echo(
"<td>".$desarrollo."</td></tr>");





}





?>



</table>

<a href="agregarn.php" > Agregar una noticia familiar</a>
<br>
<a href="saludos.php" >Cerrar Sesion </a>
</html>

<?php


}else{

?>

<html>

<head>

<!--<title>Logearse</title> -->

</head>



<body>

Logeo para administradores de Hogares:

<form name="logear" method="post" action="?">



Usuario :<input type="text" name="user">



<br>



Contrase&ntilde;a: <input type="password" name="passwordd">



<input type="submit" value="Entrar" name="sendadsasd">





</form>



</body>

<!--

<body>

Logeo para usuarios:

<form name="logearusr" method="post" action="indexusr.php">



Usuario :<input type="text" name="usr">



<br>



Contrase&ntilde;a: <input type="password" name="passusr" >

<?php

//echo("<input type='submit' value='Entrar' name='sended' onclick='existe()'>");


?>



</form>



</body>

<a href="registrar.html" >Registrar un Nuevo Familiar o Amigo</a> &nbsp <a href="registrarfamilias.html" >Registrar una nueva familia</a>

-->

</html>



<?php


$usuario 
trim($_POST['user']);

$passpe $_POST['passwordd'];


  
setcookie("usuarioco"$usuariotime()+3600);  

  
setcookie("passco"$passpetime()+3600);  


}









$consulta5 "SELECT * FROM familias WHERE admin = '$usuario' AND pass = '$passpe';";    //primero controla que el usuarioDEAPELLIDOS y contra este bien y si es FALSE hace que controle como segunda alternativa El usuario Admin y su PASS

$select5 mysql_query($consulta5$conectar); //hacemos la consulta

$contar5 mysql_num_rows($select5); //contamos la cantidad de usuarios y buscamos nuestro user



if($contar5){

    echo(
"Usted esta logeado como ".$familia);

}else{

    echo(
"Ingreso mal los datos");

}




?>
  #2 (permalink)  
Antiguo 04/05/2011, 11:31
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Problema de logeo en php

Por lo que se, las cookies hay que mandarlas antes que cualquier otra cosa por lo que debe ir antes del script.

Te dejo un enlace donde lo explican: [URL="http://www.ignside.net/man/php/cookies.php"]http://www.ignside.net/man/php/cookies.php[/URL]
  #3 (permalink)  
Antiguo 04/05/2011, 11:36
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 2 meses
Puntos: 511
Respuesta: Problema de logeo en php

Porque no intentas hacer tu sistema do logeo con variables de sesion, ya que las cookies si no las destruyes al momento de finalizas session se almacenan en tu sitio y es por eso que puede entrar el siguiente usuario con los datos del anterior, ademas de que debes de saber bien su funcionamiento.

checa este link, es un ejemplo de sistema de logueo en php
http://www.forosdelweb.com/f18/aport...aporte-561417/


Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 04/05/2011, 11:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 62
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Problema de logeo en php

Cita:
Iniciado por alexg88 Ver Mensaje
Por lo que se, las cookies hay que mandarlas antes que cualquier otra cosa por lo que debe ir antes del script.

Te dejo un enlace donde lo explican: [URL="http://www.ignside.net/man/php/cookies.php"]http://www.ignside.net/man/php/cookies.php[/URL]
puse arriba de todo como dijiste pero el tema ahi es que no me funciona el if osea no me tira lo que tiene que tirar al ser usuario existente
  #5 (permalink)  
Antiguo 04/05/2011, 11:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 62
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Problema de logeo en php

Cita:
Iniciado por skiper0125 Ver Mensaje
Porque no intentas hacer tu sistema do logeo con variables de sesion, ya que las cookies si no las destruyes al momento de finalizas session se almacenan en tu sitio y es por eso que puede entrar el siguiente usuario con los datos del anterior, ademas de que debes de saber bien su funcionamiento.

checa este link, es un ejemplo de sistema de logueo en php
[URL="http://www.forosdelweb.com/f18/aporte-sistema-registro-reconocimiento-usuario-aporte-561417/"]http://www.forosdelweb.com/f18/aporte-sistema-registro-reconocimiento-usuario-aporte-561417/[/URL]


Saludos
pero tiene un link de cerrar sesion despues donde borra las cokies si es a eso que te refieres?
  #6 (permalink)  
Antiguo 04/05/2011, 13:22
 
Fecha de Ingreso: mayo-2011
Mensajes: 62
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Problema de logeo en php

Cita:
Iniciado por chalnet Ver Mensaje
pero tiene un link de cerrar sesion despues donde borra las cokies si es a eso que te refieres?
ademas nose por que me tengoq logear 2 veces osea el primer logeo es verdadero y segundo pongo cualquier cosa y entra con el usuario que ingrese en el primer logeo
  #7 (permalink)  
Antiguo 04/05/2011, 17:17
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Problema de logeo en php

Creo que veo tu problema. La parte

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. $usuario = trim($_POST['user']);
  5.  
  6. $passpe = $_POST['passwordd'];
  7.  
  8.  
  9.   setcookie("usuarioco", $usuario, time()+3600);  
  10.  
  11.   setcookie("passco", $passpe, time()+3600);  
  12.  
  13.  
  14. }
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. $consulta5 = "SELECT * FROM familias WHERE admin = '$usuario' AND pass = '$passpe';";    //primero controla que el usuarioDEAPELLIDOS y contra este bien y si es FALSE hace que controle como segunda alternativa El usuario Admin y su PASS
  25.  
  26. $select5 = mysql_query($consulta5, $conectar); //hacemos la consulta
  27.  
  28. $contar5 = mysql_num_rows($select5); //contamos la cantidad de usuarios y buscamos nuestro user
  29.  
  30.  
  31.  
  32. if($contar5){
  33.  
  34.     echo("Usted esta logeado como ".$familia);
  35.  
  36. }else{
  37.  
  38.     echo("Ingreso mal los datos");
  39.  
  40. }
  41.  
  42.  
  43.  
  44.  
  45. ?>

debería estar en otra página php aparte que se encargase de validar los datos envíados y redirigiera a la página de la que procedes.

Por eso te funciona como lo hace, primero tienes que hacer login pero las cookies se crean cuando se refresca la página y te sigue apareciendo el formulario de login porque las cookies todavía no existen como tal.

También puedes hacer que las cookies se creen en el momento como te indican en la página que te pase antes, poniendo:
Código PHP:
Ver original
  1. <?php
  2.  
  3. if(!isset($COOKIE_SET))  //  $cookie_set es nuestra variable de control  
  4.                          //  de flujo
  5. {
  6.    setcookie("saludo", "hola");      
  7.    header("Location: $PHP_SELF?COOKIE_SET=1");  // ponemos cookie_set  
  8.    exit;                                        // como true
  9.    }                     // podriamos haber redireccionado a otra pagina
  10.    
  11.   ?>
  12.  
  13. Y de esta manera debería funcionar poniendolo en la propia página.
  #8 (permalink)  
Antiguo 04/05/2011, 17:38
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años, 7 meses
Puntos: 34
Respuesta: Problema de logeo en php

Mira quizás el problema se sitúe mas en que ya tienes una cookie guardada y todavía no ha expirado. Prueba a borrar las cookies desde el navegador y volver a ejecutar la aplicación. En caso de que te tire algun error por favor dinos cual és para poder ayudarte de una mejor manera.

Un saludo !
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #9 (permalink)  
Antiguo 04/05/2011, 22:28
 
Fecha de Ingreso: mayo-2011
Ubicación: Bogota
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Problema de logeo en php

Mira este es el codigo que yo uso para loguo no se si te sirva y uso variables de sesion que son mas faciles de usar y lo unico que se hace es hacer un session.destroy(); en el logout y ya todo listo sin varibles de sesion XD


Código PHP:
$rst_ing=mysql_query("SELECT * FROM usuario WHERE usuario='"$_POST["usuario"] ."'&& clave='"$_POST["clave"] ."';",$con);
$num_ing=mysql_num_rows($rst_ing);
if (
$num_ing>0)
{
    
$fila=mysql_fetch_array($rst_ing);
    
$_SESSION["tipo"]=$fila[2];
    
$rst_admbd=mysql_query("SELECT * FROM  administradorbd WHERE Documentoadmbd='"$fila[3]."';",$con);
    
$filaadmbd=mysql_fetch_array($rst_admbd);
    
$_SESSION["persona"]=$filaadmbd[0];
    
$_SESSION["nombre"]=$filaadmbd[1] . " " $filaadmbd[2];
    
$_SESSION["tipo"]="1";
    
header("Location:Admon_bd.php");
}
else
{
echo 
"No inicio sesion correctamente";


Última edición por Trashdres; 04/05/2011 a las 22:32 Razón: u

Etiquetas: logeo, sistema, veces
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 21:22.