Modifier et supprimer dans un fichers en php

Résolu/Fermé
fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024 - 3 nov. 2019 à 15:52
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 5 nov. 2019 à 17:59
Bonjour,
Je travaille sur les fichiers en ce moment et j'essaie qu'on puisse modifier mon fichier mais aussi pouvoir supprimer quelque chose a l'intérieur, malheureusement ca fais quelques jours que j'essaye cela mais je n'y arrive toujours pas.

Merci

fa23
A voir également:

4 réponses

fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
3 nov. 2019 à 15:56
Voici mon code au complet
<!DOCTYPE html>
<html>
<head>
	<title>Les fichiers PHP</title>
</head>
<body>
	<form method="POST">
		<b><br /><p><font size="10">Les fichiers en PHP</p></font></p><br /></b>
		<b>Nom : </b><input type="text" name="nom" required="required"><br /><br />
		<b>Prénom : </b><input type="text" name="prenom" required="required"><br /><br />
		<b>Numéro de téléphone : </b><input type="tel" name="numtel" required="required"><br /><br />
		<input type="submit" name="envoi" value="Envoyez">

		<?php  
			error_reporting(E_ALL & ~E_NOTICE);
			$nom = $_POST['nom'];
			$prenom = $_POST['prenom'];
			$num = $_POST['numtel'];

			if ($nom && $prenom && $num)
			{

				$ouvre = fopen("fichier.txt", "a+");
				$nom.="*";
				$prenom .="*";
				$num .= "*";
				fwrite($ouvre, $nom);
				fwrite($ouvre, $prenom);
				fwrite($ouvre, $num);
				fclose($ouvre);
			}
		?>
	
	</form>
	<br/><a href="affichecontact.php" >Afficher les contacts</a><br /><br />
	<a href="accueil.php">Accueil</a>

</body>
</html>
0
fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
Modifié le 3 nov. 2019 à 15:57
<!DOCTYPE html>
<html>
<head>
 <title>Affichage des contacts</title>
</head>
<body>
 <table border='30' cellpadding="12" cellspacing="2" width="10%" align="CENTER">
 <form>
 <?php 

 $ouvre = fopen("fichier.txt","r"); 
 
 while (!feof ($ouvre)) 
  { 

   $lecture = fgets ($ouvre, 4096); 
   $donnee = explode ("*",$lecture); 
   $combien = count ($donnee)-1; 
   $compteur = 0;
  
   $fichier = file("fichier.txt"); 

   sort($fichier, SORT_NATURAL | SORT_FLAG_CASE);

   foreach ($fichier as $ligne)
   {
       
       $donnee = explode ("*", $ligne); 
       foreach ($donnee as $valeur);
          echo "$valeur";

   }

   echo "<tr><th>Nom</th>";
   echo "<th>Prenom</th>";
   echo "<th>Numéro de téléphone</th>";
   echo "</tr>";
   echo "<tr>"; 
  
   
   for ($i=0;$i<$combien;$i++) 
    { 

     
     $compteur++;
   
   echo "<td>"; 
     echo $donnee[$i], "<br />";
     echo "</td>";

     if ($compteur == 3)
     {
      $compteur = 0;
      echo "<tr></tr>";
     }

    }
   echo "</tr>";

   
 }

 fclose($ouvre); // fermeture

 ?>

 


</form>
</table>
</body>
<footer>
 <br /><center><a href="fichiers.php" >Ajouter un contact</a><br /><br />
 <a href="accueil.php">Accueil</a></center>
</footer>
</html>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 nov. 2019 à 15:57
Bonjour,

Avant tout, commence par activer l'affichage des erreurs PHP et suis les quelques conseils donnés ici.
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


