Lamento haber escrito todo esto sin antes haber revisado bien el código.
Favor borrar el tema
Bueno muchachos hace tiempo me ayudaron a resolver un problema que tenia en sesiones y me funcionaba bien, hasta que cambiamos el servidor:
el mensaje de error que me surge es este:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /opt/lampp/htdocs/sigecs/sistema/index.php:8)
Los códigos que uso son:
index.php
Código PHP:
<?php
session_start(); // el problema esta aquí pero me sirve para saber si una sesion se esta dando y poder controlarlo abajo
if( !isset( $_SESSION[ 'verloguin' ] ) || $_SESSION[ 'verloguin' ] )
{
echo '<center>';
echo "<form name='form' id='third' class='niceform' action='control.php' method='POST'>";
if ($_GET["errorusuario"]=="si"){
echo "<h2>Datos incorrectos</h2>";
}
if ($_GET["errorusuario_1"]=="si"){
echo "<h2>Este Usuario ya esta<br> SESIONADO</h2>";
}
else{
echo "<h2>Introduce tu clave de acceso</h2>";
}
echo ('<label><strong><span class="blue">*</span> Usuario : </strong></label>');
echo ('<input type="Text" name="usuario" size="15" maxlength="50">');
echo ('<label><strong><span class="blue">*</span> Password : </strong></label>');
echo ('<input type="password" name="contrasena" size="12" maxlength="50"> <br><br>');
echo ('<input type="Submit" class="buttonSubmit" value="ENTRAR">');
echo ('</form>');
echo ('</center>');
}
//con la sesion iniciada y no termida lo direcciono al usuario si quiere ingresar de nuevo a su menu hasta que cierre su seion
else if(session_name()==$_SESSION['uuu'])
header('location: index_usuario.php');
else if(session_name()==$_SESSION['aaa'])
header('location: index_admin.php');
else if(session_name()==$_SESSION['ccc'])
header('location: index_colaborador.php');
?>
control.php
Código PHP:
<?
include("conectar.php");
$link=Conectarse();
$a=$_POST["usuario"];
$b=$_POST["contrasena"];
//despues viene el resul donde busco los datos del usuario en una base de datos recogiendo la respuesta lo mando como a un if
if (($b==$dos) && ($tres=="admin"))
{
session_start();
$administrador = session_name();
$_SESSION['verloguin'] = false; //me sirve para la funcion del index
$_SESSION['aaa'] = $administrador;
session_register("autentificado_a");
$autentificado_a = "SI";
header ("Location: index_admin.php");
exit;
}
//si es necesario se repite el paso de arriba para otros usuarios
else
{
header("Location: index.php?errorusuario=si");
}
mysql_free_result($result);
mysql_close($link);
?>
seguridad.php
Código PHP:
<?
//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado_a"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: index.php");
exit();
}
?>
Con el otro servidor funcionaba bien claro que era antiguo y no puedo volver a usarlo ya que todo se mudo al nuevo si existiera alguna solucion para salvar el problema me gustaria poder resolverlo