Retourner à la page d'accueil de TJS
 

3 - Le cas du script "Notation par curseur et smileys"

Pour utiliser le script notation par curseur, nous allons choisir la méthode du fichier texte qui fonctionne même si aucune base de données n'est installée.
Le principe est de créer un fichier texte de 2 lignes qui contient :
sur la première ligne le cumul de toutes les notes attribuées
sur la deuxième ligne le nombre total de notes
La note moyenne est obtenue par la division entre le cumul des notes et le nombre total de notes

1ère etape : Lire le fichier texte
2ème etape : Mettre à jour le cumul des notes et le nombre de notes et enregistrer le fichier

Explications du script :
Il faut d'abord définir le nom du fichier contenant les données
$nomfichier="note.txt";

Il faut vérifier la présence du fichier. Le fichier peut être absent lors de la première notation.
if (!file_exists($nomfichier)) {
  $cumul=0;
  $nbnotes=0;
}


Pour ouvrir le fichier en lecture (option "r" pour read)
$file=fopen($nomfichier,"r");

$file contient un pointeur sur le fichier
On lit les infos avec la fonction fread()
$cumul=fgets($file,100);
$nbnotes=fgets($file,100);

On referme le fichier
fclose($file);

On récupère la note donnée par le visiteur qui est contenue dans le champ caché "lanote"
$note=$HTTP_POST_VARS["lanote"];

On met à jour les données
$cumul=$cumul + $note;
$nbnotes++;
$moyenne=number_format($cumul/$nbnotes,1);

On ré-ouvre en écriture (option "w" pour write) pour écraser les données par les nouvelles notes obtenues
$file=fopen($nomfichier,"w");
fwrite($file,$cumul);
fwrite($file,$nbnotes);

On referme le fichier
fclose($file);

REM :
Il existe toujours plusieurs solutions pour un objectif. Ceci est une solution parmi d'autres.
Elle a l'avantage d'être simple, efficace et utilisable, même sans connaître parfaitement le PHP.
Je vous recommande quand même la lecture du tutorial Introduction au PHP


Le script complet :
<?php
// Nom du fichier contenant les données de la notation
$nomfichier="notation.txt";

if (!file_exists($nomfichier)) {
  // Première utilisation du script de notation
  $cumul=0;
  $nbnotes=0;
} else {
  $file=fopen($nomfichier,"r");
  // $file contient un pointeur sur le fichier

  // Lecture des lignes du fichier
  $cumul=fgets($file,100);
  $nbnotes=fgets($file,100);

  // On referme le fichier
  fclose($file);
}
// On récupère la note donnée par le visiteur qui est contenue dans le champ caché "lanote"
$note=$HTTP_POST_VARS["lanote"];

// On met à jour les données
$cumul=$cumul + $note;
$nbnotes++;

// Calcul de la note
$moyenne=number_format($cumul/$nbnotes,1);

// On ré-ouvre en écriture (option "w" pour write) pour écraser les données par la nouvelle note obtenue
$file=fopen($nomfichier,"w");
fwrite($file,$cumul);
fwrite($file,"\n");
fwrite($file,$nbnotes);

// On referme le fichier
fclose($file);
?>


Page précédente : 2 - Traiter les données en PHP  

Chercher une fonction, un objet, ...

Le 23/11/2017 08:28:07 sur php7 en 10.8 ms