Me gusta ir aprendiendo con su lógica porque si me dedico a ver que va y no entiendo el porqué funciona... luego me puede pasar igual después de un tiempo. Me explico.
Tengo este código que lo que hace es que si la contraseña y el usuario son correctos, o están en la misma fila del a base de datos, entonces redirige la web a la página privada:
Código PHP:
<?php
include("conexion.php");
session_start();
if ($usuario && $contrasena)
{
$resultado = mysql_query("SELECT * FROM administrar WHERE usuario='$usuario' AND contrasena='$contrasena'");
if (mysql_num_rows($resultado)>0)
{
$usuario_valido = $usuario;
session_register("usuario_valido");
}
}
echo ("<form method='post' action='$PHP_SELF'>
Usuario</br><input type='text' name='usuario'></br>
Clave</br><input type='text' name='contrasena'></br></br>
<input type='submit' name='Submit' value='Entrar'>
</form>");
if (session_is_registered("usuario_valido"))
{
/* Redirigir navegador */
header("Location: editar.php");
/* Asegúrese de que el código que aparece a continuación no se ejecutará cuando redireccionamos.*/
exit;
}
?>
Bien, pues si quito el código del formulario y lo pongo al final, quedando así, como veis abajo, entonces sí que funciona.
Código PHP:
<?php
include("conexion.php");
session_start();
if ($usuario && $contrasena)
{
$resultado = mysql_query("SELECT * FROM administrar WHERE usuario='$usuario' AND contrasena='$contrasena'");
if (mysql_num_rows($resultado)>0)
{
$usuario_valido = $usuario;
session_register("usuario_valido");
}
}
if (session_is_registered("usuario_valido"))
{
/* Redirigir navegador */
header("Location: editar.php");
/* Asegúrese de que el código que aparece a continuación no se ejecutará cuando redireccionamos.*/
exit;
}
echo ("<form method='post' action='$PHP_SELF'>
Usuario</br><input type='text' name='usuario'></br>
Clave</br><input type='text' name='contrasena'></br></br>
<input type='submit' name='Submit' value='Entrar'>
</form>");
?>
Muchas gracias.