Foros del Web » Programando para Internet » PHP »

sesion_star()

Estas en el tema de sesion_star() en el foro de PHP en Foros del Web. Hola a tod@s, os explico tengo un codigo php de un ibro de visitas k encontre k es bastante bueno, pero me pasa lo siguiente ...
  #1 (permalink)  
Antiguo 09/03/2009, 05:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 253
Antigüedad: 15 años, 10 meses
Puntos: 8
sesion_star()

Hola a tod@s, os explico tengo un codigo php de un ibro de visitas k encontre k es bastante bueno, pero me pasa lo siguiente desde mi web llamo al libro desde la funcion :

Código PHP:
<?include "libro.php"?>
y me sale este error k por mas vuelta k lo doy no doy con el error, dice esto:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/32/d247160154/htdocs/MIWEB/paginas/sabias/sabias.php:4) in /homepages/32/d247160154/htdocs/MIWEB/paginas/sabias/libro.php on line 95

¿puede ser por el include? dado que el libro lo he probado directamente y funciona de maravilla

El codgio del libro es este aunque es bastante largo asi que lo divido en 2 partes:
Código PHP:
<? 

  $title 
"";

  
$admin_password "contraseña";

  
$admin_email "[email protected]";

  
$home "http://www.tuweb.com";

  
$notify "NO";
//Your Operating System
//For Windows/NT user : WIN
//For Linux/Unix user : UNIX
  
$os "UNIX";
//Maximum entry per page when you view your guestbook
  
$max_entry_per_page 10;
//Name of file used to store your entry, change it if necessary
  
$data_file "ardgb18.dat";
//Maximum entry stored in data file
  
$max_record_in_data_file 300;

  
$max_entry_per_session 2;
  
$imgcode "YES";
//Color & font setting
  
$background "<a class=\"numPost\" href=\"/foros/PHP/34489#555555\">#555555</a>";
  
$table_top "#D3B68E";
  
$table_content_1a "#EDEEE8";
  
$table_content_1b "#E4E4E4";
  
$table_content_2a "#FFF8F0";
  
$table_content_2b "#FFEFDF";
  
$table_bottom "#D3B68E";
  
$table_border "<a class=\"numPost\" href=\"/foros/PHP/34489#000000\">#000000</a>";
  
$title_color "#FFFF00";
  
$link "<a class=\"numPost\" href=\"/foros/PHP/34489#0000\">#0000</a>FF";
  
$visited_link "<a class=\"numPost\" href=\"/foros/PHP/34489#0000\">#0000</a>FF";
  
$active_link "#FF0000";
  
$font_face "verdana";
  
$message_font_face "arial";
  
$message_font_size "2";


$do = isset($_REQUEST['do']) ? trim($_REQUEST['do']) : "";
$id = isset($_GET['id']) ? trim($_GET['id']) : "";
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$self $_SERVER['PHP_SELF'];

if (!
file_exists($data_file)) {
    echo 
"<b>Error !!</b> Can't find data file : $data_file.<br>";
    exit;
} else {
    if (
$max_record_in_data_file != "0") {
        
$f file($data_file);
        
rsort($f);
        
$j count($f);
        if (
$j $max_record_in_data_file) {
            
$rf fopen($data_file,"w");
            if (
strtoupper($os) == "UNIX") {
               if (
flock($rf,LOCK_EX)) {
                  for (
$i=0$i<$max_record_in_data_file$i++) {
                      
fwrite($rf,$f[$i]);         
                  }
                  
flock($rf,LOCK_UN);
               }
            } else {
               for (
$i=0$i<$max_record_in_data_file$i++) {
                  
fwrite($rf,$f[$i]);         
               }
            }
            
fclose($rf);
        }
    }
}
  #2 (permalink)  
Antiguo 09/03/2009, 05:07
 
Fecha de Ingreso: mayo-2008
Mensajes: 253
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: sesion_star()

parte 2

Código PHP:
///////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////  AQUI EMPIEZA LA LINEA 95 DEL ERROR ////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////

