Foros del Web » Programando para Internet » PHP »

Logeo con base de datos

Estas en el tema de Logeo con base de datos en el foro de PHP en Foros del Web. Hola Estoy haciendo un logeo y registro con base de datos, pero no consigo terminar el logeo.php ya que al buscar el usuario me da ...
  #1 (permalink)  
Antiguo 10/02/2010, 08:51
 
Fecha de Ingreso: mayo-2006
Mensajes: 154
Antigüedad: 17 años, 11 meses
Puntos: 0
Logeo con base de datos

Hola

Estoy haciendo un logeo y registro con base de datos, pero no consigo terminar el logeo.php ya que al buscar el usuario me da error.

Mi codigo index.php

Código PHP:
<?php
//--------------------------------------------------------------------------------------
session_start();
if (!isset(
$_POST['usuario']))
{
 
?>
<form action="index.php" method="POST" name="login">
  <table border="0" style="margin:185px;border:2px solid #cc9900;" >
  <tr ><td colspan="2" align="center"></td></tr>
  <tr>
  <td>Usuario: </td><td> <input type="text" name="usuario"  /></td>
  </tr>
  <tr><td>Contraseña: </td> <td><input type="password" name="contrasena" /></td></tr>
  <tr><td colspan="2"><input type="submit" value="Iniciar Sesion" /></td></tr>
 </form>
 <?php
}else{
     
//CONECTANDO A LA BASE DE DATOS
     
include('conec.php');
     
//-----------------------------

     //CONTAMOS EL NUMERO DE USUARIOS
    
$result mysql_query("select count(*) from usuarios");//CONSULTA A REALIZAR
    
$numero_de_usuarios=mysql_result($result,0);//Y MOSTRAMOS EL RESULTADO
    //--------------------------------------------------------------------------
    //CREO INTERRUPTOR PARA COMPROBAR QUE LOS DATOS INTRODUCIDOS SON CORRECTOS
    
$swCorrecto=false;
    for ( 
$i $i <= $numero_de_usuarios$i ++) {
        
        
$nombres mysql_query("select nombre from usuarios where nombre=".$_POST['usuario']."");
        
$claves mysql_query("select clave from usuarios where nombre=".$_POST['usuario']."");
        
$nom="s";
        
$cla="s";
        
$nom=mysql_result($nombres,0);
        
$cla=mysql_result($claves,0);
    if (
$nom==$_POST['usuario'] and $cla==$_POST['contrasena']){
        
$swCorrecto=true;
        break;
        }             
    }
//CERRAMOS EL FOR
        
if($swCorrecto==true){
        
$usuarioNombre=$_POST['usuario'];
        
//INICIAMOS SESION
         
$_SESSION[$nom] = true;
         echo 
$nom;
         echo 
$cla;
         
//header("Location: zonaprivada.php");
         
mysql_query("UPDATE usuarios SET total_accesos=total_accesos+1 where nombre='$usuarioNombre' LIMIT 1");
        }else{
          
header("Location: index2.php");
        
        }
 }
//CERRAMOS EL ELSE
?>

Me da error el mysql_result

Warning: mysql_result() expects parameter 1 to be resource, boolean given in

No entiendo porque es, la verdad esque el for para comprobar los datos lo hice segun mis ideas, asi que puede que no valga hacerlo asi no?

Saludos
  #2 (permalink)  
Antiguo 10/02/2010, 09:09
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Logeo con base de datos

Dios mío!!! Para qué haces un bucle? Para comprobar user y pass? no te es más fácil algo así?:
Código PHP:
Ver original
  1. $conexion=mysql_connect($dbserver,$dbuser,$dbpass);
  2. mysql_select_db($db,$conexion);
  3. $sql="SELECT * FROM usuarios WHERE  user='".$_POST['user']."' AND password='".$_POST['password']."'";
  4. $resultado=mysql_query($sql,$conexion) or die (mysql_error());
  5. $registrostotales=mysql_num_rows($resultado);
  6.  
  7. if($registrostotales==0) { echo "USER Y PASS INCORRECTOS"; }
  8.  
  9. else { echo "Ok, puedes continuar"; }
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 10/02/2010, 10:42
 
Fecha de Ingreso: mayo-2006
Mensajes: 154
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Logeo con base de datos

Muchas Gracias ChuloSoy

Se nota la calidad en el codigo simple pero eficaz, yo dando mil vueltas para hacerlo bien y la estaba liando.

Saludos y gracias de nuevo
  #4 (permalink)  
Antiguo 10/02/2010, 14:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 154
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Logeo con base de datos

Tengo otra duda, ya que nose si se podria hacer solo con php o cualquier otro lenguaje

Me gustaria poner un checked para en el que pongar recordar login, y si se selecciona guardalo en el ordenador del usuario.

Supongo que sea con Cookies,



Saludos
  #5 (permalink)  
Antiguo 10/02/2010, 14:33
 
Fecha de Ingreso: julio-2009
Ubicación: Córdoba capital
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Logeo con base de datos

Cita:
Iniciado por valdevespi Ver Mensaje
Tengo otra duda, ya que nose si se podria hacer solo con php o cualquier otro lenguaje

Me gustaria poner un checked para en el que pongar recordar login, y si se selecciona guardalo en el ordenador del usuario.

Supongo que sea con Cookies,



Saludos
Si, se puede hacer con cookies, pero depende que pongas en la cookie.

Yo suelo utilizar una cookie con un hash md5 generado a partir del nombre usuario, contraseña y fecha de ultimo ingreso, que quedan almacenados en una tabla de cookies en la base de datos, junto con la id de usuario, ultimo ingreso, ip, etc.

Asi cuando el usuario reingresa, busco el hash en la tabla de cookies y restauro la sesión.

Eso, claro, tambien sirve para saber cuando fue la ultima vez que ingresó, si fue hace 1 año o 2 minutos. Todo depende de que validez tenga tu cookie y si queres que siempre recuerde la sesión.


Espero te sea util mi aporte.


Saludos.

Ofesad.
  #6 (permalink)  
Antiguo 10/02/2010, 14:46
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Logeo con base de datos

En temas de código sería algo así:

Código PHP:
Ver original
  1. if(isset($_POST['recordar'])) {
  2.        setCookie("nombre","valor",duracion en segundos);
  3. }

http://docs.php.net/manual/en/function.setcookie.php
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #7 (permalink)  
Antiguo 11/02/2010, 12:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 154
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Logeo con base de datos

Muchas gracias,

Yo en paginas que tengo login, dejo activada la opcion y me guarda la cokie varios dias, entonces que tendria que poner 86400 segundos para un dia?

despues de usar tu codigo que es para crear la cokie la primera vez que le chekea

Si a la hora vuelvo a la pagina como pondria esos datos en el formulario?


Saludos

Etiquetas: logeo
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 10:49.