PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 08-09-2009 19:02:19

gzg19
Membre
Inscription : 08-09-2009
Messages : 1

Dictionnaire php via fichiers

Bonjour a tous!
je souhaite faire un dictionnaire de mots, auquels on peut ajouter des synonymes.
Ces mots et synonymes sont enregistrés dans un fichier txt.
Par la suite, on pourra continuer d'ajouter des mots et des synonymes, rechercher un mot via la liste alphabétique et supprimer si l'on souhaite des mots ou synonymes.
J'ai travaillé sur le code  ci-dessous, mais le fait est qu'une partie de mon code s'affiche, je ne comprends pas.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
      <head>
      <title>Dictionnaire de Cuisine et synonymes</title>
      <link rel="stylesheet" type="text/css" media="all" href="style.css" />
</head>
      <body>

      <h1>Dictionnaire de Cuisine et synonymes</h1>
      <?
      set_magic_quotes_runtime(0);
      
      $fichier = 'dico_cuisine.txt';

      switch ($_POST['action'])
{
      case "ecrire":

      function formate_machaine($chaine)
        {

      $chaine = str_replace('\n', '', $chaine);
      $chaine = str_replace('|', '', $chaine);
      $chaine = strip_tags($chaine);
      $chaine = trim($chaine);
      $chaine = substr($chaine, 0, 100);

      return $chaine;
        }
      $mot = formate_machaine($_POST['mot']);
      $synonyme = formate_machaine($_POST['synonyme']);
      if($mot != '' and $synonyme != '')
      {
      if(filesize($fichier)>3000) $mode = 'w'; else $mode = 'a';

      $fp = fopen($fichier, $mode);
      fputs($fp, "$mot|$synonyme");
      fputs($fp, "\n");
      fclose($fp);

      echo '<p>Mot et synonyme ajoutés !</p>';
      echo '<p><a href="'.$_SERVER['PHP_SELF'].'">Retour</a></p>';
      }
      else
      {
      echo '<p>Erreur, veuillez remplir les deux champs !</p>';
      echo '<p><a href="'.$_SERVER['PHP_SELF'].'">Retour</a></p>';
      } break;
     
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="ecriture">

      <input type="hidden" name="action" value="ecrire" />

      <table summary="Ecriture dans le fichier" border="1">

      <tr class="titre">

      <td colspan="2">Ecriture dans le fichier</td>

      </tr>
      <tr>
      <td>Mot</td>
      <td>
      <input type="text" name="mot" size="30" maxlength="30" />
      </td> </tr>
      <tr> <td>Synonyme</td>
      <td>
      <input type="text" name="synonyme" size="30" maxlength="100" />
      </td> </tr>
      <tr> <td> </td>
      <td>
      <input type="submit" name="envoyer" value="Et Hop!" />
      </td></tr></table>
      </form>
      <table summary="Lecture du fichier">

      <tr class="titre">

      <td colspan="2">Lecture du fichier</td>

      </tr>
<?
      if(file_exists($fichier))
      {
      $fp = fopen($fichier, 'r');
      while (!feof($fp))
      {
      $ligne = fgets($fp, 4096);
      $liste = explode('|', $ligne);
      $mot = htmlentities($liste[0]);
      $synonyme = htmlentities($liste[1]);
      if(get_magic_quotes_gpc())
      {
      $mot = stripslashes($mot);
      $synonyme = stripslashes($synonyme);
      }
      if($mot != '' and $synonyme != '')
      {
      echo '<tr>';
      echo '<td>' . $mot . '</td>';
      echo '<td>' . $synonyme . '</td>';
      echo '</tr>';
      }
      }
      fclose($fp);
      }
      else
      {
      echo '<p>Fichier introuvable ! Lecture stoppée.</p>';
      }
?>
      </table>
<?
      break;
}
?>
      </body>
      </html>

Si vous avez une idée pour resoudre mon probleme big_smile
Un grand merci a toutes les bonnes volontés

Hors ligne

#2 09-09-2009 09:43:27

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Dictionnaire php via fichiers

Saluton,
Parce que les balises php c'est <?php ?> et non <? ?>.
Pourquoi faire ça via un fichier texte alors qu'une base de données t'offrirait toute la souplesse du SQL ?
Tu n'est pas obligé d'utiliser MySQL, SQLite est aussi disponible et ils sont tous les deux supportés par PDO.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums