Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

sesiones, autentificacion

Estas en el tema de sesiones, autentificacion en el foro de Mysql en Foros del Web. Hola Estoy probando un scrip que he encontrado que me permite acceder por sesiones... Todo me funciona bien pero claro solo me permite acceder con ...
  #1 (permalink)  
Antiguo 18/02/2006, 04:58
 
Fecha de Ingreso: enero-2006
Mensajes: 71
Antigüedad: 18 años, 3 meses
Puntos: 0
sesiones, autentificacion

Hola

Estoy probando un scrip que he encontrado que me permite acceder por sesiones...

Todo me funciona bien pero claro solo me permite acceder con un usuario contraseña..

Querría conectar esto a nuestra base de datos mysql para que cada usuario pueda entrar con sus claves..

La autentificación se hace así:

//vemos si el usuario y contraseña es váildo
if ($_POST["uid"]=="uid" && $_POST["pass"]=="pass"){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$_SESSION["uid"]= $_POST["uid"];
$_SESSION['pass']= $_POST["pass"];
$_SESSION["autentificado"]= "SI";

Ya accedo con la sesión... Pero necesitaría poner antes una consulta a la db que busque los distintos usuarios y pass y para no tener que escirbir ahí unos únicamente.

Disculpad, no soy precisamente muy experto y estoy probando con lo de las sesiones que me parece tremendamente interesante pero no se como seguir.

Gracias
  #2 (permalink)  
Antiguo 18/02/2006, 08:27
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
bueno mira no nos das mucha info no se como seran tu o tus tablas que usas para guardar informacion de tus usuarios, pero te dare una idea general y de ahi tu lo adaptas:
Código PHP:
//
//Conexion a la base de datos
$SQL_HOST='localhost';
$SQL_USER='usuario';
$SQL_PASS='pass';
$SQL_DB='base_datos';
$link mysql_connect($SQL_HOST$SQL_USER$SQL_PASS);
if (!
$link)
 die(
"No se pudo conectar, error: ".mysql_error() );
mysql_select_db($SQL_DB);
//Recuperas tus datos ingresados y los usas en tu consulta

$result mysql_query("SELECT id,pass FROM tabla WHERE id = '".$_POST['uid']."' AND pass='".$_POST['pass']."' " );
if (!
$result) {
   echo 
'No se pudo realizar la consulta ' mysql_error();
   exit;
}
//si te devuelve una respuesta quiere decir que si existe
if(mysql_num_rows($result)>0)
{
    echo 
'Bienvenido";
    $_SESSION["uid"]= $_POST["uid"];
    $_SESSION['
pass]= $_POST["pass"];
    
$_SESSION["autentificado"]= "SI";
}
else
    echo 
"no esta registrado";
 
session_start(); 
cya, esto es algo basico, a partir de ahi puedes ir mejorandolo y viendo que se adecua mas a tus requerimientos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 18/02/2006, 08:33
 
Fecha de Ingreso: enero-2006
Mensajes: 71
Antigüedad: 18 años, 3 meses
Puntos: 0
Gracias..

He estado trabajando en algo muy similar a lo que me propones adaptado a nuestra web pero no acaba de funcionar:

<?php
//autentificacion
$uid = $_POST["uid"];
$pass = $_POST["pass"];
$link = mysql_connect("localhost", "usuario", "pass");
mysql_select_db("db", $link);
$query = "select * from distribuidores where uid='$uid' and pass='$pass'";
$result = $bd->query($query) or die (mysql_error());
if ($bd->num_row($result)>0)
{
session_start();
$_SESSION["uid"]= '$uid';
$_SESSION['pass']='$pass';
$_SESSION["autentificado"]= "SI";
header("Location: inex2.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
?>

No entiendo, la logica parece correcta pero nada no muestra dato alguno. No se por donde está fallando ya que no muestra errores ni nada simplemente se queda en esta página y no redirige ni por autentificado ni por no autentificado...
  #4 (permalink)  
Antiguo 18/02/2006, 08:39
 
Fecha de Ingreso: enero-2006
Mensajes: 71
Antigüedad: 18 años, 3 meses
Puntos: 0
Perfecto, ya lo tengo...

Gracias
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:13.