Foros del Web » Programando para Internet » PHP »

Especial para CLUSTER,el defensor de las sesiones

Estas en el tema de Especial para CLUSTER,el defensor de las sesiones en el foro de PHP en Foros del Web. Me dijiste q utilizara sesiones q era lo mejor del mundo y llevo 2 dias desesperado intentando saber porque se me produce el siguiente error: ...
  #1 (permalink)  
Antiguo 04/12/2002, 16:48
Avatar de batvampire  
Fecha de Ingreso: noviembre-2002
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
Especial para CLUSTER,el defensor de las sesiones

Me dijiste q utilizara sesiones q era lo mejor del mundo y llevo 2 dias desesperado intentando saber porque se me produce el siguiente error:

Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\programacion\asignacion\asignacio n2.php:1) in c:\apache\htdocs\programacion\asignacion\asignacio n2.php on line 2

no se q pasa,pero me stoy volviendo loco.Te mando todo el codigo haber si me ayudas porque estoy desquiciado:

asignacion0.php

Código PHP:
<html>
<
body>

codigo html:mando por formulario estas variables:
"zx","mini","dim","a","m","y","pasoa","a1","b1","b2"  
<
</
body>
</
html

asignacion1.php
Código PHP:
<?
 session_start
(); 
 
session_register("zx","mini","dim","a","m","y","pasoa","a1","b1","b2");  
?>
<html>
<body>

codigo html

</body>
</html>
asignacion2.php

Código PHP:
<?
 session_start
();
 
session_destroy(); 
?>

<html>
<body>

codigo html

</body>
</html>


No obstante el problema se produce en asignacion2.php que es este:

Código PHP:
<?
 session_start
();
 
session_destroy(); 
?>


<html>
<head>
<title>Problema de asignaci&oacute;n</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>



<body bgcolor="#97B7D7" text="#FFFFFF" link="#0000CC">

<table width="100%" border="0" bgcolor="#000000" height="10%">
  <tr> 
    <td>
      <div align="center"><b><font color="#FF0000" size="5">Problema de asignaci&oacute;n</font></b></div>
    </td>
  </tr>
</table>
<table width="100%" border="0">
    <tr> 
      <td width="94%">&nbsp;</td>
      <td bgcolor="#66FF66" width="6%"> 
        <div align="right"><b><font size="4" color="#0000FF"><a href="javascript:openwindow('ayudaa0.htm')">Ayuda</a></font></b></div>
      </td>
    </tr>
  </table>

<?
  
for($i=0;$i<$dim;++$i){
    for(
$j=0;$j<$dim;++$j){
        
      
$a[$i*$dim+$j]=$da3[$i*$dim+$j];
      
settype($a[$i*$dim+$j],"double");  

      
$soluc[$i*$dim+$j]=$da3[$i*$dim+$j];
      
settype($soluc[$i*$dim+$j],"double"); 
        
    }
  }

      if (!
$mini) {
      
transformas($dim,&$a);
      }

      
