[HS] programme compteur en php5

Le
andre_debian
Bonjour tous,

Je dsire crer un programme en php5 (langage Web Libre) :
un compteur de 1 10 qui affiche d'abord 1,
puis le 1 disparait et s'affiche 2 et ainsi de suite
jusqu' 10.

J'ai tent plusieurs solutions par des boucles,
j'ai une attente de 10 secondes,
qui affiche ensuite d'un coup : 1 2 3 4 5 6 7 8 9 10,
ce qui videmment ne va pas.

Merci d'une aide, piste de la part des spcialistes du php.

Andr
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gr
Le #26419873
Salut
PHP est un langage interprété côté serveur. Par conséquent tu es obligé
de recharger ton PHP en passant une var par $_POST ou $_GET pour
incrémenter ton compteur.
Dynamiquement, sans recharger la page, faut voir avec JS.
Le mercredi 07 décembre 2016 à 13:10 +0100,
a écrit :
Bonjour à tous,
Je désire créer un programme en php5 (langage Web Libre) :
un compteur de 1 à 10 qui affiche d'abord 1,
puis le 1 disparait et s'affiche 2 et ainsi de suite
jusqu'à 10.
J'ai tenté plusieurs solutions par des boucles,
j'ai une attente de 10 secondes,
qui affiche ensuite d'un coup : 1 2 3 4 5 6 7 8 9 10,
ce qui évidemment ne va pas.
Merci d'une aide, piste de la part des spécialistes du php.
André


--
Grégory Reinbold
Kelleter Alain
Le #26419879
--=_3d27f1509484265ba33c90a50ce77e0a
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
En principe pour afficher un compteur (comme dans ton exemple) sans
rafraîchir la page, il te faudrait utiliser un peu de javascript pour
modifier le DOM de la page sans rafraîchissement.
Mais si tu ne souhaites pas utiliser de javascript il est éventuellement
possible de faire quelque chose. Cela va t'obliger à rafraîchir la page
mais cela aura le mérite de fonctionner:
Exemple sur : index.php
<?php
// Initialisations
$cpt = @$_GET['cpt'];
if(!isset($cpt))
$cpt = 1;
else
$cpt = $_GET['cpt'];
// Condition sur le compteur : 10 iitérations max
if($cpt >= 11){
echo 'Game Over';
exit();
}else{
// Affichage du compteur
echo $cpt;
$cpt++;
// Refresh de la page avec le compteur en paramètre
header('Refresh: 1; index.php?cpt='.$cpt);
}
?>
Ce script à l'arrache est donné à titre indicatif pour te mettre sur une
piste si tu souhaites te passer de javascript mais sans javascript il te
faudra rafraîchir ta page.. .
Amicalement,
Alain
Le 2016-12-07 13:10, a écrit :
Bonjour à tous,
Je désire créer un programme en php5 (langage Web Libre) :
un compteur de 1 à 10 qui affiche d'abord 1,
puis le 1 disparait et s'affiche 2 et ainsi de suite
jusqu'à 10.
J'ai tenté plusieurs solutions par des boucles,
j'ai une attente de 10 secondes,
qui affiche ensuite d'un coup : 1 2 3 4 5 6 7 8 9 10,
ce qui évidemment ne va pas.
Merci d'une aide, piste de la part des spécialistes du php.
André

--=_3d27f1509484265ba33c90a50ce77e0a
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8
<html><head><meta http-equiv="Content-Type" content="text/html; charset =UTF-8" /></head><body style='font-size: 10pt'>
<p>&lt;?php</p>
<p>?&gt;</p>
<p>Amicalement,</p>
<p>Alain</p>
<p>
</p>

</body></html>
--=_3d27f1509484265ba33c90a50ce77e0a--
Yves Rutschle
Le #26419878
Réponse un peu taquine:
On Wed, Dec 07, 2016 at 01:10:43PM +0100, wrote:
Je désire créer un programme en php5 (langage Web Libre) :

