Foros del Web » Programando para Internet » PHP »

Problemilla con sesiones

Estas en el tema de Problemilla con sesiones en el foro de PHP en Foros del Web. TENGUNA UNA BASE DE DATOS id nombre apellido login email password Necesito saber si el usuario y el password que ingreso en mi form son ...
  #1 (permalink)  
Antiguo 08/05/2012, 06:56
Avatar de xArchangellx  
Fecha de Ingreso: octubre-2008
Ubicación: Peru
Mensajes: 208
Antigüedad: 15 años, 6 meses
Puntos: 5
Exclamación Problemilla con sesiones

TENGUNA UNA BASE DE DATOS
id
nombre
apellido
login
email
password

Necesito saber si el usuario y el password que ingreso en mi form son correctos, validandolos desde una BD
Mi index
Código PHP:
<form action="sesiones.php" method="get">
<
table border="1">
<
tr>
<
td>Usuario</td>
<
td><input type="text" name="user"/></td></tr><tr>
<
td>Clave: </td>
<
td><input type="password" name="pass"/></td></tr>
<
tr>
<
td colspan="2" align="right">
<
input type="submit" value="enviar"/>
<
input type="reset" value="limpiar"/>
</
td></tr>
</
table>
</
form
Mi sesiones.php
Código PHP:
<?
include("conexion.php");
$usuario=$_GET['user'];
$clave=$_GET['pass'];
$consulta="select * from usuario where login=$usuario && password=$clave;";
$sql=mysql_query($consulta);

while(
$fila=mysql_fetch_array($sql)) //aqui tengo probelmas con mysql_fetch_array
{
if(
$fila['login']==$usuario && $fila['password']==$clave)
    {
//quiero agregar una sesion y que muestre que es un usuario existente
    
}
    else{
//que vuelva a ingresar los datos correctos
        
}
}
?>
La verdad lo he intentado de varias formas y nada
Aparte no se como saber si el usuario ya entro en sesion o no


no me pidan que averigue manejo de sesiones ya lo hice y no logro nada
  #2 (permalink)  
Antiguo 08/05/2012, 07:11
Avatar de deniz  
Fecha de Ingreso: junio-2008
Ubicación: Bahía Blanca
Mensajes: 41
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemilla con sesiones

Prueba a esto en la query:

Código PHP:
Ver original
  1. $consulta="select * from usuario where login='$usuario' AND password='$clave'";

porque asi como estaba seguramente de error de sintaxis. Le agregue comillas y sustitui el && por AND q es la sintaxis correcta en mysql.

Suerte!
  #3 (permalink)  
Antiguo 08/05/2012, 07:13
Avatar de xArchangellx  
Fecha de Ingreso: octubre-2008
Ubicación: Peru
Mensajes: 208
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Problemilla con sesiones

ya lo probe amigo y nada, y las sesiones
  #4 (permalink)  
Antiguo 08/05/2012, 07:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problemilla con sesiones

Todo es cuestión de trabajar con sesiones como haz dicho. Algo así, solo tomalo de ejemplo de lo que puedes hacer
Código PHP:
Ver original
  1. <?php
  2.  
  3. // eliminar sesión
  4. if(!empty($_GET['logout'])){
  5.     $_SESSION = array();
  6.  
  7.     if (ini_get("session.use_cookies")) {
  8.         $params = session_get_cookie_params();
  9.         setcookie(session_name(), '', time() - 42000,
  10.             $params["path"], $params["domain"],
  11.             $params["secure"], $params["httponly"]
  12.         );
  13.     }
  14.  
  15.     header('Location: ' . $_SERVER['PHP_SELF']);
  16.     exit;
  17. }
  18.  
  19. // mostrar quien se logueo
  20. if(!empty($_SESSION['login'])){
  21.     echo 'Ya el usuario ' . $_SESSION['login']['name'] . ' está logueado. ¿Deseas <a href="' . $_SERVER['PHP_SELF'] . '?logout=1">salir</a>?';
  22.     exit;
  23. }
  24.  
  25. // ingresar la información en una sesión
  26. if(!empty($_POST['usr']) && !empty($_POST['pwd']) && $_POST['usr'] == 'user' && $_POST['pwd'] == 'pass'){
  27.     // Aqui debe ir la inforamción que venga de la base de datos.
  28.     $_SESSION['login'] = array(
  29.         'usr' => 'user',
  30.         'name' => 'Alguien',
  31.         'etc' => 'etc'
  32.     );
  33.     header('Location: ' . $_SERVER['PHP_SELF']);
  34.     exit;
  35. }
  36. ?>
  37. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  38. Usuario: <input type="text" name="usr" />
  39. Contraseña: <input type="password" name="pwd" />
  40. <input type="submit" value="login" />
  41. </form>