session_start();
$newline = (strtoupper($os) == "WIN") ? "\r\n" : "\n";
switch ($do) {
case "":
   $record = file($data_file);
   rsort($record);
   $jmlrec = count($record);
?>
   
   <body bgcolor="<?=$background?>" link="<?=$link?>" vlink="<?=$visited_link?>" alink="<?=$active_link?>" topmargin="0" marginheight="0" style="font-family:<?=$font_face?>">
   <div align="center"><font size="6" color="<?=$title_color?>"><b>
     <?=$title?>
   </b></font><br>
   <font size="2" color="<?=$title_color?>">(:: <b><a href="<?=$home?>"></a></b> ::)</font><br>
   <br>
   <table width="600" cellpadding="0" cellspacing="1" border="0">
   <tr bgcolor="<?=$table_border?>">
   <td>
      <table width="100%" cellpadding="4" cellspacing="1" border="0">
      <tr>
        <td bgcolor="<?=$table_top?>" colspan="3" width="100%">
           <font size="2" color="#ffffff"><b>Pulsa <a href="<?="$self?do=add_form&page=$page"?>">aqui </a>para dejar un comentario</font></b>
        </td>
      </tr>
<?
      $jml_page 
ceil($jmlrec/$max_entry_per_page);
      
$nomrec $page $max_entry_per_page $max_entry_per_page;
      
$no $page*$max_entry_per_page-$max_entry_per_page;
      
//$no = ($jmlrec - $page * $max_entry_per_page) + $max_entry_per_page + 1;
      
if ($jmlrec == 0) {
          echo 
'<tr><td colspan="3" bgcolor="#FFE1E1" align="center"><font size="3">No hay ningun comentario, se tú el primero.</font></td></tr>';
      }
        
$w 0//--Color
        
for ($i=0$i<$max_entry_per_page$i++) {
            
$nomrec++;
            
$no++;
            
//$no--;
            
$recno $nomrec-1;
            if (isset(
$record[$recno])) {
               
$row explode("|~|",$record[$recno]);
               if (
$w==0) { 
                   
$warna $table_content_1a;
                   
$warna2 $table_content_1b;
                   
$w=1;
               } else { 
                   
$warna $table_content_2a;
                   
$warna2 $table_content_2b;
                   
$w=0;
               }
               echo 
"<tr>
                       <td bgcolor=\"$warna2\" align=\"center\" valign=\"top\" width=\"15\">
                         <font size=\"2\">$no</font>
                       </td>
                       <td bgcolor=\"$warna\" width=\"570\">
                       <table border=\"0\" width=\"100%\">
                       <tr>
                        <td>
                         <font size=\"1\">$row[2]</font><br>
                         <font size=\"2\"><b>$row[3]</b></font>
                        </td>
                    "
;
               echo 
"<td align=\"right\" valign=\"top\">";
                        if (
trim($row[4]) != "") {
                            echo 
"<a href=\"mailto:$row[4]\"><img src=\"imgs/email.gif\" border=\"0\" alt=\"$row[4]\"></a>";
                        }
                        if (
trim($row[6]) != "" && trim($row[6]) != "http://") {
                           if (
ereg("^http://"trim($row[6]))) echo " <a href=\"$row[6]\" target=\"_blank\"><img src=\"imgs/homepage.gif\" border=\"0\" alt=\"$row[6]\"></a>";
                           else echo 
" <a href=\"http://$row[6]\" target=\"_blank\"><img src=\"imgs/homepage.gif\" border=\"0\" alt=\"$row[6]\"></a>";
                        }
               echo 
'</td></tr></table>';
               echo 
"<br><table border=\"0\" width=\"100%\">
                     <tr><td width=\"5\">&nbsp;</td><td>
                     <font size=\"2\" face=\"$message_font_face\" size=\"$message_font_size\">"
.stripslashes($row[5])."</font>
                     </td></tr>
                     </table>
                    "
;
               echo 
'</td>';
               echo 
"<td valign=\"top\" bgcolor=\"$warna2\" align=\"center\" width=\"15\">
                     <a href=\"$self?do=del&id=$row[1]&page=$page\">
                     <img src=\"imgs/del.gif\" alt=\"Delete entry # $no\" border=0 align=\"center\"></a>
                     </td>
                     </tr>"
;
            } 
//--end if 
             
//--end for
  #3 (permalink)  
Antiguo 09/03/2009, 06:16
Avatar de benji_  
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sesion_star()

Fijate que el error que te da PHP te lo esta diciendo:
Cita:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/32/d247160154/htdocs/MIWEB/paginas/sabias/sabias.php:4) in /homepages/32/d247160154/htdocs/MIWEB/paginas/sabias/libro.php on line 95
No puedes imprimir ninguna salida por pantalla antes de declarar un "session_start()".

La solucion a tu problema es bien simple, coloca el session_start() en la primera linea de tu codigo... y LISTO!

Espero que te funcione. Saludos
  #4 (permalink)  
Antiguo 09/03/2009, 06:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 253
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: sesion_star()

Hola benji Gracias por la respuesta tan rapida, perdona pero en la primera linea de mi codigo donde hago el include o del mismo libro. Gracias perdona por si la pregunta es idiota
  #5 (permalink)  
Antiguo 09/03/2009, 06:33
Avatar de benji_  
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sesion_star()

En el codigo del libro

Tendria que quedarte algo asi:
Código:
<?  session_start();

      $title = "";

      $admin_password = "contraseña";

      $admin_email = "[email protected]";
Saludos
  #6 (permalink)  
Antiguo 09/03/2009, 06:33
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: sesion_star()

Hola,

Creo que sería en la primera línea del libro.php

Saludos,
  #7 (permalink)  
Antiguo 09/03/2009, 06:38
 
Fecha de Ingreso: mayo-2008
Mensajes: 253
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: sesion_star()

nop, me sigue dando el mismo error
  #8 (permalink)  
Antiguo 09/03/2009, 06:46
Avatar de benji_  
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sesion_star()

Al libro lo estas incluyendo desde otro archivo no?

Acaso este archivo, en el cual haces "include('libro.php');" se llama "sabias.php" ?
  #9 (permalink)  
Antiguo 09/03/2009, 06:50
 
Fecha de Ingreso: mayo-2008
Mensajes: 253
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: sesion_star()

si desde sabias.php hago include"libro.php"
  #10 (permalink)  
Antiguo 09/03/2009, 07:08
Avatar de benji_  
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: sesion_star()

Bien, entonces el problema esta en que estas llamando al "libro.php", el cual en su primera linea tiene un "session_start()", desde el archivo "sabias.php" donde estas imprimiendo por pantalla en la linea 4.

Intenta lo siguiente:

Quita el "session_start()" del archivo "libro.php" y colocalo en la primera linea del archivo "sabias.php".

En teoria tendria que funcionar

Última edición por benji_; 09/03/2009 a las 07:28
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 15:25.