Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/04/2010, 14:56
karmic
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
problema con script que escribe en fichero y usa fsockopen

el código es el siguiente:

Código PHP:
<?php
$unixtime 
time();
$tiempoespera 60;

$url "aquiva.midns.com";
$plogin 1111;
$pchar 2222;
$pmap 3333;
$pmysql 3306;

$tiempotxt fopen"tiempo.txt""r");
$tiempotxtv fread($tiempotxt10);
fclose($tiempotxt);
if(
$unixtime-$tiempotxtv $tiempoespera){
    
$estadotxt fopen"estado.txt""r");
    
$estadotxtv fread($estadotxt12);
    
fclose($estadotxt);
    echo 
'img src="images/'.$estadotxtv.'.png" alt="" /';
}
else {
$estadoserver "";
$acc = @fsockopen($url$plogin$errno$errstr1);
$char = @fsockopen($url$plchar$errno$errstr1);
$map = @fsockopen($url$pmap$errno$errstr1);
$mysql = @fsockopen($url$pmysql$errno$errstr1);
 
echo 
'<img src="images/';
    
 if(!
$acc){
  echo 
'off';
  
$estadoserver .="off"
  return 
false;
 }else{
  
fclose($acc);
  echo 
'on';
  
$estadoserver .="on";
  return 
true;
 }
  if(!
$char){
  echo 
'off';
  
$estadoserver .="off"
  return 
false;
 }else{
  
fclose($char);
  echo 
'on';
  
$estadoserver .="on";
  return 
true;
 }
  if(!
$map){
  echo 
'off';
  
$estadoserver .="off"
  return 
false;
 }else{
  
fclose($map);
  echo 
'on';
  
$estadoserver .="on";
  return 
true;
 }
  if(!
$mysql){
  echo 
'off';
  
$estadoserver .="off"
  return 
false;
 }else{
  
fclose($mysql);
  echo 
'on';
  
$estadoserver .="on";
  return 
true;
 }
 
echo 
'.png" alt="" />';

$tiempotxt fopen"tiempo.txt",  "w");
fputs($tiempotxt$unixtime);
fclose($tiempotxt);
$estadotxt fopen"estado.txt",  "w");
fputs($estadotxt$estadoserver);
fclose($estadotxt);
}

?>
Pero no me funciona, lo que hace es lo siguiente:
Para evitar que todo el mundo haga fsockopen, unicamente se hace 1 vez cada minuto, y en general, es decir, a través de una resta con unixtime, se lee y se escribe en el archivo tiempo.txt y asi se comprueba que han pasado mas de 60 segundos desde el ultimo update.
si no han pasado mas de 60 segundos, se lee carga el estado desde el archivo estado.txt (por ejemplo el contenido podria ser offoffoffoff, y entonces se muestra la imagen offoffoffoff.png.

Si de lo contrario, han pasado mas de 60 segundos, se actualiza el valor del archivo tiempo.txt y después se procede ha hacer fsockopen a los 4 puertos y se va construyendo el estado, luego se muestra la imagen y se guarda en estado.txt

pues esto no funciona, pero no muestra ningún error, etc.

a ver si alguien detecta algún error o algo, Gracias.