Foros del Web » Programando para Internet » PHP »

Sistema de Login.

Estas en el tema de Sistema de Login. en el foro de PHP en Foros del Web. Hola a todos, Tengo una duda y me gustaría que los entendidos me la aclarárais... Estoy intentando hacer un sistema de "login". La idea es ...
  #1 (permalink)  
Antiguo 10/02/2011, 16:35
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Sistema de Login.

Hola a todos,

Tengo una duda y me gustaría que los entendidos me la aclarárais...

Estoy intentando hacer un sistema de "login".

La idea es tener un formulario con un campo "usuario" y otro "clave" en la página "index.php".

Una vez que se pulsa enviar, tengo pensado enviarlo a la misma página, es decir, "index.php"., en ella, debe realizarse una conexión al servidor, a la base de datos, y posteriormente realizar una consulta.

Si la consulta es correcta, debería mandarnos a la página "index2.php". Y he aquí una de las preguntas. ¿Cómo redirijo a "index2.php" si es correcto?

Y la segunda pregunta es, me gustaría que si el usuario y/o contraseña son incorrectos mostrase un error como "alert", ¿eso se puede hacer con PHP? ¿o tiene que ser obligatoriamente con JavaScript?

Mi intención es hacer algo así:

- Recogida del formulario.
- Conexión al servidor.
- Conexión a la base de datos.
- Consulta.
- Comprobación de la consulta (Creo que podría ser con un IF, y en el ELSE insertar que se muestre la alerta).

Gracias por vuestra ayuda de antemano, y un saludo.
  #2 (permalink)  
Antiguo 10/02/2011, 16:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sistema de Login.

- usa header() para la redirección, lee el manual...
http://php.net/header

- alert() no existe en php, recuerda que son lenguajes distintos!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/02/2011, 16:47
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Sistema de Login.

Gracias compañero por tu aportación.

Suponía que "Alert" no existía en "PHP", pero igual había alguna otra forma, sin llegar a tener que utilizar "JavaScript". Ya que no la hay, usaré "JavaScript" para el "Alert".

Con respecto a la función "Header", no la conocía. He estado leyendo, y no entiendo muy bien en qué consiste. ¿Podrías explicarmelo? Si no eres tú, puede ser otra persona la que me lo explique, claro...

Un saludo, y muchas gracias.
  #4 (permalink)  
Antiguo 10/02/2011, 17:02
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Sistema de Login.

Código PHP:
Ver original
  1. <?php
  2. header('Location: mipagina.php'); // Pagina a donde se va a redirigir, en tu casi index2.php
  3. ?>
  #5 (permalink)  
Antiguo 10/02/2011, 17:06
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Sistema de Login.

Cita:
Iniciado por jonasanx Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. header('Location: mipagina.php'); // Pagina a donde se va a redirigir, en tu casi index2.php
  3. ?>
Gracias por la aportación. He copiado el código, y lo único que hace es redirigir automáticamente. No espera a que introduzca datos ni nada por el estilo...

Saludos.
  #6 (permalink)  
Antiguo 10/02/2011, 17:09
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Sistema de Login.

¡Ah! haberlo dicho antes, entonces tienes que condicionar y luego redirigir.

if( haz algo ){

redirigir

}else{
error.
}
  #7 (permalink)  
Antiguo 10/02/2011, 17:37
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Sistema de Login.

Claro compañero, a eso me refiero. Yo más o menos, he dicho los pasos, pero no sé cómo decir que es correcto el "login". Es decir, si con la consulta, compruebo que existe el usuario y que la contraseña es la que le corresponde, ¿cómo le digo al IF que entre?

Saludos.
  #8 (permalink)  
Antiguo 10/02/2011, 17:41
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Sistema de Login.

Cita:
Iniciado por ayukkonen Ver Mensaje
Claro compañero, a eso me refiero. Yo más o menos, he dicho los pasos, pero no sé cómo decir que es correcto el "login". Es decir, si con la consulta, compruebo que existe el usuario y que la contraseña es la que le corresponde, ¿cómo le digo al IF que entre?

Saludos.
Consultás a tu db, y con mysql_num_rows() revisas si por lo menos hay uno que coincide, si coincide pasa el if.

Ej:

Código PHP:
$query mysql_query("select * form usuarios where user = '$user' and pass= '$pass'") or die(mysql_error());

if(
mysql_num_rows($query) > 0) {
 
//es usuario
} else {
//no es usuario

no lo probé ni nada, pero sería algo similar.
  #9 (permalink)  
Antiguo 10/02/2011, 17:47
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Sistema de Login.

walterdevel, buena idea.

Voy a probarlo y os comento qué tal me fué.

Muchas gracias por la aportación.
  #10 (permalink)  
Antiguo 10/02/2011, 18:01
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Sistema de Login.

Escribí un script sencillo y trate de comentarlo lo mejor posible, sinceramente espero que le sirva.

Nota: TODO significa 'por hacer', en otras palabras, que se debería completar el script con lo comentado.

Código PHP:
Ver original
  1. <?php
  2. // Verifica que el formulario se ha recibido, de lo contrario muestra el formulario.
  3. if(isset($_POST['enviar']))
  4. {
  5.     // Inicia variables para su posterior utilización.
  6.     $usuario = $_POST['usuario'];
  7.     $contrasena = $_POST['contrasena'];
  8.    
  9.     // Esta variable se carga si se recibe un error
  10.     $error = '';
  11.    
  12.     if(empty($usuario))
  13.         $error .= '<p>Debe escribir un usuario</p>';
  14.        
  15.     if(empty($contrasena))
  16.         $error .= '<p>Debe ingresar una contrase&ntilde;a</p>';
  17.    
  18.     // Si no hay errores se valida al usuario
  19.     if(empty($error)){
  20.        
  21.         // TODO: Sustituir por validacion a través de base de datos.      
  22.        
  23.         if($usuario == 'demo' && $contrasena == 'demo'){
  24.                        
  25.             // TODO: Registrar sesion (http://php.net/manual/es/features.sessions.php)     
  26.            
  27.             // Redirige al usuario
  28.             header('Location: index2.php');
  29.         }
  30.         // Si no se reconoce al usuario, imprime error.
  31.         else{
  32.             $error = '<p>El usuario no existe o la contrase&ntilde;a es incorrecta</p>';
  33.         }
  34.     }
  35. }
  36.  
  37. ?>
  38.  
  39. <?php
  40. // Si existen errores se imprimen
  41. if(!empty($error)){
  42.     print '<div class="error">'.$error.'</div>';
  43. }
  44. ?>
  45.  
  46. <!-- Formulario para identificar al usuario -->
  47. <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
  48.  
  49. <label>Usuario</label>
  50.     <input name="usuario" type="text">
  51. <label>Contrase&ntilde;a</label>
  52.     <input name="contrasena" type="password">
  53.    
  54. <input name="enviar" value="Enviar" type="submit">
  55. </form>
  #11 (permalink)  
Antiguo 10/02/2011, 18:20
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Sistema de Login.

jonasanx, tiene muy buena pinta.

Estoy ahora trabajando en la base de datos. Yo creo que para mañana ya podré probar las dos formas. En cuánto lo haga os lo comentaré.

Muchas gracias por todo a ambos.

Un saludo.

Etiquetas: login, sitemap
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 06:49.