login.php
Código:
<?php
session_start();
include 'pg.inc.php';
//Si se ha rellenado anteriormente el formulario, comprobar los datos
if(isset($_POST["nombre"])){
//Sentencia SQL a ejecutar
$sql = "SELECT * FROM usuarios WHERE nombre = ".$_POST["nombre"]." and contrasena = ".$_POST["pwd"];
echo $sql;
$resultado = ejecutar_SQL($conexion,$sql);
//Si hay filas, los datos de acceso eran correctos
if(numero_filas($resultado) != 0){
//Obtener los datos del usuario loggeado
$fila = fila($resultado,0);
//Almacenar su ID en los datos de la sesión
$_SESSION["usuario"] = $fila["id"];
//Dar la bienvenida
echo "<h3>Login OK</h3> Bienvenid@ ".$fila["desc"]."<br> Pulse <a href='prducto.php'>aqui;</a> para continuar.";
}
else{
echo "<h3>Login fallido</h3>";
}
}
//Si no se ha iniciado la sesión, mostrar un formulario de logon
if(!isset($_SESSION["usuario"])){
print '<form method="POST" action="login.php">
<table border="1">
<tr>
<td colspan="2"> Introduzca sus datos de acceso</td>
</tr>
<tr>
<td>Nombre: </td>
<td><input type="text" name="nombre" id="nombre"></td>
</tr>
<tr>
<td>Clave: :</td>
<td><input type="password" name="pwd" id="pwd"></td>
</tr>
</table>
<input type="submit" value="Enviar">
</form>';
}
?>
pg.inc.php
Código:
<?php
//Abrir una conexión con la Base de Datos
function conectar($host, $db, $usuario, $contraseña){
return pg_connect("host=$host dbname=$db user=$usuario password=$contraseña");
}
//Cerrar una conexión
function cerrar_conexion($conexion){
pg_close($conexion);
}
//Ejecutar una consulta SQL sobre una conexión
function ejecutar_SQL($conexion, $cadena){
return pg_exec($conexion, $cadena);
}
//Obtener el número de filas de un resultado
function numero_filas($resultado){
return pg_numrows($resultado);
}
//Obtiene la fila número $i de un resultado
//Para obtener un campo se usa la sintaxis $fila_obtenida["nombre-de-la-columna"]
function fila($resultado, $i){
return pg_fetch_array($resultado, $i);
}
//Nos conectamos a la bd
$conexion = conectar('localhost', 'SQL_injection', 'postgres', '***********');
?>
El error que me da cuando hago el submit en el formulario es el siguiente:
Código:
Warning: pg_exec(): Query failed: ERROR: column "faqef" does not exist LINE 1: SELECT * FROM usuarios WHERE nombre = faqef and contrasena =... ^ in C:\xampp\htdocs\sql_injection\pg.inc.php on line 14
Pero lo mejor de todo, es que hago un echo de la consulta SQL que construyo y es correcta! :S
Código:
SELECT * FROM usuarios WHERE nombre = faqef and contrasena = fewe
Aver si alguien tiene mas vista que yo. Muchas gracias