Foros del Web » Programando para Internet » PHP »

Duda con include

Estas en el tema de Duda con include en el foro de PHP en Foros del Web. Hola! Tengo un calendario en php que funciona perfectamente (hhztyle.com/calendar) y al intentar llevarlo al index mediante un include me da el siguiente error: Cita: ...
  #1 (permalink)  
Antiguo 10/07/2006, 11:08
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 11 años, 11 meses
Puntos: 0
Duda con include

Hola!

Tengo un calendario en php que funciona perfectamente (hhztyle.com/calendar) y al intentar llevarlo al index mediante un include me da el siguiente error:

Cita:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at .../index.php:3) in .../calendar/index.php on line 2
Como se que el error es por un session_start(); que tiene el archivo del calendario al principio, pues paso ese session_start(); al principio de la página donde hago el include, justo antes del html.

El problema es que luego en la página del include me aparece el calendario pero no me aparecen enlaces en los días donde tengo los eventos...

No se donde está el error y si tiene que ver algo con lo de session_start();


Muchas gracias
Un cordial saludo
  #2 (permalink)  
Antiguo 10/07/2006, 11:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El error te dice que en la línea 3 de index.php tienes algo de "salida" originada al cliente (navegador) .. puede ser algo de HTML que tengas por ahí .. antes de <? .. o de un ?> .. o un simple espacio, o un salto de línea. Revisalo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 10/07/2006, 11:33
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 11 años, 11 meses
Puntos: 0
Pero ese problema ya lo solucioné.
Ese error es por el session_start(); del calendario.
Pero lo solucioné colocando <? session_start(); ?> antes de <html> del archivo donde hago el include.

El problema es que no me aparecen los dias de eventos como enlaces en la página donde hago el include, y sin embargo en la página del calendario aparece todo perfecto.... :S


A ver si me podeis echar una mano

Muchas gracias
Saludos
  #4 (permalink)  
Antiguo 10/07/2006, 12:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por RJD
Pero ese problema ya lo solucioné.
Ese error es por el session_start(); del calendario.
Pero lo solucioné colocando <? session_start(); ?> antes de <html> del archivo donde hago el include.

El problema es que no me aparecen los dias de eventos como enlaces en la página donde hago el include, y sin embargo en la página del calendario aparece todo perfecto.... :S


A ver si me podeis echar una mano

Muchas gracias
Saludos
Pues si no muestras el código que usas es complicado dar algún tipo de sugerencia al respecto como comprenderas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 10/07/2006, 13:08
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola!

Esta parte es la que en todo caso tendría que contener el error, ya que lo demás es para añadir el evento y eso no tiene problemas

Código PHP:
////////////////////////////////////////////////////////////////
// Start of actual code, no need to change ////////////////////
//
if($startwithmonday) {
    
$dayName = array($monday$tuesday$wednesday$thursday$friday$saturday,$sunday);
} else {
    
$dayName = array($sunday$monday$tuesday$wednesday$thursday$friday$saturday);
}

$monthName = array($january$february$march$april$may$june$july$august$september$october,
$november$december);

if(isset(
$_GET['act'])){
    
$act $_GET['act'];
} else {
    
$act "";
}
if(isset(
$_GET['date'])){
    
$date $_GET['date'];
} else {
    
$date date("Y-m-d");
}



////////////////////////////////////////////////////////////////
// Function for creating the current month ////////////////////
//
function createMonth($date) {
    
    global 
$startwithmonday;
    
    
$date split("\-"$date);
    
$year $date[0];
    
$month $date[1];
    
    
// Dates
    
    
$this_month_date makeDate($year$month1);
    
$last_month_date makeDate($year$month 11);
    
$next_month_date makeDate($year$month 11);
    
// Numbers
    
$this_month_first_day trim(date("w"$this_month_date));
    
    
$this_month_days trim(date("t"$this_month_date));
    
$last_month_days trim(date("t"$last_month_date));
    
    
$this_month_number trim(date("n"$this_month_date));
    
$last_month_number trim(date("n"$last_month_date));
    
$next_month_number trim(date("n"$next_month_date));
    
    
$this_month_year trim(date("Y"$this_month_date));
    
$last_month_year trim(date("Y"$last_month_date));
    
$next_month_year trim(date("Y"$next_month_date));
    
    if(
$startwithmonday) {
        if(
$this_month_first_day == 0) {
            
$this_month_first_day 7;
        }
    } else {
        
$this_month_first_day++;
    }
    
        
    
// Förra
    
for($I 1$I $this_month_first_day$I++) {
        
$temp $last_month_days $this_month_first_day $I 1;
        
$monthArray["$last_month_year-$last_month_number-$temp"] = array(0"$last_month_year-$last_month_number-$temp");
    }
    
// Månad.
    
for($I 1$I <= $this_month_days$I++) {
        
$monthArray["$this_month_year-$this_month_number-$I"] = array(1"$this_month_year-$this_month_number-$I");
    }
    
// Nästa
    
for($I 1$I <= 43 $this_month_days $this_month_first_day$I++) {
        
$monthArray["$next_month_year-$next_month_number-$I"] = array(0"$next_month_year-$next_month_number-$I");
    }
return 
$monthArray;    
};

