Sumatoria de numero

  • Autor Autor eic2010
  • Fecha de inicio Fecha de inicio
E

eic2010

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
PHP:
<?php
$valor = 1;
print "<p>" . ++$valor . "</p>\n";
?>


Este código suma 1+1 y el resultado es 2, pero yo lo que estoy necesitando es que cada vez que se cargue en la web sume correlativamente y al llegar a 5 se reinicia a 1 por ejemplo :

ejemplo entra juan a la web y ve el numero 1
luego entra pedro a la web y vería el numero 2
luego entra celesta a la web y ve el numero 3
asi hasta mostrar el numero 5 y luego volvería a empezar a mostrar el numero 1
como lo puedo hacer?
 
Pues creo que podrias almacenar el valor en un fichero .txt (no creo que sea necesario usar base de datos para algo tan simple) y en cada visita/petición a la página lees el valor numerico que hay en el .txt, le sumas +1 y guardas el nuevo valor en el mismo archivo. Y lo de reiniciar cada vez que llegue a cinco lo haces con un simple if().

PHP:
<?php

$archivo = 'sumatoria.txt';
$valorActual = file_get_contents ($archivo);
$nuevoValor;
if (intval($valorActual) < 5) {
	$nuevoValor = intval($valorActual)+1;
}
else{
	$nuevoValor = '1';
}

file_put_contents($archivo, $nuevoValor);
print "<p>" . $nuevoValor . "</p>\n";

?>
 
[MENTION=182397]eic2010[/MENTION]

Tienes que guardar el valor en algún lugar y leerlo cada vez que cargue.

Ejemplo:


Pues creo que podrias almacenar el valor en un fichero .txt (no creo que sea necesario usar base de datos para algo tan simple) y en cada visita/petición a la página lees el valor numerico que hay en el .txt, le sumas +1 y guardas el nuevo valor en el mismo archivo. Y lo de reiniciar cada vez que llegue a cinco lo haces con un simple if().

PHP:
<?php

$archivo = 'sumatoria.txt';
$valorActual = file_get_contents ($archivo);
$nuevoValor;
if (intval($valorActual) < 5) {
	$nuevoValor = intval($valorActual)+1;
}
else{
	$nuevoValor = '1';
}

file_put_contents($archivo, $nuevoValor);
print "<p>" . $nuevoValor . "</p>\n";

?>
 
Desde ya gracias por responder yo utilizo wordpress lo podría guardar en function.php? porque este código lo voy a utilizar en 4 lugares de la web y tendría que crear 4 sumatoria.txt y eso no hará mas lenta la carga?
 
Puedes usar una sesion o usar globals para guardar el valor sin necesidad de archivos.
 
lo que encontré con globals es esto pero también solo cuenta

PHP:
<?php
$a = 1;
$b = 2;

function Suma()
{
    global $a, $b;

    $b = $a + $b;
}

Suma();
echo $b;
?>
 
lo que encontré con globals es esto pero también solo cuenta

PHP:
<?php
$a = 1;
$b = 2;

function Suma()
{
    global $a, $b;

    $b = $a + $b;
}

Suma();
echo $b;
?>

usa sesiones...
PHP:
<?php 
session_start();
$_SESSION['a']++;
echo $_SESSION['a'];
if($_SESSION['a']>5) $_SESSION['a']=0;
 
Lo probé pero me sale el 1 y queda solo en 1
 
Lo probé pero me sale el 1 y queda solo en 1

cual probaste?... el codigo que te pase funciona bien... pero ya vi (haybia leido cualquier verdura), vos no necesitas sessiones ni globales... necesitas almacenar los valores en el server, sea una bd o un archivo de texto (mas facil este ultimo)
PHP:
<?php
$A = @file_get_contents("contador.txt");
$A++;
echo $A;
if($A>=5) $A=0;
@file_put_contents("contador.txt",$A);
 
cual probaste?... el codigo que te pase funciona bien... pero ya vi (haybia leido cualquier verdura), vos no necesitas sessiones ni globales... necesitas almacenar los valores en el server, sea una bd o un archivo de texto (mas facil este ultimo)
PHP:
<?php
$A = @file_get_contents("contador.txt");
$A++;
echo $A;
if($A>=5) $A=0;
@file_put_contents("contador.txt",$A);

tiene que usar sesiones globales, recuerda que la sesion se asigna a cada visitante.
 
Muchas gracias!!! en wordpress no se podrá ponerlo function.php en vez de utilizar un archivo de texto
 
Muchas gracias!!! en wordpress no se podrá ponerlo function.php en vez de utilizar un archivo de texto

Creo que puedes usar add_option(); para agregarlo y get_option(); para extraerlo! :encouragement:
 
Muchas gracias!!! en wordpress no se podrá ponerlo function.php en vez de utilizar un archivo de texto

crea una funcion en functions.php y le colocas eso... y luego lo usas en donde quieras del theme...
 
Bueno ya muchos te ayudaron yo lo realizaría de este modo:

Copiar en el functions:

PHP:
function read_textfile($patch){
    $fp = fopen($patch,"r");
    $data = '';
    if(flock($fp, LOCK_SH)){
        $data = fread($fp,filesize($patch));
        flock($fp,LOCK_UN);
    }
    fclose($fp);
    return $data;
}
function write_textfile($patch,$valor){
    $fp = fopen($patch,"w");
    if(flock($fp, LOCK_EX)){
        fwrite($fp,$valor);
        flock($fp,LOCK_UN);
    }
    fclose($fp);
}
function my_contador(){
    $numero =(int)read_textfile(TEMPLATEPATH . '/' . "contador.txt");
    $temporal = ($numero >= 5 ? 1 : $numero + 1);
    write_textfile(TEMPLATEPATH . '/' . "contador.txt", $temporal);
    return $temporal;
}

Bueno y lo muestras en la entrada como quieras por ejemplo:

PHP:
<?php echo "hola numero: " . my_contador(); ?>
 
Les cuento que he probado todos y todos me dan 1, recargo la web y me sigue dando 1, puede ser que tenga que habilitar permisos 777 en ssh para el archivo "contador.txt" ?
 
Les cuento que he probado todos y todos me dan 1, recargo la web y me sigue dando 1, puede ser que tenga que habilitar permisos 777 en ssh para el archivo "contador.txt" ?

usas algún plugin de cache??? por que si es así tocaría por ajax y eso ya es otro cuento.
 
No no me gusta usar plugins por ahí tendré que especificar la caché de navegador en htaccess ? porque es un proyecto nuevo y todavía hay cosas que no realice.
 
es como hacer un contador de vistas pero cuando llegue a 5 se reinicie de nuevo
 
No no me gusta usar plugins por ahí tendré que especificar la caché de navegador en htaccess ? porque es un proyecto nuevo y todavía hay cosas que no realice.

Pues si usas wordpress tendrás que usar si o si un plugin de cache por que cuando empiezas a tener muchas visitas matas el hosting, no se por que no te funciona bro debe haber algún problema que desconozco :/
 
A mi me funciono esto!

PHP:
function myContador(){
	$get = get_option('MyContador', 0);
	$get = $get == 5 ? 0 : $get;
	update_option('MyContador', $get + 1);
	return get_option('MyContador');
}
 

Temas similares

U
Respuestas
4
Visitas
115
Usuario eliminado 319153
U
joremanhd
Respuestas
1
Visitas
79
mvpy1912
mvpy1912
Atrás
Arriba