Hay más cosas que deberías hacer, como por ejemplo verificar cada vez que el usuario visite la página si ha habido algún cambio en la base de datos, etc.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 08/05/2012, 07:15
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 7 meses
Puntos: 37
Respuesta: Problemilla con sesiones

Yo conozco tres tutoriales que te pueden servir, explican todo paso a paso y uno debe tener calma para leerlo. Te lo explicaría aquí pero saldría una guía casi tan larga y buena como las tres que te voy a recomendar.

Tienes que leer línea por línea detenidamente, para entender que es lo que se está haciendo, y al final te vas a dar cuenta que aparte de la creación de la base de datos, el código final, o sea lo básico no es tan complicado.

Tutorial maestros del web

Coloreate: Registro de usuarios

desarrollo web

Hay cosas que necesitan tanto experiencia, como paciencia y por más que te las hagamos acá, con el tiempo si necesitas modificarlas, no vas a poder, y te insisto en la parte de la EXPERIENCIA, que se gana con el TIEMPO, entonces es mejor que te vayas preparando, por que desde mi conocimiento, te puedo decir, llevo alrededor de 1 mes tratando de entender algo para aplicarlo a la administración de usuarios, y no he podido, OJO, una cosas con las sesiones en php, que tienen muchas limitaciones, como lo que dices de saber si el usuario entró en sesión o no, eso no se puede hacer con simples sesiones en php, eso ya requiere algunas técnicas avanzadas de GESTION DE USUARIOS, y te puedo decir que teniendo en cuenta que PHP, solo funciona del lado del servidor, vas a tener que aprender javascript, que es del lado del cliente, para poder obtener esa información más o menos acertada.

Primero estudias los tutoriales que te envié, y con el tiempo te vas a dar cuenta que no hay atajos para hacer que php reconozca todo lo que hace el cliente, y ahí es donde empezaras a buscar la solución con javascript, para finalmente darte cuenta, que es más fácil, si aprendes AJAX, y ten en cuenta otra cosa, AJAX no es un lenguaje de programación, es una técnica que nos permite por medio de Javascript hacer web dinámicas más fácil.

Con que estudies, practiques, digites tu mismo los códigos que doy en los tutoriales, y un poco de tiempo, te darás cuenta que lo que quieres, no se hace de la noche a la mañana, pero que con el esfuerzo suficiente se logra

Exitos
  #6 (permalink)  
Antiguo 08/05/2012, 07:17
Avatar de xArchangellx  
Fecha de Ingreso: octubre-2008
Ubicación: Peru
Mensajes: 208
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Problemilla con sesiones

Valla y teniendolo tan cerca bueno a leer se a dicho Gracias por todo
  #7 (permalink)  
Antiguo 08/05/2012, 07:17
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 7 meses
Puntos: 37
Respuesta: Problemilla con sesiones

Y por que estás usando GET, aunque no tiene mucha importancia a la larga si no se encripta la contraseña es mejor usar el método POST
  #8 (permalink)  
Antiguo 08/05/2012, 07:20
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 7 meses
Puntos: 37
Respuesta: Problemilla con sesiones

Es más, hay veces que aunque tengo mi sistema de registro básico, sigo leyendo esos tutoriales, para recordar conceptos y ver si encuentro una manera diferente de hacer las cosas ;)
  #9 (permalink)  
Antiguo 08/05/2012, 07:24
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Problemilla con sesiones

Yo lo haria distinto, para empezar el metodo del form lo haria como POST, y no por GET por seguridad, porque sino vas a pasar los datos del usuario y clave por GET y cualquiera podria ver lo que estas pasando, asique eso es lo primero que cambiaria porque no esta nada bueno, y al ser post haria lo siguiente desde php:

Código PHP:
Ver original
  1. <?
  2. include("conexion.php");
  3. $usuario=$_POST['user'];
  4. $clave=$_POST['pass'];
  5. $consulta="select * from usuario where login='" . $usuario . "' AND password='" . $clave . "'";
  6.  
  7. // Si cumple el mysql_num_rows > 0 quiere decir que encontro al menos un resultado
  8. if (mysql_num_rows($consulta) > 0) {
  9.       // Esto es a modo de ejemplo, despues fijate que necesitas hacer con la session
  10.       session_start();
  11.       $_SESSION['username'] = $usuario;
  12.       header("Location: index.php");
  13. } else {
  14.       header("Location: login.php?error=1");
  15. }
  16. ?>

Tambien te convendria trabajar la clave con algun tipo de encriptacion md5 o sha1 fijate.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #10 (permalink)  
Antiguo 08/05/2012, 07:33
Avatar de xArchangellx  
Fecha de Ingreso: octubre-2008
Ubicación: Peru
Mensajes: 208
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Problemilla con sesiones

Uso get por que estoy haciendo pruebas

Etiquetas: mysql, 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 07:05.