$zx=$zx+1;
      if (
$pasoa==1mostrar_fas($dim,&$a,&$m,&$zx);

      
$con=0;      
      while(
$con<2){
          
          for(
$i=0;$i<$dim;++$i){
            
$l=$i;
            
$y[$l]=1000000;
            
            for (
$j=0;$j<$dim;++$j){
              if(
$con){
               
$acon=$j;
               
$j=$i;
               
$i=$acon;
              }
              if(
$a[$i*$dim+$j]<$y[$l]) $y[$l]=$a[$i*$dim+$j];

              if(
$con){
               
$acon=$j;
               
$j=$i;
               
$i=$acon
              } 
            }
          }
      
          for(
$i=0;$i<$dim;++$i){
            
$l=$i;
            for(
$j=0;$j<$dim;++$j){
              if(
$con){
               
$acon=$j;
               
$j=$i;
               
$i=$acon;
              }
              
              
$a[$i*$dim+$j]=$a[$i*$dim+$j] -($y[$l]);

              if(
$con){
               
$acon=$j;
               
$j=$i;
               
$i=$acon;
              }
            }
          }

          
$con=$con+1;
          if(
$pasoa==1) {
           
$zx=$zx+1;
           
mostrar_fas($dim,&$a,&$m,&$zx);
          }
      }

      
$final=0;
      while(!
$final){
          
inicializar($dim,&$segu,&$m);
          
$con2=0;
          
$segal=1;
          
          while(
$con2<$dim && $segal){
              
$b=200;              
              for(
$i=0;$i<$dim;++$i){
                
$h[$i]=0;
                for(
$j=0;$j<$dim;++$j){
                  if (!
$a[$i*$dim+$j]  && !$m[$i*$dim+$j]) $h[$i]=$h[$i]+1;
                }
                if(
$h[$i]<$b && $h[$i]){
                 
$x=$i;
                 
$b=$h[$i];
                }
              }
              if(
$b==200$segal=0;
               if(
$segal){
                
$con2=$con2+1;
                
$salir=0;
                
$j=0;
                while(!
$salir){
                    if(!
$m[$x*$dim+$j] && !$a[$x*$dim+$j]){
                     
$m[$x*$dim+$j]=1;
                     
$l=$j;
                     
$salir=1;
                    }
                    
$j=$j+1;
                }
                for(
$j=0;$j<$dim;++$j){
                  if(
$m[$x*$dim+$j]!=1$m[$x*$dim+$j]=2;
                  if(
$m[$j*$dim+$l]!=1$m[$j*$dim+$l]=2;
                }
               }
           }
           
           
$u=0;
           for(
$i=0;$i<$dim;++$i){
             for(
$j=0;$j<$dim;++$j){
               if(
$m[$i*$dim+$j]==&& $a[$i*$dim+$j]==0$u=$u+1;
             }
           }

           if(
$pasoa==1) {
            
$zx=$zx+1;
            
mostrar_fas($dim,&$a,&$m,&$zx);
           }

           if(
$u==$dim){
            
$final=1;
           }

           if(!
$final){
            for(
$i=0;$i<$dim;++$i){
              
$f[$i]=0;
              
$caca[$i]=1;
              for(
$j=0;$j<$dim;++$j){
                if(
$m[$i*$dim+$j]==1$f[$i] =1;
              }
            }
            
            
$p=0;
            while (
$p<$dim+1){
                for(
$i=0;$i<$dim;++$i){
                  for(
$j=0;$j<$dim;++$j){
                    if (!
$f[$i] && $m[$i*$dim+$j]==&& !$a[$i*$dim+$j]) $caca[$j]=0;
                  }
                }
                
                for(
$j=0;$j<$dim;++$j){
                  for(
$i=0;$i<$dim;++$i){
                    if(!
$caca[$j] && $m[$i*$dim+$j]==1$f[$i]=0;
                  }
                }
                
$p=$p+1;
            }

            for(
$i=0;$i<$dim;++$i){
              for(
$j=0;$j<$dim;++$j){
                if(
$f[$i]==1$m[$i*$dim+$j]=5;
                if(!
$caca[$j]) $m[$i*$dim+$j]=5;
              }
            }
            
            
$w=1000000;
            for(
$i=0;$i<$dim;++$i){
              for(
$j=0;$j<$dim;++$j){
                if (
$m[$i*$dim+$j]!=&& $a[$i*$dim+$j]<$w$w=$a[$i*$dim+$j];
              }
            }

            for(
$i=0;$i<$dim;++$i){
              for(
$j=0;$j<$dim;++$j){
                if(!
$f[$i] && $caca[$j]==$a[$i*$dim+$j]=$a[$i*$dim+$j]-$w;
                if(
$f[$i]==&& !$caca[$j] ) $a[$i*$dim+$j]=$a[$i*$dim+$j]+$w;
              }
            }

           }
       }

       
$resul=0;
       for(
$i=0;$i<$dim;++$i){
         for(
$j=0;$j<$dim;++$j){
           if (
$m[$i*$dim+$j]==&& $a[$i*$dim+$j]==0$resul=$resul+$soluc[$i*$dim+$j];
         }
       }

       
$suma=0;
?>    
<p>&nbsp;</p><P>
<table width="90%" border="5" bgcolor="#CC0000" bordercolor="#000000" align="center">
  <tr> 
    <td width="49%" bgcolor="#CCCCCC"> 
      <div align="center"><b><font color="#000000">Coste (o beneficio) de la asignaci&oacute;n 
        &oacute;ptima </font></b><font color="#000000">:</font></div>
    </td>
    <td width="51%">
      <div align="center"><font color="#000000"><b><?echo $resul?></b></font></div>
    </td>
  </tr>
  <tr bgcolor="#CCCCCC"> 
    <td colspan="2"> 
      <div align="center"><font color="#000000"><b>Asignaci&oacute;n &oacute;ptima</b></font></div>
    </td>
  </tr>
  <tr> 
    <td colspan="2"> 
      <div align="center"><font color="#000000"><b><?
       
for($i=0;$i<$dim;++$i){
         for(
$j=0;$j<$dim;++$j){
           if(
$m[$i*$dim+$j]==&& $a[$i*$dim+$j]==0) {
           echo 
"O";
           echo 
$i+1;
           echo 
"-T";
           echo 
$j+1;
           echo 
"<br>";
            
           }
         }
       }
    
    
?></b></font></div>
    </td>
  </tr>
</table>
         
<?   
 
function inicializar($a1,$b1,$b2){

    for(
$i=0;$i<$a1;++$i){
      for(
$j=0;$j<$a1;++$j){
        
$b1[$i*$a1+$j]=0;
        
$b2[$i*$a1+$j]=0
      }
    }
 }


 function 
iniciar($a1,$b1){

    for(
$i=0;$i<$a1;++$i){
      
$b1[$i]=0;
    }
 }
 function 
transformas($a1,$a2){
    
$maximo=0;
    
settype($maximo,"double");
    for(
$i=0;$i<$a1;++$i){
      for(
$j=0;$j<$a1;++$j){
        if(
$a2[$a1*$i+$j]>$maximo){
         
$maximo=$a2[$a1*$i+$j];
         
$k=$i;
         
$l=$j;
        } 
      }
    }
    
$m=$a2[$a1*$k+$l];

    for(
$i=0;$i<$a1;++$i){
      for(
$j=0;$j<$a1;++$j){
        
$a2[$a1*$i+$j]=$m-$a2[$a1*$i+$j];
      }
    }
 }

function 
mostrar_fas($a1,$a2,$a3,$l1){
?>
<table width="50%" border="1" align="center" bgcolor="#CC0000">
  <tr bgcolor="#CCCCCC"> 
    <td><?if (!$l1){?> 
      <div align="center"><b><font color="#000000">Tabla inicial</font></b><?}?> 
        <?if ($l1){?> </div>
      <div align="center"><font color="#000000"><b>Iteracion</b></font><b><font color="#000000"><?echo $l1;?></font></b><?}?> 
      </div>
    </td>
  </tr>
  <tr> <?if($a1<4){?> <?}?> <?if($a1>3){?> <?}?> 
    <td> 
      <div align="center"> 
        <table width="100%" border="0" bgcolor="#CC0000">
          <?for($i=0;$i<$a1;++$i){?> 
          <tr> <?for($j=0;$j<$a1;++$j){?> 
            <td height="35"> 
              <center>
                <b><font color="#000000"><?
                $rr
=$a2[$i*$a1+$j];
                
settype($rr,"double");
        
                
$ll=$a3[$i*$a1+$j];
                
settype($ll,"integer");
        
                if(
$ll==&& !$rr){?></font></b> 
                <table width="4%" bgcolor="#FFFFFF">
                  <tr> 
                    <td><font color="#000000"><b><?echo $rr;?></b></font></td>
                  </tr>
                </table>
                <b><font color="#000000"><?}
                else{
                 echo 
$rr;
                 }
                
?></font></b> 
              </center>
            </td>
            <?}?> </tr>
          <?}?> 
        </table>
      </div>
    </td>
  </tr>
</table>
<br>

  <?  
 
}
?> </p>

</body>
</html>
__________________
:pirata:
  #2 (permalink)  
Antiguo 04/12/2002, 19:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. lo primero es en vez de darle vueltas a un tema tu solo enfrascado en tu código es leerte lo que dice PHP.net al respecto .. en este caso el del uso de sesiones ..

Lo primero que dice es:

NO se ha de enviar ninguna cabecera antes de inicio de sessiones . .entendiendose como cambeceras .. desde HTML simple .. hasta un header("algo"); .. pasando por hacer un echo o print ...

Y .. OJO .. un salto de linea antes del primer <? .. o un simple espacio se consideran como "envio de cabeceras" ....

Conociendo esta primera premisa .. ubieras tardado unos minutos en dar con el error ...

Revisa el código de asignacion2.php .. pues mas q seguro q tendras algun salto de linea o un espacio antes del <? que luego haces tu session_start() ... (comparalo y fijate con los otros scripts q usas y no te dan problemas ..).

Ahh ... tambien soy miembro de la AAA (Asociacion de Amigos del Array xDDD .. fundada por josemi :P ...)

Un saludo,

----
Tambien como comentario .. evita dirigirte a mi .. (de todas formas practicamente leo el 99% de mensajes q entran al foro de PHP y respondo un buen porcentaje de ellos ..). Así en cierta manera discriminas al resto de usuarios .. que .. tal vez lo saben pero por el hecho de dirigirte a alguien en concreto .. o no lo lean o no lo contesten ...
---
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 12:31.