IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraction d'un numéro a partir d'un fichier texte


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut Extraction d'un numéro a partir d'un fichier texte
    Bonjour,
    Pour la réalisation d'une petite application de gestion de demandes d'intervention sur les équipements informatiques d'une entreprise, j'ai mis au point un formulaire mis à disposition des employés à travers un site intranet.

    Le formulaire contiendra :
    -Le numéro d'intervention
    -La date
    -L'heure
    -La Structure émettrice
    -Le Service
    -LA Section
    -LE Nom du demandeur (Utilisateur)
    -LE Numéro de téléphone
    -LE Numéro (code) du bureau
    -LE Type Equipement
    -La Catégorie de l'intervention
    -LA Description de l'anomalie ou de la panne

    Jusque là tout va bien, l'insertion des données du formulaire dans la table Demandes_intervention se fait , par contre l'utilisateur n'a pas a saisir le numéro de la demande d'intervention, car je voudrais que le numéro d'intervention figure dans le EDIT à l'ouverture de la page.

    Ce numéro d'intervention devra être extrait d'un fichier texte "numero_demande.txt" dans lequel on sauvegarde l'année en cours et le numéro de la demande.
    on devra utiliser une fonction affiche_demande() pour afficher le numéro de la demande en cours lors du chargement du formulaire
    Et une 2ème lorsque l'insertion au niveau de la table est réalisée pour mettre à jour le numéro de la demande dans le fichier texte.

    L'idée est là, mais je n'arrive pas à l'implémenter en php...

    Merci de bien vouloir me mettre sur la voie !!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    l'insertion des données du formulaire dans la table Demandes_intervention se fait
    Tu utilise donc un BDD?

    Je comprend pas bien pourquoi utiliser un fichier texte? J'ai peu être pas bien cerné le probleme, mais pourquoi ne pas utiliser une BDD sur l'ensemble du systême?

    De plus pourquoi sauvegarder l'année en cours dans un fichier texte alors qu'une simple fonction php permet de la retrouver?


  3. #3
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    J'ai réussi à bricoler la fonction pour extraire un numéro d'intervention depuis un fichier texte, voici le code du script PHP "affiche_demande.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function affiche_demande(){
    $fp = fopen("numero_demande.txt","r"); // On ouvre le fichier en lecture
    $annee_fichier = fgets($fp,255); // On récupère le premier nombre dans le
    fichier
    $numero=fgets($fp,255); // On récupère le second nombre dans le fichier
    $annee=date("Y");//On récupère l'année en cours
    if($annee_fichier<$annee)//Si la dernière demande a été effectué l'année
    //précédente la demande actuelle devient la première de l'année en cours.
    $numero=1;
    else
    $numero=$numero+1; // On incrémente le numéro de la demande(+1)
    fclose($fp); // 6.On ferme le fichier
    return $annee."_".$numero ;
    }
    ?>
    Maintenant il ne me reste plus qu'à lui faire appel lors du chargement du formulaire dont le code est celui ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>formulaire GDI</title>
    <style type="text/css">
        <!--
        body {
    	background: #666666;
    	margin: 0; /* il est conseillé de mettre à zéro la marge et le remplissage de l'élément body, pour tenir compte des différentes valeurs par défaut des navigateurs */
    	padding: 0;
    	text-align: center; /* ce paramétrage centre le conteneur dans les navigateurs IE 5.x. Le texte est ensuite aligné à gauche (valeur par défaut) dans le sélecteur #container */
    	color: #000000;
    	background-color: #FFFFFF;
    	background-image: url(img/gris_005.jpg);
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 9pt;
        }
        .oneColLiqCtrHdr #container {
    	width: 862px;  /* ce paramétrage crée un conteneur dont la largeur est 80 % de celle du navigateur */
    	background: #FFFFFF;
    	margin: 0 auto; /* les marges automatiques (et dotées d'une largeur positive) centrent la page */
    	border: 1px none #000000;
    	text-align: left; /* ce paramétrage annule le paramètre text-align: center de l'élément body. */
        }
        .oneColLiqCtrHdr #header {
        	background: #DDDDDD; 
        	padding: 0 10px 0 20px;  /* ce remplissage correspond à l'alignement à gauche des éléments des div qui apparaissent en dessous. Si, au lieu de texte, c'est une image qui est insérée dans l'élément #header, il est conseillé de supprimer le remplissage. */
        }
        .oneColLiqCtrHdr #header h1 {
        	margin: 0; /* la mise à zéro de la marge du dernier élément du div #header permet d'éviter une disparition de la marge (espace inexplicable entre les éléments div). Si l'élément div est entouré d'une bordure, cette précaution n'est pas nécessaire, car la bordure évite également la disparition de la marge */
        	padding: 10px 0; /* l'utilisation de remplissage, au lieu d'une marge, permet d'éloigner l'élément des bords de l'élément div */
        }
        .oneColLiqCtrHdr #mainContent {
        	padding: 0 20px; /* ne pas oublier que le remplissage est l'espace à l'intérieur du cadre de l'élément div, alors que la marge est l'espace à l'extérieur de celui-ci */
        	background: #FFFFFF;
        }
        .oneColLiqCtrHdr #footer {
    	padding: 0 10px;
    	background-color: #D2DCE8;
        } 
        .oneColLiqCtrHdr #footer p {
        	margin: 0; /* la mise à zéro de la marge du premier élément du pied de page permet d'éviter une possible disparition de la marge (espace entre les éléments div) */
        	padding: 10px 0; /* l'utilisation d'un remplissage pour cet élément crée un espace, tout comme une marge l'aurait fait, mais en évitant le risque de disparition de la marge */
        }
    .Style1 {color: #336699}
    .Style2 {
    	font-size: 22px
    }
    #apDiv1 {
    	position:absolute;
    	left:100px;
    	top:56px;
    	width:173px;
    	height:17px;
    	z-index:1;
    }
    #apDiv2 {
    	position:absolute;
    	left:359px;
    	top:29px;
    	width:362px;
    	height:120px;
    	z-index:2;
    }
        -->
        </style>
    <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
    </head>
     
    <body class="oneColLiqCtrHdr">
    <div id="container">
      <div>
        <table width="200" border="0" bgcolor="#C2D1F3">
          <tr>
            <td><img src="img/gdi.png" width="204" height="122" /></td>
            <td><script type="text/javascript">
    AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','450','height','122','title','banniere','src','Flash/gdiban','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','Flash/gdiban' ); //end AC code
    </script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="450" height="122" title="banniere">
              <param name="movie" value="Flash/gdiban.swf" />
              <param name="quality" value="high" />
              <embed src="Flash/gdiban.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="450" height="122"></embed>
            </object></noscript></td>
            <td><img src="img/sh.jpg" width="198" height="122" /></td>
          </tr>
        </table>
      </div>
      <div id="mainContent">
            <h1 align="center" class="Style1 Style2">&nbsp;</h1>
            <h1 align="center" class="Style1 Style2">Formulaire de demande d'intervention auprès du service informatique</h1>
            <p align="center" class="Style1 Style2">&nbsp;</p>
            <table width="765" border="1" align="center">
              <tr>
                <td width="543"><form action="insertion_gdi.php" method="post">
      <label>
      <strong>Numéro d'intervention:</strong> 
      <input type="text" name="num_int" id="num_int" />
      <p><strong>Date :</strong>
          <input name="date" type="text" id="date" size="10" />
      (Exemple : 15-01-2009)</p>
      </label>
      <label><strong>Heure :</strong>
      <input name="heure" type="text" id="heure" size="6" />
      </label>
      <p>
        <label><strong>Structure :</strong>
        <select name="structure" id="structure">
          <option value="ADM">adm</option>
          <option value="APPROS">appros</option>
          <option value="SIG">sig</option>
          <option value="SPM">spm</option>
          <option value="MGX">mgx</option>
          <option value="FINANCES">finances</option>
          <option value="DIRECTION">direction</option>
          <option value="HSE">hse</option>
          <option value="MAINTENANCE">g</option>
          <option value="TECHNIQUE">technique</option>
          <option value="DRH">drh</option>
            </select>
        </label>
      </p>
      <p>
        <label><strong>Service :</strong>
        <select name="service" id="service">
          <option value="Informatique">Informatique</option>
          <option value="Organisation">Organisation</option>
          <option value="Documentation">Documentation</option>
                  </select>
        </label>
      </p>
      <p>
        <label><strong>Section</strong>
    :    
    <select name="section" id="sec">
      <option value="achats locaux">achats locaux</option>
        </select>
        </label>
      </p>
     
      <p>
        <label><strong>Nom du demandeur (Utilisateur):</strong>
        <input type="text" name="demandeur" id="demandeur" />
        </label>
      </p>
      <p><strong>Numéro de téléphone :</strong>
        <input name="tel" type="text" id="numtel" size="6" />
    </p>
      <p><strong>Numéro (code) du bureau:</strong> 
        <input type="text" name="code_bureau" id="numbureau" />
      </p>
      <p>
        <label><strong>Type Equipement : 
        <select name="type_equip" id="type">
          <option value="uc">Unité centrale</option>
          <option value="ecran">Ecran</option>
          <option value="onduleur">Onduleur</option>
          <option value="Imprimante">imprimante</option>
          <option value="Scanner">Scanner</option>
          <option value="autre">Autres</option>
        </select>
        <br />
        <br />
        Catégorie de l'intervention :</strong>
        <select name="cat_interv" id="cat">
          <option value="support">Support(Maintenance)</option>
          <option value="réseau">Réseau</option>
          <option value="dba">DBA (Bases de données)</option>
        </select>
        </label>
      </p>
      <p>
        <label><strong>Description de l'anomalie ou de la panne
        </strong>
        :
        <textarea name="description" id="description" cols="75" rows="7"></textarea>
        </label>
      </p>
      <p align="center">
        <input type="submit" name="submit" id="okbtn" value="Valider" />
         <input type="submit" name="submit" id="anulbtn" value="Annuler" />
      </p>
                </form></td>
              </tr>
            </table>
        <p align="center"><img src="img/exclam.jpg" width="30" height="26" /> En validant votre saisie, Vous envoyez un mail au personnel concerné</p>
            <p align="center" class="Style1 Style2">&nbsp;</p>
     
      <!-- fin de #mainContent --></div>
          <div id="footer">
            <p align="center">Copyright © 2009 SONATRACH AVAL | Tous droits réservés.</p>
            <p align="center">Service Infomatique | Webmasters RA1K.</p>
          <!-- fin de #footer --></div>
    <!-- fin de #container --></div>
    </body>
    </html>
    Merci de m'aider car je ne sais pas comment l'intégrer pour que sa marche, il faudra que le input "num_int" reçoive le numéro extrait du fichier texte grace à la fonction ci dessus...

    je sombre SOS

  4. #4
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par shadypierre Voir le message
    Tu utilise donc un BDD?

    Je comprend pas bien pourquoi utiliser un fichier texte? J'ai peu être pas bien cerné le probleme, mais pourquoi ne pas utiliser une BDD sur l'ensemble du systême?

    De plus pourquoi sauvegarder l'année en cours dans un fichier texte alors qu'une simple fonction php permet de la retrouver?

    La BDD sert à la sauvegarde de toutes les demandes d'intervention saisies à travers le formulaire , reste le champs Numéro de la demande d'intervention qui doit apparaître automatiquement dans le champs de texte pour que l'utilisateur ait connaissance du numéro de la demande d'intervention sans qu'il ai à la saisir ou à la changer, ensuite quand il valide le formulaire, toutes les données sont insérées au niveau de la BDD.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    • Mais ton intervention dans ta base posséde bien une clé primaire qui doit sans doute etre un chiffre, pourquoi ne pas l'utiliser comme numero d'intervention?
      Au chargement du formulaire tu récupère un id inutilisé!

    • Sinon pour le formulaire tu met un value ="<?php echo affiche_demande(); ?>" dans le input num_int
      Par contre la meme si ton formulaire n'est pas validé à chaque fois ça va t'ajouter un +1 au numero d'intervention!

  6. #6
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par shadypierre Voir le message
    • Mais ton intervention dans ta base posséde bien une clé primaire qui doit sans doute etre un chiffre, pourquoi ne pas l'utiliser comme numero d'intervention?
      Au chargement du formulaire tu récupère un id inutilisé!

    • Sinon pour le formulaire tu met un value ="<?php echo affiche_demande(); ?>" dans le input num_int
      Par contre la meme si ton formulaire n'est pas validé à chaque fois ça va t'ajouter un +1 au numero d'intervention!
    La base de données est censée être vide à la première validation du formulaire (La première demande d'intervention)

    j'utilise aussi la fonction suivante aprés validation du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?
    function numero_demande(){
    $fp = fopen("numero_demande.txt","r"); // On ouvre le fichier en lecture
    $annee_fichier = fgets($fp,255); // On récupère le premier nombre dans le
    fichier
    $numero=fgets($fp,255); // On récupère le second nombre dans le fichier
    $annee=date("Y");//On récupère l'année en cours
    if($annee_fichier<$annee)//Si la dernière demande a été effectué l'année
    //précédente la demande actuelle devient la première de l'année en cours.
    {
    $numero=1;
    }
    else
    $numero=$numero+1; // On incrémente le numéro de la demande
    fclose($fp); // On ferme le fichier
    $fp = fopen("numero_demande.txt","w");//On écrase le contenu du fichier et on
    //l'ouvre en ecriture
    fseek($fp,0); // On se place en début de fichier
    fputs($fp,$annee); // On écrit dans le fichier l'année en cours
    fputs($fp,"\n");//On retourne à la ligne
    fputs($fp,$numero);//On écrit le numéro de la demande
    fclose($fp); // On ferme le fichier
    return $annee."_".$numero ;
    }
    ?>
    JE me demandais, est ce que l'appel à la fonction affiche_demande() peu se faire alors que la fonction est définie dans un fichier indépendant ?? c'est à dire que le formulaire c'est : gdi_interface.html et celui de la fonction c'est : affiche_demande.php

    merci

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    Tu renomme ta page de formulaire de gdi_interface.html en gdi_interface.php et tu ajoute en haut du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    // Fichier fonction
    include 'affiche_demande.php';
    ?>
    Tu pourra ensuite utliser toutes les fonction défini dans affiche_demande.php dans ta page de formulaire.

    Cependant le probleme que je t'ai dis reste entier tu ajoutera à chaque appel de la page de formulaire un +1 dans ton fichier texte, il faut faire deux fonction, une affiche_numDemande() et une increment_numDemande().

    • affiche_numDemande() : utilisédans ton formulaire, retourne retourne le numero de la dernière demande +1.
    • increment_numDemande() : utilisé dans ta page de validation du formulaire, increment la valeur dans le fichier texte.

  8. #8
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    Justement la fonction utilisé dans ma page de validation du formulaire est la fonction : numero_demande(); à la quelle je fais appel après validation du formulaire et envoi de mails (notification via la messagerie locale au personnel concerné par les interventions).

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    Ok donc tu as bien deux fonctions? Donc pas de probleme, tu as reussi?

  10. #10
    Membre régulier Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par shadypierre Voir le message
    Ok donc tu as bien deux fonctions? Donc pas de probleme, tu as reussi?
    Oui , c'est OK MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 02/07/2020, 19h50
  2. [DATA] Extraction de données à partir d'un fichier Texte
    Par bounekkar dans le forum SAS Base
    Réponses: 3
    Dernier message: 16/04/2012, 21h30
  3. Extraction d'un bloc de données a partir d'un fichier texte
    Par new123 dans le forum Général Java
    Réponses: 1
    Dernier message: 14/05/2010, 11h55
  4. Extraction de colonnes à partir d'un fichier text
    Par karimDevelopper dans le forum Langage
    Réponses: 17
    Dernier message: 12/06/2009, 15h27
  5. extraction de données à partir d'un fichier text ou xml
    Par bigplayer dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2007, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo