Página 1 de 1

Contador de visitas en PHP

NotaPublicado: 2019-02-11 11:34 @523
por seafree
¿Qué tal? Buenos días. Al adicionar un contador de visitas en PHP sobre una aplicación web en CentOS 7, el contador no se incrementa. Por supuesto el archivo .txt donde se guarda el incremento no tiene efecto. El panorama es el siguiente:

Versión de PHP en servidor Centos 7:
Arch: x86_64
Version: 7.1.26
Release: 1.el7.remi
Repo: installed
From repo: remi-php71


Permisos de los archivos involucrados:
-rw-rw-r--. 1 apache apache 2 Feb 8 11:56 counter.txt
-rw-rw-r--. 1 apache apache 707 Feb 11 10:17 counter_new.php


Script PHP:
Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. <?php
  2.            $handle = fopen("counter.txt", "r");
  3.            $fileip = file_get_contents("counter.txt");
  4.               if(!$handle){
  5.                echo "Archivo bloqueado";
  6.               }
  7.               else {
  8.                  $counter=(int )fread($handle,20);
  9.                  fclose($handle);
  10.                  $counter++;
  11.                  echo "<b><font face='arial' size='4' color='#C10434'>VISITAS: &nbsp;&nbsp;". $counter  . " " ;
  12.                  $handle= fopen("counter.txt", "w" ) ;
  13.                  fwrite($handle,$counter) ;
  14.                  fclose ($handle) ; // línea 18
  15.               }
  16.         ?>
  17.  
Coloreado en 0.027 segundos, usando GeSHi 1.0.8.4


El /var/log/tiene la siguiente información:

[php7:warn] [pid 29127] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/counter.php on line 18

El problema está en que sí realiza el incremento pero no lo guarda. Los permisos son:


Agradeceré su valioso apoyo para encontrar la solución.
Enormes gracias.

Re: Contador de visitas en PHP

NotaPublicado: 2019-02-11 12:11 @549
por explorer
No compruebas si has abierto correctamente el archivo en escritura dos líneas antes.

Re: Contador de visitas en PHP

NotaPublicado: 2019-02-11 12:51 @577
por seafree
explorer escribiste:No compruebas si has abierto correctamente el archivo en escritura dos líneas antes.


¿Cómo realizo esa comprobación?

Re: Contador de visitas en PHP

NotaPublicado: 2019-02-11 13:23 @599
por seafree
MIra ese mismo script lo utilizo en un servidor físico con Centos 7 y funciona, lo quiero utilizar en una Máquina Virtual con Centos 7 y el contador no incrementa. No sé qué es lo que está pasando.

¿Cómo compruebo que el archivo de escritura se abrió correctamente?

Gracias.

Re: Contador de visitas en PHP

NotaPublicado: 2019-02-12 10:34 @482
por explorer
seafree escribiste:
explorer escribiste:No compruebas si has abierto correctamente el archivo en escritura dos líneas antes.


¿Cómo realizo esa comprobación?

De la misma manera que en la línea 4.

Re: Contador de visitas en PHP

NotaPublicado: 2019-02-12 10:58 @498
por seafree
explorer escribiste:No compruebas si has abierto correctamente el archivo en escritura dos líneas antes.


drwxr-xr-x. 2 root root 4096 Feb 12 09:49 php
-rwxrwxr-x. 1 apache apache 2 Feb 11 12:31 counter.txt --> ARCHIVO QUE GUARDA EL INCREMENTO (ARCHIVO DE ESCRITURA)


CÓDIGO:
$counter=(int )fread($handle,20);
fclose($handle);
echo " VALOR DEL CONTADOR: " . $counter . "<br>";
$counter++;
echo "<b><font face='arial' size='4' color='#C10434'>VISITAS: &nbsp;&nbsp;". $counter . " <br>" ;
$handle= fopen("counter.txt", "w" ) ;
---------------------------------------------------------------------------------------------------
echo substr(sprintf('%o', fileperms('/var/www/html/php')), -4);
echo substr(sprintf('%o', fileperms('/var/www/html/php/counter.txt')), -4);
---------------------------------------------------------------------------------------------------
fwrite($handle,$counter) ;
fclose ($handle) ;

¿Ves algo, explorer?

Gracias.

Re: Contador de visitas en PHP

NotaPublicado: 2019-02-12 12:40 @569
por seafree
Gracias por la atención, pero el problema era la seguridad que brinda Centos 7 en SELinux.