Buenas tardes, recien hace unas pocas semanas que estoy aprendiendo php, me compre varios libros en Amazon y estuve leyendo el foro para aprender de ejemplos y hoy tengo un problema que no se resolver.
Tengo 2 archivos login.html y acceso.php
Login es (bien simple)
Código:
<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>
Cuando voy a acceso.php tengo lo siguiente
Código:
<?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 codigo para la sesion lo aprendi de un post de este foro http://www.forosdelweb.com/f18/validar-user-password-287414/
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.