faire une fonction "supprimer" via une image dans un tableau

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 : faire une fonction "supprimer" via une image dans un tableau

Re: faire une fonction "supprimer" via une image dans un tab

par sirakawa » 09 sept. 2011, 09:27

Je tenterais la manipulation suivante en s'inspirant de ce bricolage:
avec à part un data.up

Code : Tout sélectionner

toto titi tutu
<?PHP

function supprimer ($tableau, $ligne)
{
	$supprime = array_splice($tableau, $ligne, 1);
	// ici normalement écrire dans le fichier ligne par ligne le tableau
	return $tableau;
}


/* partie affichage simplifiée pour les tests*/
$f_entree = file ("data.up"); // comme dans l'original
reset($f_entree); // pas indispensable si on n'a pas déjà touché au tableau
/* while au lieu de foreach pour avoir les numéros de lignes*/
while ($nom_image = current($f_entree)) 
{
	$numero_ligne = key($f_entree);
        print "<br>$numero_ligne, $nom_image";
	$valeur_du_bouton= $numero_ligne;
	//ton affichage habituel 
    next($f_entree);
}
// juste pour les tests
print_r($f_entree);
supprimer($f_entree,1);
?>

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 07 sept. 2011, 23:01

1) Le lien sur ton fichier est incomplet ou masqué par le forum.
les liens sont des ex
ils sont sous la forme dans le fichier txt:

http://www.monsite.fr/img/image1.bmp
http://www.monsite.fr/img/image2.bmp
http://www.monsite.fr/img/image2.bmp
etc...............

a)$li c'est un numéro de ligne?
je recupere les ligne du fichier ainsi
<?
$myfile = 'http://...../mb/'.$nom_c.'/data.up';
$lines = file($myfile);   
for($i=count($lines)-1;$i>-1;$i--){
   echo $lines[$i] ;
}
?>
j'utilise apres la var $lines[$i]
pour afficher l'image en aperçu ou affiché le lien sur mon site
via un tableau

ca donne ceci :
Image

le code sera assigné a la poubelle
j'ai juste besoin de $lines[$i]

pour testé j'ai fais un echo dans ma page et chaque poubelle j'ai viens ma var avec l'url pour chaque ligne
c'est apres que ca se complique

ah oui pour info quand j'ecris dans mon fichier txt a la base , je le fais sous cete forme :
	fwrite($trace_fichier_compte,"\r\n" ); 
j'ai donc toute les lignes les une au dessus des autres

Re: faire une fonction "supprimer" via une image dans un tab

par sirakawa » 07 sept. 2011, 22:09

1) Le lien sur ton fichier est incomplet ou masqué par le forum.
2)
a)$li c'est un numéro de ligne?
Si oui
a) le fichier data.up a les lignes numérotées explicitement?
b) $li c'est un contenu?
je procèderais en deux temps:
$z = file_get_contents
modification de $z
file_put_contents

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 07 sept. 2011, 19:09

merci pour l'info complémentaire.
comme je suis sur la partie "suppression" pour le moment je reste avec la première version du moment que ca marche :)

par contre je bloque sur un truc pour la suppression peut être pourra tu m’éclairer sur mon erreur
voila le code pour supprimer le lien dans le fichier txt , pour rappel voici comment est le fichier txt :

http://www......monimage1.png
http://www......monimage2.bmp
etc.....................

voici mon code
<?php
$passage = isset($_POST['passage']) ? $_POST['passage'] : 1;
if ($passage == 2)   {
    $valeurs = $_POST['bouton'];
    file_put_contents('data.up', str_replace($li, '', file_get_contents('data.up')));  // a cette partie j'ai testé $li ou $valeurs , pour $li j'efface tous le fichier sauf la premiere ligne et avec $valeurs il se passe rien 
}
$li = $lines[$i] ;
	 ?>
	 <form id ='formulaire' method= 'post' action = 'c.php'>
	 <input type ='hidden' name ='passage' value ='2' />
         <table>
	     <tr>
	       <td>
	       <button type='submit' title='image'  class='suppresseur' name ='bouton'  value='<? echo $li ?> ' /></button>
	       </td>
	    </tr>
	 </table>
	 </form>
         </td>                      
        </tr>               					
	</table><br>

j'arrive pas a supprimer correctement la ligne dans le fichier,
et je trouve pas ou est mon erreur .

Re: faire une fonction "supprimer" via une image dans un tab

par sirakawa » 07 sept. 2011, 16:46

