Hola.
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;
}
?>
Con ese código no va bien, cuando meto el usuario y contraseña correctos entonces me sale este error:
"Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\copisteria\login.php:20) in C:\AppServ\www\copisteria\login.php on line 25"
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>");
?>
¿Por qué ahora sí funciona y antes no? ¿Cuál es la expliación?
Muchas gracias.