Tengo 2 archivos login.html y acceso.php
Login es (bien simple)
Código:
Cuando voy a acceso.php tengo lo siguiente<BODY> <FORM METHOD=POST ACTION="acceso.php"> Usuario: <INPUT TYPE="text" NAME="nombre"> <BR> Clave: <INPUT TYPE="password" NAME="clave"> <INPUT TYPE="submit"name="submit" value="Enviar"> </FORM> </BODY>
Código:
El codigo para la sesion lo aprendi de un post de este foro http://www.forosdelweb.com/f18/validar-user-password-287414/<?php $nombre = $_POST['nombre']; $clave = $_POST['clave']; $conexion = mysqli_connect( '127.0.0.1', 'root', 'password', 'base'); if ($conexion == false) { echo ('Error al conectar con la base'); exit(); } //La base se conecta bien, hice pruebas generando errores adrede para ver que efectivamente //este conectandose $consulta = "select * from usuarios where nombre='$nombre' and contrasena='$clave'"; //escribo la query $resultado = mysqli_query( $conexion, $consulta); if ($resultado == false) { echo ('Error al traer los datos'); mysqli_close($conexion); exit(); } if (mysql_num_rows($resultado)!=0){ session_start(); session_register("autentificado"); $autentificado = "SI"; header ("Location: siguiente.php"); }else { header("Location: pgerror.php"); } mysql_free_result($rs); mysql_close($conexion);
El tema es que siempre me va a la pagina de error aun cuando todo en teoria esta bien, hice las siguientes pruebas:
1) Borre todo y solo puse echo ("tu nombre es '$usuario' y tu clave es '$clave'"; para ver si estaba trayendo bien el $_POST y efectivamente lo trae bien
2) Puse una contrasena equivocada en la conexion mysql para verificar que efectivamente este cntrolando el error y asi lo hace.
3) Probe ponerle luego del ejemplo #1 la linea
while ($fila = mysqli_fetch_row($resultado)){
printf("(%u) %s - %s </br>", $fila[0], $fila[1], $fila[2]);
}
Me dio bien, ya que cuando el usuario y contrasena eran corectos me decia" tu nombre es fulano y tu contraena es contrasena" seguido de (0), nombre, contrasena .
Si el password era incorrecto el ejemplo 1) daba tu nombre es nombre y tu contrasena es contrasena" pero el while no se ejecutaba.
Bueno, gracias por leerme y les estare agradecido si me pueden indicar que hacer o algun enlace para leer.