Gestion de fichier uploader

Eléphant du PHP | 169 Messages

17 sept. 2007, 17:14

Slt a tous,
n'ayant pas de réponse sur l'un de mes post, écrit début septembre
http://www.phpfrance.com/forums/viewtopic.php?p=210291, je me permet de reposé la question.... :roll:

Je suis entraint de faire un intranet (en tout cas j'essaie).
je donne la possibilité au personne de faire un upload d'un fichier pour que tous le monde puisse le consulter par la suite. Jusque la je m'en sort.

par contre je voudrais donner la possibilité de modifier se fichier. c'est a dire que l'on aurait la possibilité de revenir sur la fiche en question, pour supprimer le fichier et le remplacer par un autre ou tout simplement le supprimer.

Dans cette page de gestion, je n'ai pas que le "fichier uploader" mais d'autre infos qui seront mis a jour aussi.

Je pense que dans ma logique de programmation, je me plante complètement.
Voila comment je procède :

Affichage des titres
[Partie qui fonctionne correctement]
1 - Je liste dans un While les Titres de chaque news (par exemple).

Affichage du détails
[Partie qui fonctionne correctement]
2 - en cliquant sur l'un des titres, on accède au détail de celui-ci, plusieurs informations sont affiché (titre, date, etc....) + téléchargement d'une pièce jointe, dans le cas ou celle-ci existerait.
Je donne la possibilité dans cette page, de cliqué sur un lien qui permettrai de modifier les informations affiché.

Page de modification
3 - Dans cette page de modification (modification.php), c'est la que je rencontre des problèmes pour modifier ou supprimer la pièce jointe.

cette page est composé d'un formulaire ou à l'intérieur, il y a des input qui remonte les donnée de la base. un exemple
<?= strtoupper ($affichage['xxxxxxx']); ?>
jusque ici tous fonctionne bien.

toujours a l'intérieur de se formulaire, je fais un "include" pour appeler la partie qui vas affiché la pièce jointe dans le cas ou celle ci est existante, ou, le "champ de type file", si celle-ci n'existe pas...
session_start();

// SI le champs n'est pas vide
if (!empty($affichage['renommer_pdf_agenda']))
{
// DECLARATION de variable	
			
$_SESSION['id_pdf'] = $ID;
$_SESSION['nom_origine'] = $affichage['nom_pdf_agenda']; 
$_SESSION['chemin'] = $affichage['chemin_pdf_agenda'];	
$_SESSION['nom_renommer'] = $affichage['renommer_pdf_agenda'];	
$_SESSION['poid'] = $affichage['poid_pdf_agenda'];	
$_SESSION['pdf'] = $_SESSION['chemin'].$_SESSION['nom_renommer']; 
			
// AFFICHE le nom du fichier 
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
		<tr>
		<td width="160"><a href='.$_SESSION['pdf'].' target="blank" /><img src="../images/icon-pdf.gif" alt="pdf" width="130" height="44" border="0" /></a></td>';
			
// AFFICHE LIEN qui permet de supprimer le fichier
echo '<td>
	<form id="supprimer" name="supprimer" method="post" action="suppresion_pdf.inc.php">
	<label>
	<input type="submit" name="supprimer" id="supprimer" value="supprimer le PDF" />
	</label>
	</form>
	</td>
	</tr>
	</table>';
			
} else {			
// On affiche le formulaire
echo '<form id="ajouter_pdf" name="ajouter_pdf" method="post" action="ajout_pdf.inc.php" >
<input name="fichier_PDF" type="file" id="fichier_PDF" />	     
<input type="submit" name="Submit" value="Enregistrer le PDF" />
</form><br />';
}
le problème, avec cette logique de programmation est que je me retrouve avec 2 formulaires qui sont imbriqué dans le principal !

Avez vous compris mon explication ?
Pourriez vous me donner quelques conseille. merci de votre particiaption
--
Kweb

Mammouth du PHP | 881 Messages

18 sept. 2007, 06:32

Je ne comprends certes pas tout ton problème et j'ai de grandes difficultés à te lire à travers toutes les fautes, mais voilà que je puis te suggérer de sortir de tes formulaires imbriqués en ne faisant que garder la trace des formulaires précédents.

En fait, il s'agit simplement de la méthode du petit Poucet qui est utilisée dans le présent forum. Vois en tête de la page: PHPFrance Index du Forum -> Débuter en PHP
Cette simple ligne indique que tu es dans le forum PHPFrance
et dans la section "Débuter en PHP"
D'une façon aussi simple, tu pourrais garder la trace des options précédentes et ainsi te libérer de l'imbrication des formulaires.
Soyez artisans de paix

ViPHP
AB
ViPHP | 5818 Messages

18 sept. 2007, 10:28

le problème, avec cette logique de programmation est que je me retrouve avec 2 formulaires qui sont imbriqué dans le principal !
Avez vous compris mon explication ?
Pourriez vous me donner quelques conseille. merci de votre particiaption
Au moins j'ai compris ça!

Et bien puisque tu connais l'origine de ton problème, pourquoi ne pas le résoudre et générer des formulaires séparés ?
1/ Si c'est la position des boutons d'envoi, modif ou supression qui posent problème cela se résoud vite en faisant des formulaires successifs et en plaçant les boutons où tu veux avec par exemple un positionnement absolu des input concernés via css.

2 /Eventuellement, tu peux faire un seul formulaire avec un input de type submit comme bouton pour envoyer tes valeurs post, et à l'intérieur faire des input de type button qui enverront des infos passés dans l'url sur un onclick.

Le mieux serait quand même la première méthode qui te permettrait d'utiliser la méthode post pour plusieurs formulaires différents.