Foros del Web » Programando para Internet » PHP »

Contador En Servidor Remoto No Cuenta

Estas en el tema de Contador En Servidor Remoto No Cuenta en el foro de PHP en Foros del Web. TENGO EL SIGUIENTE CONTADOR EN PHP EL CUAL HACE REFERENCIA A UN ARCHIVO DAT QUE VA SUBIENDO IMAGENES CON LOS NUMEROS CORRESPONDIENTES. cUANDO LO PRUEBO ...
  #1 (permalink)  
Antiguo 28/05/2007, 11:28
Avatar de Carsan  
Fecha de Ingreso: abril-2007
Ubicación: Mexico
Mensajes: 109
Antigüedad: 17 años
Puntos: 0
Contador En Servidor Remoto No Cuenta

TENGO EL SIGUIENTE CONTADOR EN PHP EL CUAL HACE REFERENCIA A UN ARCHIVO DAT QUE VA SUBIENDO IMAGENES CON LOS NUMEROS CORRESPONDIENTES. cUANDO LO PRUEBO DE MODO LOCAL, PERFECTAMENTE ME SUMA TODAS LAS ENTRADAS Y ACTUALIZACIONES, PERO CUANDO LO PONGO EN EL SERVIDOR REMOTO SE QUEDA TRABADO EN EL MISMO NUMERO TODO EL TIEMPO.
A VER SI UDS ME PUEDEN ORIENTAR EN CUAL ES EL PROBLEMA.
MUCHAS GRACIAS
Código PHP:
<?php $destino "../JPG/numero.dat";
  
$abrir fopen($destino,"r");
  
