Foros del Web » Programando para Internet » PHP »

Validacion de login y password

Estas en el tema de Validacion de login y password en el foro de PHP en Foros del Web. Buenas como estan? cotinuando con mis dudas, gracias a las personas que me ayudan, tengo una pagina donde estoy verificando un log y un pass ...
  #1 (permalink)  
Antiguo 03/09/2008, 10:31
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Validacion de login y password

Buenas como estan? cotinuando con mis dudas, gracias a las personas que me ayudan, tengo una pagina donde estoy verificando un log y un pass para poder entrar al index y lo hago con el siguiente codigo
Código PHP:
<?php
session_start
();

if (
$_POST['log']=='curso') { //comprobacion de login para poder comprobar seguido el password
    
if (md5($_POST['log'].$_POST['pass'])==='5ad295c646b145c91185eb7b8ad9d533'){
    
//comprobacion de login + password en md5
        
$_SESSION['username']=$_POST['login'];
        
header ("location:ver.php"); //valido=true entrar a menu
        
die;
        }
        else { 
$merror='Password errado'; }
        } 
        else { 
$merror='Login errado'; } //else error pass
?>
<!-- Formulario -->
<form action="" method="post" name="form1" id="form1" onSubmit="MM_validateForm('login','','R','password','','R');return document.MM_returnValue">
<table width="200" border="0">
<?php 
   
if (!empty($merror)){
               echo 
$merror;
            
?>

    <tr><td class=cap2>Login:&nbsp;</td>
    <td><label><input name="log" type="text" id="login"/></label></td></tr>
    <tr><td  class=cap2>Password:&nbsp;&nbsp;</td>
    <td><label><input name="pass" type="password" id="password" /></label></td></tr>
</table>
<br>
<label><input type="submit" name="Submit" value="Entrar" /></label>
</form>
<!-- Formulario -->
<?php
}
else {
    
session_write_close();
    }
?>
Hasta los momentos funciona de maravilla solo que el mensaje de error que mando a imprimir cuando hay falla en el login me aparece apenas entro a la pagina. Me gustaria es que apareciera solo cuando se envia el formulario y si esa primera validacion falla pues que si imprima el error junto al formulario nuevamete y de la misma manera para la validacion de password.

Si alguien tiene tiene alguna recomendacion para mejorar este script se lo agradeceria
  #2 (permalink)  
Antiguo 03/09/2008, 10:36
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Respuesta: Validacion de login y password

