Le logo de PHP 5  PHP 5 Cours et exercices  2e Edition La couverture du livre PHP 5

Jean ENGELS       Editions Eyrolles

Chapitre 11: Les fichiers

Exercice 1

Créer un fichier pour enregistrer la date de chaque connexion à votre site. Procéder ensuite à la lecture des données puis calculer des statistiques sur ces dates.

<?php
//Ecriture des dates
$idfile=fopen("connex.txt","a");
$date=time();;
flock($idfile,2);
fwrite($idfile,$date);
flock($idfile,3);
fclose($idfile);
//Lecture des données
$idfile=fopen("connex.txt","r");
flock($idfile,1);
$i=1;
while($date=fgets($idfile,11))
{
$tab[]=$date;
}
//Elimination des doublons
$tabstat=array_values(array_unique($tab));
//Affiche les dates et les heures des connexions
foreach($tabstat as $valeur)
{
echo date("d/M H:m:s",$valeur),"<br />";
}
flock($idfile,3);
fclose($idfile);
?>

	
Voir le résultat

Exercice 2

<?php
$nav = $_SERVER['HTTP_USER_AGENT'];
$explorer = 'MSIE';
$pos = strpos($nav, $explorer);
// Notez l'utilisation de ===. Un simple == ne donnerait pas le résultat escompté
// car la lettre 'a' est à la position 0 (la première).
if ($pos !== false)
{
echo "Navigateur Internet Explorer";
}
else
{
echo "Navigateur Mozilla ou Netscape";
}
?>

	
Voir le résultat

Exercice 3

En vous inspirant de l’exemple 11-5 créer un livre d’or qui n’affiche que les cinq derniers avis donnés par les visiteurs du site.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Le livre est d'or </title>
</head>
<body style="background-color: #ffcc00;">
<form action="" method="post" >
<fieldset>
<legend><b>Donnez votre avis sur PHP 5 ! </b></legend>
<b>Nom :  <input type="text" name="nom" width="60" /> <br />
Mail :  <input type="text" name="mail" width="60" /> <br />
Vos commentaires sur le site</b><br />
<textarea name="comment" rows="10" cols="50">Ici </textarea> <br />
<input type="submit" value="Envoyer " name="envoi" />
<input type="submit" value="Afficher les avis" name="affiche" />
</fieldset>
</form>
<?php
$date= time();
//ENREGISTREMENT
if(isset($_POST['envoi']))
{
 if(isset($_POST['nom']) && isset($_POST['mail']) && isset($_POST['comment']))
 {
  echo "<h2>",$_POST['nom']," merci de votre avis </h2> ";
  if(file_exists("livre2.txt") )
  {
   if($id_file=fopen("livre2.txt","a"))
   {
    flock($id_file,2);
    fwrite($id_file,$_POST['nom'].":".$_POST['mail'].":".$date.":".$_POST['comment']."\n");
    flock($id_file,3);
    fclose($id_file);
   }
   else
   { echo "fichier inaccessible";
   }
  }
  else
  {
   $id_file=fopen("livre2.txt","w");
   fwrite($id_file,$$_POST['nom'].":".$$_POST['mail'].":".$date.":".$$_POST['comment']."\n");
   fclose($id_file);
  }
 }
}
//LECTURE DES DONNES
if(isset($_POST['affiche']))
{
 if($id_file=fopen("livre2.txt","r"))
 {
  echo "<table border=\"2\"> <tbody>";
  $i=0;
  while($tab=fgetcsv($id_file,200,":") )
  {
   $tab5[$i]=$tab;
   $i++;
  }
  $tab5=array_reverse($tab5);
  echo "<hr />";
  for($i=0;$i<5;$i++)
  {
   echo "<tr> <td>",$i+1 ,": de: ".$tab5[$i][0]." </td> <td> <a href=\"mailto:".$tab5[$i][1]." \" > ".$tab5[$i][1]."</a></td> <td>le: ",date("d/m/y H:i:s", $tab5[$i][2])," </td></tr>";
   echo "<tr> <td colspan=\"3\">", stripslashes($tab5[$i][3]),"</td> </tr> ";
  }
  fclose($id_file);
 }
 echo "</tbody></table> ";
}
else{ echo "<h2>Donnez votre avis puis cliquez sur 'envoyer' !</h2> ";}
?>
</body>
</html>
	
Voir le résultat