$cuenta trim(fread($abrir,filesize($destino)));
  

  if (
$cuenta != ""$cuenta++;
  else 
$cuenta 1;
  @
fclose($abrir);
  
$abrir fopen($destino,"w");
  @
fputs($abrir,$cuenta);



  for(
$i=0;$i<strlen($cuenta);$i++) {
    
$imagen substr($cuenta,$i,1);
    
$contador .= "<img alt='../JPG/$imagen ' src='../JPG/$imagen.gif'>";
  }
  @
fclose($abrir);
  print 
$contador;
?>
  #2 (permalink)  
Antiguo 28/05/2007, 11:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Contador En Servidor Remoto No Cuenta

El problema puede estar que no tiene permisos PHP para leer el archivo numero.dat.
  #3 (permalink)  
Antiguo 28/05/2007, 12:43
Avatar de Carsan  
Fecha de Ingreso: abril-2007
Ubicación: Mexico
Mensajes: 109
Antigüedad: 17 años
Puntos: 0
Re: Contador En Servidor Remoto No Cuenta

Perdon por la Pregunta, es que no entiendo mucho.
El que no tiene permisos es mi servidor remoto? como se obtiene eso?

Gracias
  #4 (permalink)  
Antiguo 28/05/2007, 15:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Contador En Servidor Remoto No Cuenta

Si, tu servidor remoto, PHP necesita permisos en el archivo numero.dat para poder escribir y leer, los permisos los puedes asignar de muchas formas, desde tu cliente FTP, desde el panel de control de tu servidor, o via SSH.
  #5 (permalink)  
Antiguo 28/05/2007, 16:13
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: Contador En Servidor Remoto No Cuenta

Si no tubieras permisos el primer fopen te daria un warning.

Elimina las @ de fclose y fputs para poder ver si alguna operacion te da error.

Prueba con este codigo:
Código PHP:
<?php $destino "../JPG/numero.dat";
 
  
$cuenta file_get_contents($destino);
  
  
$cuenta++;

  
$abrir fopen($destino,"w");
  if(!
$abrir) exit("error al abrir numero.dat.");

  if( 
fputs($abrir,$cuenta) === false ) echo "Error al escribir en numero.dat";
  
  
fclose($abrir);
  
  
$prueba file_get_contents($destino);

  if(
$cuenta != $prueba) echo "Esto ya es raro";
  
  for(
$i=0;$i<strlen($cuenta);$i++) {
    
$imagen substr($cuenta,$i,1);
    
$contador .= "<img alt='../JPG/$imagen ' src='../JPG/$imagen.gif'>";
  }
  print 
$contador;
?>
De todas formas al probar si funciona hazlo con el boton actualizar, si haces atras y alante en el explorador, no te contara porque cojera la pagina del cache en lugar del servidor. Cada vez que le des a actualizar la pagina, debe incrementarse el contador. Puede que el fallo sea algo tan simple como eso.

Prueba el codigo de arriba y di el error que te sale.
  #6 (permalink)  
Antiguo 28/05/2007, 16:26
Avatar de Carsan  
Fecha de Ingreso: abril-2007
Ubicación: Mexico
Mensajes: 109
Antigüedad: 17 años
Puntos: 0
Re: Contador En Servidor Remoto No Cuenta

Bien, probé el codigo que me diste y localmente funciona perfecto pero en el remoto me da error: error al abrir "numero.dat"
  #7 (permalink)  
Antiguo 28/05/2007, 16:34
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: Contador En Servidor Remoto No Cuenta

O bien no tienes permiso, cosa que dudo porque por lo que veo el directorio /JPG/ imagino que lo has creado tu, o la ruta no es buena.

Pon $destino = "numero.dat", casi seguro que te funciona.
  #8 (permalink)  
Antiguo 28/05/2007, 16:49
Avatar de Carsan  
Fecha de Ingreso: abril-2007
Ubicación: Mexico
Mensajes: 109
Antigüedad: 17 años
Puntos: 0
Re: Contador En Servidor Remoto No Cuenta

Lo acabo de probar y lo que hace es empesar la cuenta de uno otra vez pero al ponerlo en el remoto se queda en uno nomás no avanza.

La carpeta JPG si la cree yo para poner ahi todas las imagenes y como estan ahí la de los numeron tambien puse dentro el Dat.

Por otra parte entre a mi panel de control de mi servidor remoto y active los permisos que me figuraban para este archivo, pero sigue igual.
  #9 (permalink)  
Antiguo 28/05/2007, 17:14
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: Contador En Servidor Remoto No Cuenta

¿No te sale ningun error?
¿Te sale 1 siempre que le das a actualizar pagina?
¿Cuantas cifras te salen?

Cambia este codigo:

Código PHP:
  for($i=0;$i<strlen($cuenta);$i++) { 
    
$imagen substr($cuenta,$i,1); 
    
$contador .= "<img alt='../JPG/$imagen ' src='../JPG/$imagen.gif'>"
  } 
  print 
$contador
por:


Código PHP:
  for($i=0;$i<strlen($cuenta);$i++) { 
    echo 
"<img alt='../JPG/".$cuenta{$i}." ' src='../JPG/".$cuenta{$i}.".gif'>";
  } 
En principio lo de arriba no tiene nada que ver, pero simplifica el codigo, y a veces, cuando no encuenrtas el problema, lo mejor es ir simplificando codigo.

La verdad, si no te sale ningun error deberia funcionar.
  #10 (permalink)  
Antiguo 28/05/2007, 18:28
Avatar de Carsan  
Fecha de Ingreso: abril-2007
Ubicación: Mexico
Mensajes: 109
Antigüedad: 17 años
Puntos: 0
Re: Contador En Servidor Remoto No Cuenta

Lo pongo como me dices quedandome asi:
Código PHP:
 $destino "numero.dat";
  
$abrir fopen($destino,"r");
  
$cuenta trim(fread($abrir,filesize($destino)));
  
  if (
$cuenta != ""$cuenta++;
  else 
$cuenta 1;
  @
fclose($abrir);
  
$abrir fopen($destino,"w");
  @
fputs($abrir,$cuenta);

  for(
$i=0;$i<strlen($cuenta);$i++) { 
    echo 
"<img alt='../JPG/".$cuenta{$i}." ' src='../JPG/".$cuenta{$i}.".gif'>";
    }
  @
fclose($abrir);
  print 
$contador
pero no me carga las imagenes de los numeros me mustra solo la X roja
  #11 (permalink)  
Antiguo 28/05/2007, 18:43
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: Contador En Servidor Remoto No Cuenta

Perdon me falto esta linea:

Código PHP:
$destino "numero.dat";
  
$abrir fopen($destino,"r");
/* Si tienes version PHP > 4.2 usa file_gets_contents($destino) evitaras problemas de carga. Si tienes PHP < 4.3 usa fopen($destino,"rb") puede que la falta de 'b' de problemas si el servidor es bajo windows */

  // Si usas file_gets_contents no necesitas usar un fread
 
$cuenta trim(fread($abrir,filesize($destino)));

  
  if (
$cuenta != ""$cuenta++;
  else 
$cuenta 1;
  @
fclose($abrir);
  
$abrir fopen($destino,"w");
  @
fputs($abrir,$cuenta);

  
$cuenta strval($cuenta);  //Esta linea se me olvido
  
for($i=0;$i<strlen($cuenta);$i++) { 
    echo 
"<img alt='../JPG/".$cuenta{$i}." ' src='../JPG/".$cuenta{$i}.".gif'>";
    }
  @
fclose($abrir);
  print 
$contador
En fin , yo he probado el codigo que pusiste inicialmente y en mi servidor funciona bien, tambien he probado el codigo ultimo que te mande y tambien funciona bien. Pero mi servidor esta bajo Unix, si tu servidor es bajo Windows tendras que poner fopen($destino,"rb") y fopen($destino,"wb"). Es lo unico que se me ocurre.
  #12 (permalink)  
Antiguo 28/05/2007, 19:24
Avatar de Carsan  
Fecha de Ingreso: abril-2007
Ubicación: Mexico
Mensajes: 109
Antigüedad: 17 años
Puntos: 0
Re: Contador En Servidor Remoto No Cuenta

Permitime que te diga GRAN MAESTRO.

Estoy muy agradecido a tu paciencia y atencion y te cuento que ya andubo perfectamente con esto último, al final quedó como fopen($destino,"rb")

De verdad, Muchisimas gracias.
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:33.