Suppression partie de texte

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Suppression partie de texte

Re: Suppression partie de texte

par enneite » 02 mai 2011, 14:31

ok, alors cela dépend de comment tu as construit ton tableau $montab.
C'est à dire quelle est la fonction qui affecte les valeurs $monTab[$i] ?
Est ce le fichier qui est construit d'après le tableau ou l'inverse? c'est cela qu'il faut considérer.

Parce que si ton fichier est construit à partir du tableau :
// $monTab = ton tableau quee tu as créé pour l'affichage
//$valeur, elle aussi elle est définie dans ton code avant ...
//...

$monTabBis = array();
$j=1;
for($i=1;$i<$valeur;$i++){
	
	if($i!=$_POST["numero_a_supprimer"]){
		$monTabBis[$j]=$monTab[$i];
		$j++;
	}
}

//creation du fichier à partir de $monTabBis au lieu de $monTab
//...
Si c'est le contraire, et que le tableau est construit grâce au fichier, c'est qu'il y a des délimiteurs dans le fichier, et dans ce cas ce n'est pas trop dur d'inverser l'algorithme

Re: Suppression partie de texte

par SylvieT » 02 mai 2011, 12:30

Merci d'avoir pris le temps de vous pencher sur mon problème.

Après différents tests avec ce bout de code, je m'aperçois qu'il est censé supprimer ligne par ligne (qu'il ne supprime jamais étant donné que la value ne contient rien) .
En testant avec $newContent="HelloWorld" pour me rendre compte où il l'affiche et bien il n'est nul part.

Ce que je cherche c'est supprimer tout le contenu de la div du fichier txt et non une seule ligne.
Je ne vois toujours pas comment procéder.

Re: Suppression partie de texte

par enneite » 29 avr. 2011, 17:53

A la fin de ta page, ajoute :
<form action="enregistre.php" method="POST" name="suppression">
<input type="hidden" name="ligne_a_supprimer" value ="">
</form>
dans ta fonction JS :
 <script language="javascript"> 
   function Suppression(valeur) 
      { 
      //document.getElementById(valeur).style.display = 'none';
document.suppression.ligne_a_supprimer.value = valeur;
document.suppression.submit();
      } 
   </script> 
Page enregistre.php qui se charge d'enregistrer:

$newContent="";

$lines = file($monfichier);
/*On parcourt le tableau $lines et on affiche le contenu de chaque ligne précédée de son numéro*/
foreach ($lines as $lineNumber => $lineContent){	
//echo $lineNumber,' ',$lineContent;
//je ne me rappelle pas s'il faut tester sur $linenumber ou $linenumber +1 ... voir -1 ...
//il faut que tu fasses des tests
if($lineNumber!=$_POST["ligne_a_supprimer"])
	$newContent.=$lineContent;
// je ne sais plus s'il faut ajouter des tabulations :
//$newContent.="\r\n";
}
file_put_contents($monfichier,$newContent);
header("location:".$_SERVER["HTTP_REFERER"]);
Alors fais attention, je le dis de mémoire, il faut faire des tests avant de se lancer...
Tu aussi peux aussi essayer avec fopen(), regarde ici : http://dev.petitchevalroux.net/php/lect ... p.227.html

Suppression partie de texte

par SylvieT » 29 avr. 2011, 11:55

Bonjour,
Ce bout de code me permet d'une part d'écrire le texte contenu dans le tableau $monTab et d'autre part de l'ajouter dans un fichier .txt ($fp).
Lors du click sur le bouton du formulaire, cela supprime à l'écran le texte désiré.

Je ne vois pas comment supprimer également ce texte du fichier txt, pouvez-vous m'aider sur ce problème

Code : Tout sélectionner

<?php for ($i = 1; $i <= $valeur; $i++){ echo"<div id=".$i.">"; echo $monTab[$i]; fwrite($fp, substr($monTab[$i],0)); ?> <form name="suppression" method="post" action=""> <input type="button" value="Supprimer texte n°<?php echo $i ?>" onClick="Suppression(<?php echo $i ?>)" > </form> </div> <?php }//fin for fclose($fp); ?> <!--Fonction qui me permet en javascript de supprimer le texte désiré --> <script language="javascript"> function Suppression(valeur) { document.getElementById(valeur).style.display = 'none'; } </script>