Hola empeze ah crear un sistema de login para una pagina que quiero hacer pero cuando me logeo me deberia de actualizar la pagina con la funcion header Location pero me aparece el siguiente error
Warning: Cannot modify header information - headers already sent by y no se porque es que aparece este es el codigo que utilizo
index.php
Código PHP:
<?php
require_once './db/conexion.php';
require_once './funciones/admin.php';
if (!isset($_SESSION['Logeado'])){
?>
<form action="<?php $_SERVER['PHP_SELF'];?>" method="post">
<p>Login: Usuario
<input name="user" type="text" size="10" />
Password
<input type="password" name="pass" size="10" />
<input type="submit" name="adminlogin" value="Login" />
</p>
</form>
<?php
} else {
$datos = mysql_query("SELECT * FROM administradores WHERE id = '".$_SESSION['Logeado']."'") or die (mysql_error());
while($row = mysql_fetch_object($datos)){
$nombre = $row->usuario;
echo "Hola $nombre ";
echo '<a href="logout.php">Cerrar Ssion</a>';
}
}
if (isset($_POST['adminlogin'])){
login($user, $pass);
}
//Si el Login Falla
if (isset($MensajeError)) {
echo "<p><span class=\"warning\">$MensajeError</span></p>\n";
}
?>
conexion.php
Código PHP:
<?php
session_start();
// Propiedades de la Base de Datos
$dbhost = 'xxxx';
$dbuser = 'xxxxx';
$dbpass = 'xxxx';
$dbname = 'xxxx';
// Nos Conectamos a la Base de datos
$conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ("No puedo conectarme a la base de datos porque: " . mysql_error());
mysql_select_db ($dbname) or die ("No puedo seleccionar la base de datos '$dbname' porque: " . mysql_error());
?>
admin.php
Código PHP:
<?php
function login($user, $pass){
//sacar los datos del formulario
$user = trim($_POST['user']);
$pass = trim($_POST['pass']);
//quitamos tags de las variables
$user = strip_tags($user);
$pass = strip_tags($pass);
// Sacar variables seguras para evitar inyecciones SQL
$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);
//Encriptamos el Password con MD5
$pass = md5($pass);
// Revisamos si la convinacion del usuario y el password convinan en la base de datos
$sql = "SELECT usuario FROM administradores WHERE usuario = '$user' AND password = '$pass'";
$result = mysql_query($sql) or die('Query Fallo. ' . mysql_error());
//Revisamos si hubo una convinacion
if (mysql_num_rows($result) == 1) {
// el usuario y password coincidieron iniciar la sesion
//Obtenemos el id del usuario por la base de datos
$obtenerid = mysql_query("SELECT * FROM administradores WHERE usuario = '$user'");
while($row = mysql_fetch_object($obtenerid)){
//Asignar el Id a el Valor
$id = $row->id;
//Creamos la Sesion
$_SESSION['Logeado'] = $id;
// recargar la pagina
header('Location: '.$_SERVER['HTTP_REFERER']);
exit;
}
} else {
//Sacar el error de la funcion
global $MensajeError;
// Definir el Mensaje
$MensajeError = '<p>Lo Sentimos, El Usuario y Password no coinciden</p>';
}
}
?>
Ojala puedan ayudarme