Ensuite, si tu ne parviens toujours pas à réaliser ton script, poste le nous ( en utilisant les balises de code )
Explications concernant les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pense également à expliquer en détail ( code à l'appui ) le souci rencontré et ce que tu cherches à faire.
pour l'instant.. ta question ne permet pas de comprendre ton problème.



0
fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
3 nov. 2019 à 16:06
Désolé quand tu était en train de me répondre, j'étais en train d'insérer mon code justement que tu peux retrouver juste au dessus et donc mon problème c'est que j'aimerais qu'on puisse modifier le prénom, le nom ou le numéro de téléphone dans le fichier et aussi pouvoir supprimer quelque chose dans le fichier
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
3 nov. 2019 à 16:56
J'ai bien vu que tu avais mis le code pendant que je répondais.
Mais comme tu as pu le lire dans ma réponse.... je t'ai donné des liens à suivre.

Concernant ton code, hormis lire et écrire il ne fait rien d'autre.
Où as tu essayé de faire la modification ou la suppression ?
Car pour modifier ou supprimer... tu vas devoir recharger la totalité de ton fichier dans un array ou dans une string, faire une "recherche" puis retirer cette ligne de ta variable avant de réécrire complètement le fichier.

Mais quit à stocker des données dans un fichier, utilise un format facilement exploitable tel que le JSON

ou alors.. si tu veux faire un CSV ... utilise un "vrai" séparateur comme la virgule. A ce moment là, tu auras des fonctions php spécialement prévues pour fonctionner avec du csv.
0
fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
3 nov. 2019 à 16:01
La première partie du code sert a écrire dans le fichier et la deuxième partie sert a afficher le contenu du fichier
0
fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
Modifié le 4 nov. 2019 à 20:09
Voici mon code pour la modification que j'ai essayer de faire, en ce qui concerne la suppression je prefere faire la modification avant

<!DOCTYPE html>
<html>
<head>
 <title>Modifier un contact</title>
</head>
<body>

Que voulez vous remplacer ? <input type="text" name="remplace">
    
  <form method="POST"> 
  
  <?php 
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
$ouvre=fopen("fichier.txt","r"); 

  $remplacer = $_POST['remplace'];
   
   while (!feof ($ouvre)) 
   {  
    $lecture = fgets($ouvre, 4096); 
    $donnee = explode("*",$lecture); 
    $combien = count($donnee)-1; 
   
    for ($i=0;$i<$combien;$i++) 
    {  
     
     if (ereg("$lecture",$donnee[$i])) 
      {
       $donnee[$i]=str_replace("$remplacer", "2°", $donnee[$i]);
      }
       
     $liste_modif.=$donnee[$i]."*"; 
    }

  } 

  fclose($ouvre); // fermeture 
  
  $ouvre=fopen("fichier.txt","w+"); 
  fwrite($ouvre,$liste_modif); 
  fclose($ouvre); 

  ?>
   
   

</form>
</body>
</html>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 nov. 2019 à 20:12
Ton input est en dehors de ton FORM
Et tu n'as pas de bouton submit.
0
fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
5 nov. 2019 à 15:18
effectivement je viens de corriger ca


<!DOCTYPE html>
<html>
<head>
	<title>Modifier un contact</title>
</head>
<body>


    
	 <form method="POST">	
		Que voulez vous remplacer ? <input type="text" name="remplace">
		<input type="submit" name="entrer" value="Envoyez">
		
		<?php
		error_reporting(E_ALL);
		ini_set('display_errors', TRUE);
		ini_set('display_startup_errors', TRUE);
		 $ouvre=fopen("fichier.txt","r"); 
		
		$remplacer = $_POST['remplace'];
		 
		 while (!feof ($ouvre)) 
		 {  
		 	$lecture = fgets($ouvre, 4096); 
		 	$donnee = explode("*",$lecture); 
		 	$combien = count($donnee)-1; 
		 
		 	for ($i=0;$i<$combien;$i++) 
		 	{  
		 		
		 		if (ereg("$lecture",$donnee[$i])) 
		 			{
		 				$donnee[$i]=str_replace("$donnee", "$remplacer", $donnee[$i]);
		 			}
		 		  
		 		$liste_modif.=$donnee[$i]."*"; 
		 	}

		} 

		fclose($ouvre); // fermeture 
		
		$ouvre=fopen("fichier.txt","w+"); 
		fwrite($ouvre,$liste_modif); 
		fclose($ouvre); 

		?>
			
			

</form>
</body>
</html>

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
5 nov. 2019 à 16:16
Toi tu n'as pas lu comment fonctionne str_replace
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed

$search => VALEUR CHERCHEE (celle que tu veux remplacer )
$replace => VALEUR A UTILISER POUR LE REMPLACEMENT
$subject => TEXTE QUI CONTIENT EVENTUELLEMENT LA VALEUR A RECHERCHER/REMPLACER

Pour l'instant tu n'as qu'un seul input .... qui, d'après ce que je comprend, est la valeur à remplacer....... mais tu veux le remplacer par quoi ?
0
fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
5 nov. 2019 à 17:29
En gros, je demande a l'utilisateur qu'est ce qu'il veut remplacer soit le nom , le prénom ou le numéro de téléphone. Ensuite, je demande quel nom, prénom ou numéro de téléphone qui veut remplacer et ensuite par quoi il veut le remplacer et après une fois que cela est fait je veux que la modification soit fait aussi dans le fichier
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > fa23 Messages postés 71 Date d'inscription lundi 20 juin 2016 Statut Membre Dernière intervention 10 avril 2024
5 nov. 2019 à 17:37
sauf que...il n'y à pas toutes ces étapes dans ton code....
0