Upload - comment dissiocier le code en 2 partie ?
Posté : 14 févr. 2007, 17:43
Bonjour,
je suis toujours entraint de comprendre le fonctionnement de l'upload.
dans le tuto qu'il y a sur le site, tout le code qui génere l'upload (la vérification de l'extension, le poids etc... et l'envoi du fichier)
sont intégrer a meme la page car l'action du formulaire pointe sur lui meme.
Dans mon cas, j'ai créé un formulaire qui est composé de deux pages.
1er page (formulaire.php) :
j'ai un formulaire tout simple avec un input type="files", l'action du form pointe sur la deuxieme page (confirmation_ajout.php)
ci-joint le code
2éme page (confirmation_ajout.php): vas affiché un message confirmant l'intergration des element en base de donnée. elle contient donc le code suivant
je ne peux pas procéder comme dans le tuto car tout le code de vérification et d'envoie se trouve sur la meme page.
moi je voudrais que la vérification se fasse sur ma page index.php et que l'upload se fasse sur la page confirmation_ajout.php
Cela est il possible ?
si oui, comment faut il découpé le code car j'ai essayé plusieurs truc mais sans résultat.
merci de votre aide
PS, voici le code du tuto
je suis toujours entraint de comprendre le fonctionnement de l'upload.
dans le tuto qu'il y a sur le site, tout le code qui génere l'upload (la vérification de l'extension, le poids etc... et l'envoi du fichier)
sont intégrer a meme la page car l'action du formulaire pointe sur lui meme.
Dans mon cas, j'ai créé un formulaire qui est composé de deux pages.
1er page (formulaire.php) :
j'ai un formulaire tout simple avec un input type="files", l'action du form pointe sur la deuxieme page (confirmation_ajout.php)
ci-joint le code
Code : Tout sélectionner
<form action="confirmation_ajout.php" method="post" enctype="multipart/form-data">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"><p><strong>NOM DU CONGRES :</strong> <br />
<input name="congres" type="text" id="congres" size="60" />
<br />
<span class="legende_petit">Ecrire en MAJUSCULE</span></p>
<p> <strong><br />
SELECTIONNER LE MOIS DU CONGRES <br />
</strong><span class="date_debut"> </span>
<select name="mois" id="mois">
<option value="Janvier" selected="selected">Janvier</option>
<option value="Février">Février</option>
<option value="Mars">Mars</option>
<option value="Avril">Avril</option>
<option value="Mai">Mai</option>
<option value="Juin">Juin</option>
<option value="Juillet">Juillet</option>
<option value="Aout">Aout</option>
<option value="Septembre">Septembre</option>
<option value="Novembre">Novembre</option>
<option value="Décembre">Décembre</option>
</select>
<br />
<br />
</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><strong>VILLE</strong><br />
<input name="ville" type="text" /></td>
<td><strong>PAYS</strong><br />
<input name="pays" type="text" /></td>
</tr>
</table></td>
<td width="200" valign="top"><br />
<br />
<div align="right">
<table width="100%" height="170" border="0" cellpadding="10" cellspacing="1" bgcolor="#C1DCE8">
<tr>
<td valign="top" bgcolor="#F1F7FA"><div align="center"><img src="../images/tirte/debut_congres_modifier.gif" alt="date debut" width="157" height="22" />
<input name="date_debut" type="text" id="date_debut" value="--/--/----" maxlength="10" />
<strong><span class="legende_petit"><br />
Jour/Mois/Année</span><br />
<br />
<hr align="center" />
<br />
<img src="../images/tirte/fin_congres_modifier.gif" alt="fin congres" width="135" height="22" />
<input name="date_fin" type="text" id="date_fin" value="--/--/----" maxlength="10" />
<br />
<span class="legende_petit">Jour/Mois/Année</span><br />
</strong> </div></td>
</tr>
</table>
</div></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250"><strong>BUDGET</strong><br />
<textarea name="budget" cols="25" id="budget"></textarea> </td>
<td valign="bottom" class="legende"><strong>Veuillez inserer le nom des personnes qui gére le buget .</strong><br />
<span class="legende_petit">Attention, lorsque vous inserez des noms, ne faite pas de retour chariot mais ecrivez tout à la suite<br />
(expl: stephane, julie, etienne....) </span></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250"><strong>COMMERCIAL<br />
</strong>
<textarea name="commercial" cols="25"></textarea></td>
<td valign="bottom" class="legende"><strong>Veuillez inserer le nom des commerciaux qui gére le congrès.</strong><br />
<span class="legende_petit">Attention, lorsque vous inserez des noms, ne faite pas de retour chariot mais ecrivez tout à la suite<br />
(expl: stephane, julie, etienne....) </span></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250"><strong>INSCRIPTION</strong><br />
<textarea name="inscription" cols="25"></textarea></td>
<td valign="bottom" class="legende"><strong>Veuillez inserer le nom des personnes qui gére les inscriptions du congrès.</strong><br />
<span class="legende_petit">Attention, lorsque vous inserez des noms, ne faite pas de "retour chariot" mais ecrivez tout à la suite<br />
(expl: stephane, julie, etienne....) </span></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250"><strong>CONFERENCIER</strong><br />
<textarea name="conferencier" cols="25" id="conferencier"></textarea></td>
<td valign="bottom" class="legende"><strong>Veuillez inserer le nom des personnes qui gére les conférenciers du congrès.</strong><br />
<span class="legende_petit">Attention, lorsque vous inserez des noms, ne faite pas de retour chariot mais ecrivez tout à la suite<br />
(expl: stephane, julie, etienne....) </span></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250"><strong>PRESSE</strong><br />
<textarea name="presse" cols="25"></textarea></td>
<td valign="bottom" class="legende"><strong>Veuillez inserer le nom des personnes qui gére la presse sur le congrès.</strong><br />
<span class="legende_petit">Attention, lorsque vous inserez des noms, ne faite pas de retour chariot mais ecrivez tout à la suite<br />
(expl: stephane, julie, etienne....) </span></td>
</tr>
</table>
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250"><strong>SOUTIEN</strong><br />
<textarea name="soutien" cols="25" id="soutien"></textarea></td>
<td valign="bottom" class="legende"><strong>Veuillez inserer le nom des personnes qui aiderons sur le congrès.</strong><br />
<span class="legende_petit">Attention, lorsque vous inserez des noms, ne faite pas de retour chariot mais ecrivez tout à la suite<br />
(expl: stephane, julie, etienne....) </span></td>
</tr>
</table>
<p>
<!-- Limiter la taille des fichiers PDF à 500Ko -->
<label><strong>PROGRAMME PDF</strong><br />
<input name="PDF" type="file" id="PDF" />
</label>
<span class="clignotant">
<?php
/******************************************************/
if(isset($erreur)) // si la variable erreur existe
{
echo '<p>', $erreur ,'</p>'; //affiche le contenu de la variable
}
/******************************************************/
?>
</span></p>
<span class="Text_Titre_Orange2">Validation</span>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#e4e4e4"><img src="../images/pixel_gris.gif" width="1" height="1" /></td>
</tr>
</table>
<input type="submit" name="Submit" value="Enregistrer le nouveau congrès" />
<input type="reset" name="Submit" value="Effacer le formulaire" onclick="javascript:window.back();"/>
</form>
<?
// connection a la base de donnée
include ("../include/connectBD.inc.php");
// création des variable depuis le formulaire de saisie
$congres = strtoupper($_POST['congres']);
$mois =$_POST['mois'];
$debut =$_POST['date_debut'];
$fin =$_POST['date_fin'];
$ville =$_POST['ville'];
$pays =$_POST['pays'];
$commercial =$_POST['commercial'];
$inscription =$_POST['inscription'];
$budget =$_POST['budget'];
$conferencier =$_POST['conferencier'];
$presse =$_POST['presse'];
$soutien =$_POST['soutien'];
// Convertion de la date debut
$date_fr_debut = $debut;
$date_us_debut = implode('-',array_reverse (explode('/',$date_fr_debut)));
// Convertion de la date fin
$date_fr_fin = $fin;
$date_us_fin = implode('-',array_reverse (explode('/',$date_fr_fin)));
// creation d'une variable qui demande d'inserer les donnée dans la BD
$sql = "INSERT INTO agenda
VALUES
('','$congres','$mois','$date_us_debut','$date_us_fin','$ville','$pays','$commercial','$inscription','$budget','$conferencier','$presse','$soutien')";
//// Envoie une requête SQL à un serveur MySQL
mysql_query ($sql);
?>
MA QUESTION : je ne peux pas procéder comme dans le tuto car tout le code de vérification et d'envoie se trouve sur la meme page.
moi je voudrais que la vérification se fasse sur ma page index.php et que l'upload se fasse sur la page confirmation_ajout.php
Cela est il possible ?
si oui, comment faut il découpé le code car j'ai essayé plusieurs truc mais sans résultat.
merci de votre aide
PS, voici le code du tuto
// ENVOIE DU FICHIER PDF DU PROGRAMME
if(isset($_FILES['PDF'])) // si la variable PDF existe
{
// parametre
unset($erreur); // Detruire la variable $erreur (ne pas affiché la variable)
$extensions_ok = array('pdf'); // Autorisé juste les fichiers PDF
$taille_max = 2000000; // avec un poid MAXIMUM de 4Mo (1Mo = 1000000)
$dest_dossier = 'PDF_programme/'; // Chemin du dossier qui vas recevoir les PDF... utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
// vérifications
if( !in_array( substr(strrchr($_FILES['PDF']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Vous ne pourvez soumettre qu\'un fichier PDF, merci !';
}
elseif( file_exists($_FILES['PDF']['tmp_name'])and filesize($_FILES['PDF']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier PDF doit faire moins de 4 Méga !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['PDF']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['PDF']['tmp_name'], $dest_dossier . $dest_fichier);
}
}