Pequeño problema de Login con Php y Ms access

Tengo una base de datos que se encuentra
En ... Www/Luis_php.MDB. La tabla se llama Usuarios con solo 3 campos, el de
ID, Username, Password y ya esta incluida en las herramientas
Administrativas System DNS. Ahora bien, tengo una pequeña duda sobre
Este código con el que me estoy trabajando dice que tengo errores en
Varias lineas. Este se llama Login_get.php.
Alguien que tenga conocimientos de Php con MS access.?
<?php
session_start();
$tbl_name="Usuarios";
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . Realpath("Luis_php.mdb").";";
$conn=odbc_connect($connstr,'','')
or die("connect error: ".odbc_error());
// get passed parameters
$username=trim(stripslashes($_POST['username']));
$password=trim(stripslashes($_POST['password']));
$sql="SELECT * FROM $tbl_Usuarios WHERE Username='$username' and Password='$password'";
// prepare and execute in 1 statement
$result=odbc_exec($conn,$stmt)
or die ("result error ".odbc_error().'-'.odbc_errormsg());
// if no result: no rows read
if (!odbc_fetch_row($result))
die("Wrong Username or Password");
// else: all is okay
else {
$_SESSION['username']=$username;
$_SESSION['password']=$password;
$message = 'Logueado exitosamente - Esta siendo redirigido';
echo '<link href="lib/style.css" type="text/css" rel="stylesheet" />
<body>
<div class="contenedor">
<a href="index.php">
<div class="logo">
</div>
</a>
<div class="barra">
<div class="message">'.$message.'</div>
</div>
</div>
</body>
<meta http-equiv="refresh" content="3;url=profile.php">';
}else{
$message = 'Clave incorrecta intente de nuevo porfavor';
echo '<link href="lib/style.css" type="text/css" rel="stylesheet" />
<body>
<div class="contenedor">
<a href="index.php">
<div class="logo">
</div>
</a>
<div class="barra">
<div class="message">'.$message.'</div>
</div>
</div>
</body>
<meta http-equiv="refresh" content="3;url=index.php">';
}
}else{
$message = 'Usuario No Existe! Intente de nuevo';
echo '<link href="lib/style.css" type="text/css" rel="stylesheet" />
<body>
<div class="contenedor">
<a href="index.php">
<div class="logo">
</div>
</a>
<div class="barra">
<div class="message">'.$message.'</div>
</div>
</div>
</body>
<meta http-equiv="refresh" content="2;url=index.php">';
}
}else{
$message = 'Debe Introducir una clave!';
echo '<link href="lib/style.css" type="text/css" rel="stylesheet" />
<body>
<div class="contenedor">
<a href="index.php">
<div class="logo">
</div>
</a>
<div class="barra">
<div class="message">'.$message.'</div>
</div>
</div>
</body>
<meta http-equiv="refresh" content="2;url=index.php">';
}
}else{
$message = 'Debe Introducir un usuario!';
echo '<link href="lib/style.css" type="text/css" rel="stylesheet" />
<body>
<div class="contenedor">
<a href="index.php">
<div class="logo">
</div>
</a>
<div class="barra">
<div class="message">'.$message.'</div>
</div>
</div>
</body>
<meta http-equiv="refresh" content="2;url=index.php">';
}
odbc_close($conn);
?>

1 respuesta

Respuesta
1

Entra a este tutorial - http://neosergio.net/2009/01/27/ejercicio-php/

Unicamente cambia el tipo de conexion de mysql por ODBC, en "funciones.php"

Yo lo hice asi y me funsiono, saludos y suerte

//conexion con base de datos
$conectar= odbc_connect ("dbscmbo", "", "");

//sentencia sql para consultar el nombre del usuario
$sql = "SELECT * FROM `Users` WHERE `user`='$usuario' AND `password`='$clave'";
//ejecucion de la sentencia anterior
$ejecutar_sql=odbc_exec($conectar,$sql);
//si existe inicia una sesion y guarda el nombre del usuario
if (odbc_fetch_object($ejecutar_sql)!=0){
//inicio de sesion
session_start();
//configurar un elemento usuario dentro del arreglo global $_SESSION
$_SESSION['usuario']=$usuario;
//retornar verdadero
return true;
} else {
//retornar falso
return false;
}
}

Tengo un inconveniente ahora. Sale este error con funciones.php

Acá esta la linea de códigos:
<?php
function conexiones($usuario, $clave) {
//conexión con base de datos
$conectar= odbc_connect ("usuarios", "", "");
if (!$conectar)
{exit("Connection Failed: " . $conectar);}
//sentencia sql para consultar el nombre del usuario
$sql = "SELECT * FROM 'usuarios' ";
//ejecución de la sentencia anterior
$ejecutar_sql= odbc_exec($conectar,$sql);
if (!$ejecutar_sql)
{exit("Error in SQL");}
//si existe inicia una sesión y guarda el nombre del usuario
if (odbc_fetch_row($ejecutar_sql)!=0){
//inicio de sesión
session_start();
//configurar un elemento usuario dentro del arreglo global $_SESSION
$_SESSION['usuario']=$usuario;
//retornar verdadero
return true;
} else {
//retornar falso
return false;
}
}
//función para verificar que dentro del arreglo global $_SESSION existe el nombre del usuario
function verificar_usuario(){
//continuar una sesión iniciada
session_start();
//comprobar la existencia del usuario
if ($_SESSION[usuario]){
return true;
}
}
?>

Gracias de ante mano.

Tienes un error en la consulta

Tu consulta

$sql = "SELECT * FROM 'usuarios' ";

Mi consulta

$sql = "SELECT * FROM `Users` WHERE `user`='$usuario' AND `password`='$clave'";

traducido

"Seleccionar * (Todo) de la tabla"users" donde (where)"

`user`(en base de datos)(es igual)='$usuario'(en el Formulario) (y)AND `password`(en base de datos)(es igual)='$clave'";(en el Formulario)

Si no pones esto no esta validando lo que escribe el usuario con la base de datos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas