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 :

Modification de fichier.


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut Modification de fichier.
    Bonjour!
    Alors voila. J'ai commencé à creer un site de vente (en local). Sur ma page admin, l'admin doit pouvoir modifier les prix des produits dans les fichiers texte. Pour ça je crée récupere les infos des lignes actuelles, je supprime le contenu du fichier et je mets ensuite le contenu modifié.

    Voici le bout de code 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $f_prixjeunesse = fopen("produits/jeunesse.txt","r+");
    $nb_prixjeunesse = 0;
    $fin_prixjeunesse = false;
    do
    {
    	$jeunesse[$nb_prixjeunesse] = explode('|',fgets($f_prixjeunesse,255));
    	if(isset($jeunesse[$nb_prixjeunesse][1])) $nb_prixjeunesse++;
    	else $fin_prixjeunesse = true;
    }while(!$fin_prixjeunesse);
    if(isset($_POST['submit2']))
    {
    	for($j=0;$j<$nb_prixjeunesse;$j++)
    	{
    		$_POST['nouveauprixjeunesse'][$j];
    		if($_POST['nouveauprixjeunesse'][$j]!="") //SI un prix a été donné dans le form. (Ne marche pas avec le isset. Je ne sais pas pourquoi.)
    		{
    			$jeunesse[$j][4]=$_POST['nouveauprixjeunesse'][$j]; //Je remplace le prix du produit par le prix donnné dans le formulaire.
    		}
    	}
    	ftruncate($f_prixjeunesse,0); //J'efface le contenu du fichier.
    	for($k=0;$k<$nb_prixjeunesse;$k++) //Et là je réécris dans le fichier.
    	{
    		fwrite($f_prixjeunesse, $jeunesse[$k][0] ."|" .$jeunesse[$k][1] ."|" .$jeunesse[$k][2] ."|" .$jeunesse[$k][3] ."|" .$jeunesse[$k][4]);
    	}
    }
    fclose($f_prixjeunesse);
    Et voici le bout de formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for($i=0;$i<$nb_prixjeunesse;$i++)
    {
    	echo "<tr><td>" .$jeunesse[$i][1] ."</td>";
    	echo "<td>Prix actuel: " .$jeunesse[$i][4] ."</td>";
    	echo "<td>Nouveau prix: <input type=\"text\" name=\"nouveauprixjeunesse[$i]\" /></td></tr>";
    }
    Quant au fichier texte, il est structuré de cette maniere:

    index|titre|auteur|lien_image|prix

    Exemple:
    0|Harry Potter à l'Ecole des Sorciers|J.K. Rowling|harry_potter_1.jpg|7.00
    1|Eragon|Christopher Paolini|eragon.jpg|12.40
    2|Les Chevaliers d'Emeraude - T1: Le Feu dans le Ciel|Anne Robillard|les_chevaliers_emeraude_1.jpg|15.60
    3|A.N.G.E. - T1: Antichristus|Anne Robillard|ange_1.jpg|16.95
    4|Gone - T1|Michael Grant|gone_1.jpg|19.20
    5|Les Chevaliers d'Emeraude -T2: Les dragons de l'empereur noir|Anne Robillard|chevaliers_tome_2.jpg|15.60


    Voila, rien ne marche, il y a des sauts de ligne etranges, et la premiere ligne est composée de rectangles noirs avec NUL dedans. Le site ne lisplus le fichier correctement et ne m'affiche plus aucun produit.

    Resultat si l'on change les prix de A.N.G.E et Harry Potter à 999euros:

    1Ere ligne pleine de rectangles noirs avec ecrit NUL.
    2|Les Chevaliers d'Emeraude - T1: Le Feu dans le Ciel|Anne Robillard|les_chevaliers_emeraude_1.jpg|15.60
    3|A.N.G.E. - T1: Antichristus|Anne Robillard|ange_1.jpg|9994|Gone - T1|Michael Grant|gone_1.jpg|19.20
    5|Les Chevaliers d'Emeraude -T2: Les dragons de l'empereur noir|Anne Robillard|chevaliers_tome_2.jpg|15.60

    Merci de prendre en compte que je ne suis qu'un débutant ^^



    PS:Meme si je ne modifieaucun prix et que je valide le formuaire, la premiere ligne est quand meme des rectangles noirs. Le reste est cependant inchangé

  2. #2
    Invité
    Invité(e)
    Par défaut
    Utilise un SGBD (MySql, Postgresql...) ça sera ((50 * 50)^50)*42 fois plus simple

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Par défaut
    Je sais bien que ce serait plus simple mais seulement c'est un devoir à rendre et je dois le faire avec des fichiers.
    Merci quand même de ta réponse.

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

Discussions similaires

  1. Modification de fichier XML avec XSLT
    Par osmoz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/07/2005, 12h04
  2. [JAR]Modification de fichier dans un jar
    Par vberetti dans le forum Général Java
    Réponses: 14
    Dernier message: 13/06/2005, 18h56
  3. [langage] [Fichier]problème modification de fichier
    Par Melchisedec dans le forum Langage
    Réponses: 6
    Dernier message: 01/07/2004, 00h01
  4. [ICS FtpClient] Date modif de fichier et listage de dossier
    Par Ingham dans le forum Composants VCL
    Réponses: 8
    Dernier message: 13/06/2004, 20h54
  5. modification de fichier EOF
    Par scorbo dans le forum C
    Réponses: 9
    Dernier message: 28/11/2003, 12h35

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