Hola en mi server local tengo una Web funcionando sin problemas pero al publicarla me da este error
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/s10d225e/public_html/controlador.php:3) in /home/s10d225e/public_html/pagina2.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /home/s10d225e/public_html/controlador.php:3) in /home/s10d225e/public_html/controlador.php on line 151
El controlador.php crea el vector $opcion con los parámetros de la URl para redirigir a la web correspondiente
La línea 151 de controlador.php es la siguiente
Código PHP:
//si no se pasa ningún parámetro a la URl se reenvía a index.php
switch ($opcion[0])
{
default: header("location: index.php");
exit;
}
En pagina2.php en la linea 2 es donde inicio la session de php si procede.
Código PHP:
<?php
session_start();
Que yo sepa en la pagina controlador.php no he impreso ningún texto por tanto no se porque no me permite hacer el header.
Agradecería cualquier comentario ya que el cliente esta esperando la Web desde hace tiempo y cuando ya la tengo me de este problema al publicarla en el servidor.
Gracias de antemano.
Un saludo.
.htaccess
Código:
Options all -Indexes
DirectoryIndex errorpage.php
<ifmodule mod_rewrite.c>
RewriteEngine On
#Si la url solicitada no es un fichero(existente), continuar...
RewriteCond %{REQUEST_FILENAME} !-f
#Si la url solicitada no es una carpeta(existente), continuar...
RewriteCond %{REQUEST_FILENAME} !-d
#se toma todo ese -query_string- y se pasa como parametro route
RewriteRule ^(.*)$ controlador.php?route=$1 [L,QSA]
</ifmodule>
Código PHP:
<?
include_once('funciones.php');
//Generar vector $opcion con los aprametros pasados por la URL
function getVariables($url)
{
//quitamos la barra del final
$url = preg_replace('/\/$/', '', $url);
//separamos las partes de la url y las contamos
$partes = explode('/', $url);
//echo $url."<br>";
//echo $partes."<br>";
$opcion = limpiar(explode("/",urldecode($url)));
//echo '<pre>';
//print_r($opcion);
//echo '</pre>';
return $opcion;
}
function limpiar($valor)
{
//permitimos solo letras(a-Z), numeros y guiones
return preg_replace('/[^a-zA-Z0-9-_]/', '', $valor);
}
$opcion = getVariables($_GET['route']);
//imprimirVector($_GET['route'],'$_GET[\'route\']');
//imprimirVector($opcion,'$opcion');
//Geenrar pagina en caso de que estemos en la tienda
if($opcion[0]=='tienda')
{
//mensaje('tienda');
$regProductos=mysql_query('select * from productos order by Orden',$conexion) or die ('problemas con selct productos'.mysql_error());
$regFamilias=mysql_query('select * from familias',$conexion) or die ('problemas con selct familias'.mysql_error());
//mensaje($opcion[1]);
//mensaje($IdFamilias);
while ($lineaProductos=mysql_fetch_array($regProductos))
{
if ($opcion[1]==$lineaProductos['URL'])
{
//genera la pagina de un producto concreto
pagina(generaMenuIzquierdaTienda(),generarHtmlProducto($lineaProductos),"Tienda->Productos->$lineaProductos[Titulo]",'Categorias');
exit;
}
}
//genera la pagina con el listado de productos de una familia
while ($lineaFamilias=mysql_fetch_array($regFamilias))
{
if($opcion[1]==$lineaFamilias['URL'])
{
$sqlProductos="select * from productos where IdFamilia=$lineaFamilias[Id]";
pagina(generaMenuIzquierdaTienda(),catalogo($sqlProductos),'Listado de productos','Categorias',null,'',crearContenidoBloqueArribaFamilias("imagenescatalogo/familia-led-p$lineaFamilias[Id].jpg",$lineaFamilias['HTML'],$lineaFamilias['Descripcion']),$lineaFamilias['Titulo']);
exit;
}
}
//mysql_free_result($regFamilias);
//mensaje("la variable \$IdFamilias antes de salir de error.php tiene el valor $IdFamilias");
}
//FIN Geenrar pagina en caso de que estemos en la tienda
if($opcion[0]=='familias-led')
{
//mensaje('tienda');
$regProductos=mysql_query('select * from productos order by Orden',$conexion) or die ('problemas con selct productos'.mysql_error());
$regFamilias=mysql_query('select * from familias order by Orden',$conexion) or die ('problemas con selct familias'.mysql_error());
//mensaje($opcion[1]);
//mensaje($IdFamilias);
while ($lineaProductos=mysql_fetch_array($regProductos))
{
if ($opcion[1]==$lineaProductos['URL'])
{
//genera la pagina de un producto concreto
pagina(generaMenuIzquierdaTienda(),generarHtmlProducto($lineaProductos),"Tienda->Productos->$lineaProductos[Titulo]",'Categorias');
exit;
}
}
//genera la pagina con el listado de categorias
pagina(generaMenuIzquierdaTienda(),familias(),'Categorias de productos','Categorias');
//mysql_free_result($regFamilias);
//mensaje("la variable \$IdFamilias antes de salir de error.php tiene el valor $IdFamilias");
exit;
}
//FIN Geenrar pagina en caso de que estemos en la tienda
//mensaje('comienza a comprobar para el gestor de contenido');
//Generar html del gestor de contenido
$registros=mysql_query('select * from secciones',$conexion) or die(mysql_error());
while($linea=mysql_fetch_array($registros))
{
if($opcion[0]==$linea['URL'])
{
pagina(generaMenuizquierdaContenido($linea['NumeroSeccion']),$linea['Contenido'],$linea['TituloLargo'],datoBdWhere('Titulo','familiassecciones',"Id=$linea[NumeroSeccion]"),null,null,null,null,datoBdWhere('Titulo','familiassecciones',"Id=$linea[NumeroSeccion]"));
mysql_free_result($registros);
//mysql_free_result($regmenu);
exit;
}
}
switch ($opcion[0])
{
default: header("location: index.php");
exit;
}
?>