php n'est pas un "langage Web". Un "language Web", c'est
sans doute ce qui est interprété par un navigateur, c.a.d
HTML et ses 2000 variantes, CSS et Javascript,
principalement.
un compteur de 1 à 10 qui affiche d'abord 1,
puis le 1 disparait et s'affiche 2 et ainsi de suite
jusqu'à 10.

Par exemple, fichier try.php:
<?php
for ($i = 1; $i <= 10; $i++) {
print "r$i";
sleep(1);
}
print "n";
Puis on le lance en console:
tmp$ php -f try.php
[...]
Y.
andre_debian
Le #26419885
On Wednesday 07 December 2016 14:36:29 Kelleter Alain wrote:
En principe pour afficher un compteur (comme dans ton exemple) sans
rafraîchir la page, il te faudrait utiliser un peu de javascript pour
modifier le DOM de la page sans rafraîchissement.
Mais si tu ne souhaites pas utiliser de javascript il est éventuellement
possible de faire quelque chose. Cela va t'obliger à rafraîchir la pa ge
mais cela aura le mérite de fonctionner:
Exemple sur : index.php
<?php
// Initialisations
$cpt = @$_GET['cpt'];
if(!isset($cpt))
$cpt = 1;
else
$cpt = $_GET['cpt'];
// Condition sur le compteur : 10 iitérations max
if($cpt >= 11){
echo 'Game Over';
exit();
}else{
// Affichage du compteur
echo $cpt;
$cpt++;
// Refresh de la page avec le compteur en paramètre
header('Refresh: 1; index.php?cpt='.$cpt);
}
?>
Ce script à l'arrache est donné à titre indicatif pour te mettre su r une
piste si tu souhaites te passer de javascript mais sans javascript il te
faudra rafraîchir ta page.. .
Amicalement, Alain

Merci Alain et à tous ceux qui m'ont répondu,
Ton script php5 marche à merveille, je viens de le tester !
Effectivement, le langage php s'éxecute depuis le serveur,
il faut donc jongler (Refresh page) ou passer par javascript
ou Ajax.
Je le garde précieusement pour le mettre en oeuvre plus tard,
telle une attente d'une page un peu longue à venir...
Encore merci.
André
PS : cherches tu un emploi de Webmaster orienté PHP ?
andre_debian
Le #26419891
On Wednesday 07 December 2016 18:06:43 Yves Rutschle wrote:
Réponse un peu taquine:
On Wed, Dec 07, 2016 at 01:10:43PM +0100, wro te:
Je désire créer un programme en php5 (langage Web Libre) :

php n'est pas un "langage Web". Un "language Web", c'est
sans doute ce qui est interprété par un navigateur, c.a.d
HTML et ses 2000 variantes, CSS et Javascript,
principalement.

J'aurais dû alors écrire "langage Libre pour serveur Web",
désolé.
un compteur de 1 à 10 qui affiche d'abord 1,
puis le 1 disparait et s'affiche 2 et ainsi de suite
jusqu'à 10.

Par exemple, fichier try.php:
<?php
for ($i = 1; $i <= 10; $i++) {
print "r$i";
sleep(1);
}
print "n";
Puis on le lance en console:
tmp$ php -f try.php

Réponse un peu taquine à mon tour :
c'était le programme que j'avais écrit, et résultat :
1 2 3 4 5 6 7 8 9 10
au bout de 10 secondes.
:-)
Le programme d'Alain fonctionne au poil,
comme dans mon cahier des charges.
Bonne soirée.
André
Yves Rutschle
Le #26419901
On Wed, Dec 07, 2016 at 08:48:46PM +0100, wrote:
J'aurais dû alors écrire "langage Libre pour serveur Web",
désolé.

Non non, ce que je veux dire c'est que PHP n'a pas de
rapport avec le Web. C'est un langage généraliste qui sait
tout faire, et dont il se trouve qu'il est souvent utilisé
côté serveur Web, mais il n'y a rien qui limite PHP à ça.
Réponse un peu taquine à mon tour :
c'était le programme que j'avais écrit, et résultat :
1 2 3 4 5 6 7 8 9 10
au bout de 10 secondes.