// End of createMonth function
////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////
// Function for adding events to month ////////////////////////
//
function appendEvent($date$monthArray) {
    
    global 
$path$act;
    
    
$date split("\-"$date);
    
$year $date[0];
    
$month $date[1];

    
$date makeDate($year$month1);
    
$date date("Y-m"$date);

    
    
    if(
$act == "event") {
        
$fp = @fopen("$date.txt""r");
    } else {
        
$fp = @fopen("$path$date.txt""r");
    }
    
    if(
$fp) {
        while (!
feof($fp))  { 
            
$line fgets($fp);
            if(
$line != "") {
                
$data split("\#"$line);
                
$date split("\|"$data[0]);
                
$monthArray["$date[0]"][0] = 2;
                
$monthArray["$date[0]"][1] = "$date[0]";
                
$monthArray["$date[0]"][2][] = array("$date[1]""$data[1]");
            }
        }
    }
    return 
$monthArray;
};
// End of appendEvent function
////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////
// Function for adding the current day ////////////////////////
//
function addToday($date$monthArray) {
    
$date split("\-"$date);
    
$year $date[0];
    
$month $date[1];
    
$this_year date("Y");
    
$this_month date("n");
    
    if(
$year == $this_year && $month == $this_month) {
        
$monthArray[date("Y-n-j")][0] +=2;
    }
    return 
$monthArray;
};
// End of appendEvent function
////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////
// Function for displaying the current month //////////////////
//
function displayMonth($date$monthArray) {
    
    global 
$path$weekBGColor$weeknumber$width$monthName$dayName$monthBGColor$monthTextColor$daysBGColor;

    
$date split("\-"$date);
    
$year $date[0];
    
$month $date[1];
    
    
$this_month mktime(000$month1,  $year);
    
$last_month mktime(000$month 11,  $year);
    
$next_month mktime(000$month 11,  $year);



    
////////////////////////////////////////////////////////
    // Javascript for popup window. ///////////////////////
    //
    
echo "<script type=\"text/javascript\">
    <!--
    
    function event(location){
    
    win=window.open(\"\",\"\",\"height=300,width=500, scrollbars=0, resizable=0, location=0, menubar=0, toolbar=0, status=0\")
    //win.moveTo(0,0)
    //win.resizeTo(heigh,width)
    win.location=location
    }
    //-->
    </script>\n\n"
;
    
//
    ////////////////////////////////////////////////////////


echo "<TABLE class=\"table\" cellspacing=\"0\" cellpadding=\"0\" width=\"$width\">\n<TR>\n";
echo 
"<TD class=\"td\" color=\"$monthTextColor\" bgcolor=\"$monthBGColor\" onMouseOver=\"this.className='sel'\" onMouseOut=\"this.className='td'\" >\n<A class=\"A\" HREF=\"?date=";
echo 
date("Y-m-j"$last_month);
echo 
"\">&laquo;</A>\n</TD>\n<TD class=\"td\" color=\"$monthTextColor\"  bgcolor=\"$monthBGColor\">\n";
echo 
$monthName[$month-1];
echo 
date(" Y"$this_month);
echo 
"\n</TD>\n<TD class=\"td\" color=\"$monthTextColor\"  bgcolor=\"$monthBGColor\" onMouseOver=\"this.className='sel'\" onMouseOut=\"this.className='td'\" >\n<A class=\"A\" HREF=\"?date=";
echo 
date("Y-m-j"$next_month);
echo 
"\">&raquo;</A>\n</TD>\n</TR>\n<TR>\n";
    
echo 
"<TD class=\"td\" colspan=\"3\">\n    <TABLE class=\"table\" width=\"100%\">\n<TR>\n";

foreach (
$dayName as $key) {
    echo 
"<TD class=\"td\"  bgcolor=\"$daysBGColor\">$key</TD>\n";
}
if(
$weeknumber) {
    echo 
"<TD class=\"td\"  bgcolor=\"$daysBGColor\">v.</TD>\n";
}

echo 
"</TR>\n\n<TR>\n";


    
////////////////////////////////////////////////////////
    // Prints the days. ///////////////////////////////////
    //
    
$day 0;
    
    if(
$weeknumber) {
        
$week date("W"$this_month);
    }
        
    
    foreach (
$monthArray as $key) {
        
$date split("\-"$key[1]);
    
        if(
$key[0] == 0) {
                echo 
"<TD class=\"empty\">$date[2]</TD>\n";
        } else if(
$key[0] == 1) {
            echo 
"<TD onMouseOver=\"this.className='sel'\" onMouseOut=\"this.className='event'\" class=\"event\">$date[2]</TD>\n";
        } else if(
$key[0] == 2) {
            echo 
"<TD onMouseOver=\"this.className='sel'\" onMouseOut=\"this.className='event'\" class=\"event\"><A class=\"A\" HREF=\"javascript:event('$path?act=event&date=" $key[1] . "')\">$date[2]</A></TD>\n";
        } else if (
$key[0] == 3) {
            echo 
"<TD onMouseOver=\"this.className='sel'\" onMouseOut=\"this.className='today'\" class=\"today\">$date[2]</TD>\n";
        } else if (
$key[0] == 4) {
            echo 
"<TD onMouseOver=\"this.className='sel'\" onMouseOut=\"this.className='today'\" class=\"today\"><A class=\"A\" HREF=\"javascript:event('$path?act=event&date=" $key[1] . "')\"><B>$date[2]</B></A></TD>\n";
        }
    
$day++;
    if(
$day >= 7) {
        if(
$weeknumber) {
            echo 
"<TD bgcolor=\"$weekBGColor\" class=\"event\">$week</TD>\n";
            if(
$week >= 53) {
                
$week 0;
            }
            
$week++;
        }
        echo 
"</TR>\n<TR>\n";
        
$day 0;
    }
    
//
    ////////////////////////////////////////////////////////
}
echo 
"</TR>\n</TABLE>\n</TD></TR></TABLE>\n";



};

// End of displayMonth function
////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////
// Function for diplay of an event. ///////////////////////////
//
function displayEvent($date$monthArray) {
    
    global 
$event1$event2 $monthName;
    
    
$date split("\-"$date);
    
$year $date[0];
    
$month $date[1];
    
$day $date[2];
    
$event $monthArray["$year-$month-$day"][2];

echo 
"<style type=\"text/css\">
<!--
.Estilo1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
}
-->
</style>\n\n"
;
    echo 
"<TABLE>\n";
    echo 
"<TR>\n<TD bgcolor=\"$event2\"colspan=\"2\">\n";
    echo 
$day " " $monthName[$month-1] . ", " $year;
    echo 
"\n</TD>\n</TR>\n\n";
    foreach (
$event as $key) {
        echo 
"<TR>\n";
        echo 
"<TD bgcolor=\"$event1\" width=\"100%\" height=\"50px\" valign=\"top\">\n";
        echo 
$key[1];
        echo 
"\n</TD>\n</TR>\n\n";
    
    
$temp $event1;
    
$event1 $event2;
    
$event2 $temp;
    }
    echo 
"<TR>\n<TD bgcolor=\"#999999\"colspan=\"2\">\n";
    echo 
"<div align=\"center\"><a href=\"javascript:window.close();\"><b>Cerrar</b></a></div>"
    echo 
"\n</TD>\n</TR>\n\n";
    echo 
"</TABLE>\n";
};
// End of displayEvent function
//////////////////////////////////////////////////////////////// 
He quitado la parte de Css para que no ocupe tanto espacio.
A ver si me puedes ayudar porfavor

