8792 sujets

Développement web côté serveur, CMS

Bonjour,

J'écris ce message car j'ai un problème que je n'arrive pas à résoudre, même après avoir fouillé dans le forum...

Je suis en train de construire un site, avec un module d'administration (un "mini CMS" en somme) permettant d'ajouter/supprimer des pages...
J'ai donc créé des formulaires pour que l'utilisateur choisisse une action.
Voici le code de ce "menu" :

<form name="formulaire" action="listing.php" method="get">
<table cellspacing="20" class="tabl">
<tr>
<td><b>Archives</b></td><td><b>Sauvegardes</b></td>
</tr>
<tr>
<td>
<input type="image" src="images/ArchDir.gif" name="test" value="0=archives" align="absmiddle"><br/>Lister les Archives
</td>
<td>
<input type="image" src="images/CorbDir.gif" name="test" value="0=corbeille" align="absmiddle"><br/>Lister le contenu de la Corbeille</td>
</tr>
<tr>
<td>
<input type="image" src="images/Corb.gif" name="test" value="1=archives" align="absmiddle"><br/>Supprimer les Archives</td>
<td>
<input type="image" src="images/Corb.gif" name="test" value="1=corbeille" align="absmiddle"><br/>Vider la Corbeille</td>
</tr>
<tr>
<td>
<input type="image" src="images/Recycle.gif" name="test" value="2=archives=modif" align="absmiddle" height="24"><br/>R&eacute;utiliser une page <b>modifi&eacute;e</b></td>
<td>
<input type="image" src="images/Recycle.gif" name="test" value="2=corbeille=suppr" align="absmiddle" height="24"><br/>R&eacute;utiliser une page <b>supprim&eacute;e</b></td>
</tr>
</table>
</form>


Il fonctionne très bien sous FF mais forcement IE bug car il ne renvoie pas la valeur de mon bouton "test"... Smiley sweatdrop Smiley fache

J'ai pensé avoir trouvé une solution ici mais mon probleme est que chaque submit renvoie une valeur différente mais sont tous nommés "test". Je ne peux pas utiliser de champ "hidden" car je ne veux envoyer qu'une valeur à mon code PHP, je ne peux en effet pas tester toutes les valeurs possibles... Voici mon code PHP recevant la valeur du formulaire :

$recup = $_GET['test'];
$tabl = split("=",$recup);

$action = $tabl[0]; //action=0->listing | action=1->suppression | action=2->reutiliser
$dossier = $tabl[1];
if(count($tabl)>2){
	$but = $tabl[2];
}
//...
function listing($action,$dossier) {
	//pointeur vers le dossier
	$rep = "../".$dossier."/";
	$dir = opendir($rep);

	echo "<b>Liste des fichiers contenus dans le dossier \"$dossier\":</b><br/><br/>";
	//boucle de listage
	//variable de controle qui permet de savoir si le dossier est vide ou non
	$vide=-1;
	//listing des fichiers présents dans le dossier
	while ($f = readdir($dir)) {
		if(is_file($rep.$f)) {
		   	$vide = 0;
			// si $action=2 on crée un formulaire
			if ($action==2){
				if($but=="suppr"){
					echo "<form method='post' action='recycle.php'>\n";
				}else{
					echo "<form method='post' action='restore.php'>\n";
				}
				echo "<input type='hidden' value='$rep' name='dossier'/> ";
				echo "<input type='radio' value='$f' name='fichier'/> ";
			}
	    	echo "<b>Nom : </b>".$f."<br/>\n";
			
			// si "$action" = 1 -> on veut supprimer les fichiers
			if ($action==1){
				unlink($rep.$f) OR die("Erreur lors de la suppression du fichier");
				echo "Fichier supprimé avec succès !<br/><br/>";
			}
		} else {
		   	$vide = 1;
		}
	}
	// si $action=2 on ferme un formulaire
			if ($action==2){
				echo "<input type='submit' value='OK'/>\n";
				echo "</form>\n";
			}
	if ($vide==1) {
		echo "Le répertoire <b>$dossier</b> est vide !<br/><br/>";
	}

	echo "<br/>-------------------------------------------------------------------<br/>";

	echo "<br/><br/><a href='admin.php'>Retour à l'administration</a>";
}


J'espère avoir été clair...

Merci d'avance pour votre aide...
Bonjour
Mais pourquoi diable tes images ont elles toutes le même nom ?
Mets plutôt des identificateurs différents
A+
Re...

Je ne comprend pas comment je pourrrai changer le nom de mes images... puisque chacune d'elle envoie 2 voire 3 valeurs (0/1/2, archives/corbeille et modif/suppr)....
Je peux à la limite les nommer archives et corbeille mais je ne vois même pas comment récupérer les autres valeurs...
La seule solution que j'imagine serait de tout mettre dans le nom des images et de faire ensuite un split pour recup chaque variable une par une... Smiley confus Smiley confus ...
Mais ceci impliquerait que je fasse plusieurs imbrications de switch dans mon PHP... Smiley sweatdrop
Il doit forcément y avoir plus simple...
a écrit :
Mais pourquoi diable tes images ont elles toutes le même nom ?

pour être plus explicite le nom de la propriété name de chaque balise doit être différent.
Je viens de tester en renommant mes images mais le probleme ne vient pas de là...

C'est peut etre moi qui n'ai pas été clair... Le probleme est que IE ne transmet pas de valeurs dans l'URL, mais ça :
http://localhost/ptut/v2/admin/listing.php?test1.x=17&test1.y=13
alors que voila ce que renvoie FF (ce que je veux) :
http://localhost/ptut/v2/admin/listing.php?test.x=17&test.y=13&test=0%3Darchives

Alors comment faire pour que IE me renvoie la meme chose que FF ???
Salut,

J'ai trouvé une solution à mon probleme!

En fait j'ai viré mon formulaire et créé des liens sur mes images qui envoient directement toutes les valeurs à ma page PHP :
<a href="listing.php?action=0&dossier=arvhives"><img src.../></a>


Voilà, c'est nettement plus pratique, et ca marche!!

Reste que IE m'a donc fait tourner en bourrique pendant une demie-journée!!! Smiley fache Smiley fache

Enfin, c'est comme ca qu'on avance!

Merci à tous,

++