Je devais être fatigué....
Non, quand c'est une balise <img, on peur redimensionner par width='' et height ='' mais pas avec la bidulerie url=.....
Sur la norme il y a ça :
<BUTTON name="submit" value="submit" type="submit">
    Send<IMG src="/icons/wow.gif" alt="wow"></BUTTON>
avec alt obligatoire
<button type = 'submit' value ='fichier:ligne'>
	<img src ='bouton_supprimer.png' title='image' alt ='suppression' height='20%' width='20%'></button>
ou

<button type = 'submit' value ='fichier:ligne'>
	<img src ='bouton_supprimer.png' title='image' alt ='suppression' height='20px' width='20px'></button>
toujours aller voir:


<button type = 'submit' value ='fichier:ligne'>
http://www.w3schools.com/default.asp
ca cause anglais, mais il ya des exemples pour tout...

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 07 sept. 2011, 15:12

voila j'ai trouvé pourquoi j'avais pas d'image
mon image fais 300px par 300px et comme le bouton fait 25*25
je pensais qu'il redimentionné l'image , en fait elle s'affichait mais trop grande
voila pourquoi j'avais rien dans le cadre :) en fait j'avais un bout de l'image :)
j'ai du redimentionner l'icone avant :)

un grand merci sirakawa pour ton aide :)
j'ai plus qu'a faire le code pour supprimer le bonne ligne :)

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 07 sept. 2011, 05:38

Parce que je ne m'amuse pas à envoyer du code faux. J'ai testé, ça m'a pris du temps, et ça fonctionne.
a aucun moment je me suis permis de dire cela , je respect ton taf et ton aide
je regarde ça dans l'apres midi

a+

Re: faire une fonction "supprimer" via une image dans un tab

par sirakawa » 06 sept. 2011, 22:32

faut peut-être mettre une url juste dans background-image et pas ailleurs...
Parce que je ne m'amuse pas à envoyer du code faux. J'ai testé, ça m'a pris du temps, et ça fonctionne.
Pour les détails:
http://www.w3schools.com/cssref/pr_background-image.asp

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 06 sept. 2011, 18:28

Ok
mais quand je met ton code
j'ai un carré blanc avec angle droit , si je supprime la ligne background j'ai un carré a coté arrondi
j'ai testé les liens complet http://www ou en local poubelle.png
pas d'image un simple carré blanc

Re: faire une fonction "supprimer" via une image dans un tab

par sirakawa » 06 sept. 2011, 17:49

On ne peut plus mettre directement une image de fond à un bouton, c'est pourquoi je me suis fendu d'une classe suppresseur dont une des propriétés est background-image...
.suppresseur
{
background-image:url('bouton_supprimer.png');
width:25px;
height:25px;
}

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 06 sept. 2011, 15:50

Oui mais la ton systeme est toujours le meme
un"bouton" pour valider et apres on renvoi sur la "poubelle"
je voudrais que le bouton et la poubelle soit le meme bouton

edit :

bon j'ai fais ça à partir du code au dessu :
<style>
.suppresseur {
width:25px;
height:25px;
}
</style>

<?PHP
$pseudo = "Pascal" ; // pseudo récupéré par le code avant 
$url = 'http://www.monsite.fr/...................png' ; // url récupéré du code avant 

$passage = isset($_POST['passage']) ? $_POST['passage'] : 1;
if ($passage == 2)   {
   $valeurs = $_POST['bouton'];
   $valeurs = explode ("/:/", $valeurs);
   $chemin = $valeurs[0];
   $ligne = $valeurs[1];
   echo $chemin.'<br>'.$ligne ; // a partir de la je mets le code pour supprimer la ligne du fichier txt 
}
$li = $pseudo.'/:/'.$url ;

?>
<form id ='formulaire' method= 'post' action = '00.php'>
<input type ='hidden' name ='passage' value ='2' />
<table>
    <tr>
      <td>
      <button type='submit' title='image'  class='suppresseur' name ='bouton'  value='<? echo $li ?> ' /></button>
      </td>
    </tr>
</table>
</form>
la commande fonctionne mais j'ai un carré blanc , et j'ai voulu ajouter mon png "poubelle" a la place du carré mais impossible je sais pour ou mettre cette image_poubelle.png
dans ce code pour remplacer le carré blanc , j'ai testé dans la partie .suppresseur j'ai rien ou alors j'ai plus de cadre mais pas d'image