Muchas gracias
Saludos Cordiales
  #6 (permalink)  
Antiguo 10/07/2006, 13:17
 
Fecha de Ingreso: julio-2006
Mensajes: 45
Antigüedad: 11 años, 5 meses
Puntos: 0
supongo que este code esta contenido entre <?php .....ESTE CODE..... ?>

?
  #7 (permalink)  
Antiguo 10/07/2006, 13:18
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 11 años, 11 meses
Puntos: 0
Por supuesto

Puse simplemente la parte del script que podría contener el error. Lo demás son cosas para la modificación de estilos, añadir el evento y eso, que no tiene nada que ver.


Saludos y gracias
  #8 (permalink)  
Antiguo 10/07/2006, 13:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Realmente es complicado ver tu código .. son un montón de funciones (no se aprecia mucho donde se llaman) ..

Te doy algunas recomendaciones para que tu evalues tu própio problema:
1) ve el código fuente generado (en tu navegador ver->código fuente) y observa que links se generan .. con qué información o cual falta.
2) Ese código funciona si lo llamas en forma aislada .. sin tu "include()"?

Revisa las variables involucradas en los links ($path alcancé a ver ..) si está tomando el valor esperado (esto también lo veras al ver el código HTML generado). Algunas de esas variables parecen ser "globales" .. algún otro "include()" tal vez las llame .. debes revisarlo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:00.