Problemas de sessiones A session had already been started - ignoring session_start() in
Publicado por alexi (1 intervención) el 16/01/2017 06:11:11
Tengo problemas al iniciar sesión en un proyecto, que estoy desarrollando y solo pasa cuando incluyo el header en el formulario del login.ya verifique las rutas y estan bien.
El proyecto funciona correctamente sin usar el header pero me quedo sin los estilos y fuentes que trae
Cuando ingreso mis datos en el formulario me valida los datos es decir si escribo mal el correo me lanza un mensaje que debo escribir bien mis datos,eso lo tengo personalizado, ademas si tengo incluido el header me valida pero no me redirige al panel de administracion y me muestra el error: Notice: A session had already been started - ignoring session_start() in C:\wamp64\www\boostrap\includes\login_action.php on line 28 junto con este Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64\www\boostrap\includes\login_action.php:28) in C:\wamp64\www\boostrap\includes\login_action.php on line 34 luego de mostrarme el error vuelvo a enviar los datos y ya me redirige al panel de administracion.Esto no pasa cuando quito el header alguna ayuda idea??? de que hacer
header.php
login.php
login_action.php
salir.php
Repito solo pasa si incluyo el header y claramente debo modificar el login.php indicando session_start(); y un
require('includes/conexion.php'); pero me quedaria sin los estilos.
El proyecto funciona correctamente sin usar el header pero me quedo sin los estilos y fuentes que trae
Cuando ingreso mis datos en el formulario me valida los datos es decir si escribo mal el correo me lanza un mensaje que debo escribir bien mis datos,eso lo tengo personalizado, ademas si tengo incluido el header me valida pero no me redirige al panel de administracion y me muestra el error: Notice: A session had already been started - ignoring session_start() in C:\wamp64\www\boostrap\includes\login_action.php on line 28 junto con este Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64\www\boostrap\includes\login_action.php:28) in C:\wamp64\www\boostrap\includes\login_action.php on line 34 luego de mostrarme el error vuelvo a enviar los datos y ya me redirige al panel de administracion.Esto no pasa cuando quito el header alguna ayuda idea??? de que hacer
header.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start();
require('includes/conexion.php');
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>E.S.E Hospital Alcides Jiménez</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/icons/font/flaticon.css">
<link rel="stylesheet" href="css/icons/aweasone/css/font-awesome.min.css">
<link rel="icon" href="img/logo.ico">
</head>
<body>
login.php
1
2
3
4
5
6
<?php
require('recursos/header.php');
require('recursos/menu.php');
require('includes/login_action.php');
?>
login_action.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
//Funcion de inicio de sesion en la web
function login(){
if (isset($_POST['user']) && isset($_POST['password'])) {
//si existen las dos condiciones guardo los datos en variables
$user = htmlentities($_POST['user'],ENT_QUOTES);
$pass = htmlentities($_POST['password'],ENT_QUOTES);
$sha1_pass = sha1($pass);
//verifico si los campos estan vacios
if ($_POST['user'] === '') {
echo "<div class= 'alert'>Debe Ingresar el nombre de Usuario válido </div>";
}elseif ($_POST['password'] === '') {
echo "<div class='alert'>Debe ingresar la contraseña</div>";
}else{
$sql = "SELECT *FROM usuarios WHERE usuario ='$user' AND password = '$sha1_pass'";
$query = mysqli_query(conexion(),$sql);
$rows = mysqli_num_rows($query);
if ($rows>0) {
while ($i=mysqli_fetch_array($query)) {
session_start();
$_SESSION['login'] = 'si';
$_SESSION['id'] = $i['id'];
$_SESSION['email'] = $i['usuario'];
$_SESSION['tipo'] = $i['id_tipo'];
}
header('Location:admin.php');
}else{
echo "<div class='alert'> El usuario o contraseña son incorrectos.</div>";
}
}
}
}
salir.php
1
2
3
4
5
6
7
8
<?php
// Inicializar la sesión.
session_start();
// Finalmente, destruir la sesión.
session_destroy();
header('location: index.php');
?>
Repito solo pasa si incluyo el header y claramente debo modificar el login.php indicando session_start(); y un
require('includes/conexion.php'); pero me quedaria sin los estilos.
Valora esta pregunta
0