Re: faire une fonction "supprimer" via une image dans un tab

par sirakawa » 05 sept. 2011, 20:33

parce que le type image renvoie les coordonnées du pointeur quand on clique.
C'est pour ça que j'avais remplacé le <input > par un bouton, et pour que le bouton ait une image il faut passer par une css; mais j'avais oublié de redimensionner le bouton pour qu'on voie l'image.
<? echo $li?>
fonctionne .
BVoilà une adaptation dans ton style:
<style>
	.suppresseur
	{
		background-image:url('bouton_supprimer.png');	
		width:25px;
		height:25px;
	}
</style>
<?PHP
	$passage = isset($_POST['passage']) ? $_POST['passage'] : 1;
	if ($passage == 2)
	{
		$valeurs = $_POST['bouton'];
		$valeurs = explode ("/:/", $valeurs);
		$chemin = $valeurs[0];
		$ligne = $valeurs[1];
		print "chemin $chemin ligne $ligne";
	}
	$li ="chemin/:/l3";
?>
<form id ='formulaire' method= 'post' action = 'test1.php'>
<input type ='hidden' name ='passage' value ='2' />

<table>
	<tr >
		<td><img src ='vlc.png' title='image'> </td>
		<td><button  class='suppresseur' name ='bouton' type= 'submit'  value='chemin/:/1' /></td>
	</tr>
	<tr>
		<td><img src ='php.png' title='image'> </td>
		<td><button type='submit'  class='suppresseur' name ='bouton'  value='<? echo $li ?> ' />
		</td>
	</tr>

</table>
</form>

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 05 sept. 2011, 19:50

merci sirakawa
j'ai tourné ton script a ma sauce mais impossible d'avoir les 2 valeurs
j'ai mis ceci :
<?PHP
$ii = 'valeur1/:/valeur2' ;

//print_r($_POST);
$passage = isset($_POST['passage']) ? $_POST['passage'] : 1;
if ($passage == 2)
{
        $valeurs = $_POST['bouton'];
        $valeurs = explode ("/:/", $valeurs);
        $chemin = $valeurs[0];
        $ligne = $valeurs[1];
        print "chemin $chemin ligne $ligne";
}
?>
<form id ='formulaire' method= 'post' action = 'test1.php'>
<input type ='hidden' name ='passage' value ='2' />
<table>
  <tr >			
	<input class='suppresseur' type='image' name='bouton' src='..../img/poubelle.png'  width='30' height='30' border=0 value='<? $ii ?>'></td>
  </tr>
</table>
</form>
je me retrouve donc avec ma poubelle affiché et quand je clique dessus le
        print "chemin $chemin ligne $ligne";
retourne : chemin ligne
donc les 2 $var sont vide ....................

me suis planté ou ?

Re: faire une fonction "supprimer" via une image dans un tab

par sirakawa » 05 sept. 2011, 18:21

Que c'est tarabiscoté que d'aller chercher du javascript quand on doit gérer des fichiers, ce qu'il ne sait pas faire....
une idée de débile profond:
<style>
.suppresseur
{
    background-image:url('bouton_supprimer.png');	}
</style>
<?PHP
print_r($_POST);
$passage = isset($_POST['passage']) ? $_POST['passage'] : 1;
if ($passage == 2)
{
	$valeurs = $_POST['bouton'];
	$valeurs = explode ("/:/", $valeurs);
	$chemin = $valeurs[0];
	$ligne = $valeurs[1];
	print "chemin $chemin ligne $ligne";
}
print"
<form id ='formulaire' method= 'post' action = 'test1.php'>
<input type ='hidden' name ='passage' value ='2' />

<table>
	<tr >
		<td><img src ='vlc.png' title='image'> </td>
		<td><button  class='suppresseur' name ='bouton' type= 'submit'  value='chemin/:/1' /></td>
	</tr>
	<tr>
		<td><img src ='php.png' title='image'> </td>
		<td><button  class='suppresseur' name ='bouton' type= 'submit'  value='chemin/:/2' />
		</td>
	</tr>

</table>
</form>";
?>

Re: faire une fonction "supprimer" via une image dans un tab

par sax76 » 05 sept. 2011, 16:51

Effectivement c'est chaux comme truc , je vais donc devoir me tourner vers le php separé ?
mais existe il un moyen de faire cette fonction directement dans mon code php pour pouvoir supprimer cette ligne ?
on m'a dirigé vers le OnClick peut etre existe il plus simple en php ? non ?