En y arrivant à travers un serveur Web, c'est normal (le
serveur attend la fin de l'exécution du programme PHP avant
d'envoyer la réponse globale au navigateur.
Le programme d'Alain fonctionne au poil,
comme dans mon cahier des charges.

Je ne sais pas exactement ce que tu cherches à faire, mais
si tu as besoin d'interactivité je t'encouragerais à
regarder du côté de frameworks plus complet, voire
d'applications qui existent déjà (des Wordpress et autres).
Y.
Ph. Gras
Le #26419906
Hello la liste !
Javascript me semble plus adapté pour gérer des animations sur un laps de temps donné
sur une page Web.
Cette méthode par exemple est très souvent utilisée pour créer des compteurs :
https://developer.mozilla.org/fr/docs/Web/API/WindowTimers/setInterval
Et en plus, ça ne pompe pas de ressource sur le serveur, uniquement chez le client :-P
Bonne journée,
Ph. Gras=
andre_debian
Le #26419927
On Thursday 08 December 2016 08:44:13 Yves Rutschle wrote:
Non non, ce que je veux dire c'est que PHP n'a pas de
rapport avec le Web. C'est un langage généraliste qui sait
tout faire, et dont il se trouve qu'il est souvent utilisé
côté serveur Web, mais il n'y a rien qui limite PHP à ça :

Suite à ce que tu as écrit, je préfère répondre afin que
personne ne soit trompée sur la ML :-)
Sauf erreur, je ne vois pas comment utiliser un script PHP
sans passer par un navigateur pour le résultat.
Le PHP ne s'installe qu'avec un serveur Web (apache, nginx...).
Sans celui-ci, pas de php !
Écrire que "le php n'a pas de rapport avec le Web",
me parait être une erreur de taille !
Le php est un langage Web.
(son concurrent est ASP qui s'installe sur Windows-Server)
En y arrivant à travers un serveur Web, c'est normal (le
serveur attend la fin de l'exécution du programme PHP avant
d'envoyer la réponse globale au navigateur.
Je ne sais pas exactement ce que tu cherches à faire :

Comme bien indiqué dans mon 1er mail,
faire défiler des chiffres de 1 à 10, l'un après l'autre.
mais si tu as besoin d'interactivité je t'encouragerais à
regarder du côté de frameworks plus complet, voire
d'applications qui existent déjà (des Wordpress et autres) :

Pas de CMS.
Le PHP est un langage qui permet, entre autres, l'interactivité
d'un site Web, c'est souvent pour cela qu'on l'utilise.
Bonne soirée.
André
Ph. Gras
Le #26419932
Hello !
Suite à ce que tu as écrit, je préfère répondre afin que
personne ne soit trompée sur la ML :-)
Sauf erreur, je ne vois pas comment utiliser un script PHP
sans passer par un navigateur pour le résultat.

https://packages.debian.org/fr/jessie/php5-cli
Ph. Gras=
fra-duf-no-spam
Le #26419934
Le 17143ième jour après Epoch,
andre debian écrivait:
Sauf erreur, je ne vois pas comment utiliser un script PHP
sans passer par un navigateur pour le résultat.

Essaye ça en ligne de commande :
php <<<"<?php printf( '42'); ?>"
Le PHP ne s'installe qu'avec un serveur Web (apache, nginx...).
Sans celui-ci, pas de php !

Ah? Comment es-tu si sûr de ça ?
Écrire que "le php n'a pas de rapport avec le Web",
me parait être une erreur de taille !

C'est vrai, voir l'article sur le PHP dans Wikipedia
Le php est un langage Web.

Non, c'est un langage.
Le PHP est un langage qui permet, entre autres, l'interactivité
d'un site Web, c'est souvent pour cela qu'on l'utilise.

Pas tout à fait. Il permet le dynamisme d'un site web. C'est pour à §a
qu'il a été inventé d'ailleurs.
Bonne soirée.

Idem.
--
Try to relax and enjoy the crisis.
-- Ashleigh Brilliant
Publicité
Poster une réponse
Anonyme