y si pones :
Código PHP:
   if (isset($merror)){ 
en vez de
Código PHP:
   if (!empty($merror)){ 
saludos.
  #3 (permalink)  
Antiguo 03/09/2008, 10:38
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Validacion de login y password

if (md5($_POST['log'].$_POST['pass'])
por q encriptas el log??? solo deberias encriptar el pass, ya que el log ya lo verificaste en el primer if
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #4 (permalink)  
Antiguo 03/09/2008, 10:56
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Validacion de login y password

Deberías borrar el contenido de $merror una vez impreso. Es decir:
Código PHP:
if(!empty($merror)){
         echo 
$merror;
         
$merror NULL;
/* ... */ 
Aparte de lo que ya te han dicho, también te has colado en la comparación del password poniendo 3 iguales en vez de 2.
__________________
Un Lannister siempre cumple sus promesas
  #5 (permalink)  
Antiguo 03/09/2008, 11:11
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Validacion de login y password

mort20, chwc, gracias por sus respuesta, probe haciendolo de ambas maneras y continua imprimiendo el error apenas entro a la pagina. Lobo, encripte el login tambien para agregar mayor seguridad, digamos que es una validacion adicional.

Continuo tratando de dar con la solucion
  #6 (permalink)  
Antiguo 03/09/2008, 11:16
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Validacion de login y password

el triple igual se utiliza para comparaciones de exactitud, pues muchas veces un doble igual compara valores, por ejemplo en las siguientes validaciones si pones un doble igual te darian verdaderas todos
if(04===4)
echo "04=4<br>";
if(4==='4')
echo "4='4'<br>";
if(04==='4')
echo "04='4'<br>";
if('04'===04)
echo "'04'=04<br>";
con un triple solo la primera es verdad pq compara a nivel cadena textual creo...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #7 (permalink)  
Antiguo 03/09/2008, 11:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Validacion de login y password

por cierto, alguien podria decirme como proteger las paginas para evitar que se pueda entrar si no hay una sesion aperturada? gracias
  #8 (permalink)  
Antiguo 03/09/2008, 11:31
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Validacion de login y password

Tengo el siguiente codigo en una pagina llamada check.php que se encargara de verificar que se tenga una sesion aperturada para poder ver el contenido de la pagina ver.php
Código PHP:
<?php
session_start
();
if(isset(
$_SESSION['username']) ){
          echo (
"<font size=3>Bienvenido&nbsp;<b>".$_SESSION['username']."</b></font><br><br><br><br>");
}else 
{echo 
"Para ingresar a la pagina es necesario estar logeado
<script>document: 'login.php';</script>\n"

session_destroy(); 

?>
El problema es que no me carga la pagina que mando desde el formulario de login aunque coloque el login y password bien ya que en la pagina ver.php lo primero que cargo es un include de la pagina check.php
  #9 (permalink)  
Antiguo 03/09/2008, 11:34
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Respuesta: Validacion de login y password

mira, yo te recomiendo que utilices:
Código PHP:
<?if (isset($_SESSION['username']{
echo 
"bienvenido".$_SESSION['username'];
}else{
?>
<!-- Formulario -->
<form action="" method="post" name="form1" id="form1" onSubmit="MM_validateForm('login','','R','password','','R');return document.MM_returnValue">
<table width="200" border="0">


    <tr><td class=cap2>Login:&nbsp;</td>
    <td><label><input name="log" type="text" id="login"/></label></td></tr>
    <tr><td  class=cap2>Password:&nbsp;&nbsp;</td>
    <td><label><input name="pass" type="password" id="password" /></label></td></tr>
</table>
<br>
<label><input type="submit" name="Submit" value="Entrar" /></label>
</form>
<!-- Formulario --> 
<?}?>
saludos
  #10 (permalink)  
Antiguo 03/09/2008, 11:45
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Validacion de login y password

chwc, lo que pasa es que tengo que hacer un archivo aparte para chequear las sesiones y mandarlo con include para todas las paginas. Asi fue la asignacion, por eso esta construyendo el archivo check.php
  #11 (permalink)  
Antiguo 03/09/2008, 12:10
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Validacion de login y password

Ya pude solucionar la proteccion de las paginas con el archivo check.php, el codigo me quedo de la siguiente manera
Código PHP:
<?php
 session_start
(); 
 if (!isset(
$_SESSION['login'])) {   
   echo 
'Para ingresar a la pagina es necesario estar logeado';
   
header("Location: login.php");   
   
session_destroy(); 
  } 
?>
Con esto verifico la existencia de la variable $_SESSION que se carga en el formulario de login solo cuando los datos son correctos.

Aun estoy sufriendo ver como resolver que el mensaje de error del formulario login, alguien que pueda ayudarme, gracias
  #12 (permalink)  
Antiguo 03/09/2008, 15:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
SOLUCION Validacion de login y password

Para los que quedaron con la duda, logre solucionar el problema con el mensaje de error , gracias a los que me ayudaron, aqui se los dejo
Código PHP:
<?php
session_start
();


if ((isset(
$_POST['log'])) && ($_POST['log']=='curso')) { //comprobacion de login para poder comprobar seguido el password
    
if (md5($_POST['log'].$_POST['pass'])==='5ad295c646b145c91185eb7b8ad9d533'){
    
//comprobacion de login + password en md5
        
$_SESSION['login']=$_POST['log'];
         
header ("Location: ver.php"); //valido=true entrar a menu
         
exit();
     } else { 
         
$merror='Password errado'
       }
} else { 
    
$merror='Login errado'


?>
<!-- Formulario -->
<form action="" method="post" name="form1" id="form1" onSubmit="MM_validateForm('login','','R','password','','R');return document.MM_returnValue">
<table width="200" border="0">
<?php 
if ((isset($_POST['log'])) && (!empty($merror))) { //verificar existencia de datos en log para imprimir error
             
echo $merror
}  
            
?>
    <tr><td class=cap2>Login:&nbsp;</td>
    <td><label><input name="log" type="text" id="log"/></label></td></tr>
    <tr><td  class=cap2>Password:&nbsp;&nbsp;</td>
    <td><label><input name="pass" type="password" id="pass" /></label></td></tr>
</table>
<br>
<label><input type="submit" name="Submit" value="Entrar" /></label>
</form>
<!-- Formulario -->
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 18:46.