Bonjour,
Après un petit moment d'absence, je reviens vous embeter avec mes formulaires ...
Je voudrais améliorer mon formulaire d'envoi de fichier unique et pouvoir envoyer 3 fichier simultanément (mais pas à chaque fois) + un commentaire + une URL.
Jusqu'à présent mon formulaire d'envoi de fichier unique + commentaire fonctionne bien.
Voici le code de la page rediger_article.php:
Et voici le code de la page reception.php:
J'ai déjà rajouter dans mon formulaire les champs pour les 2 autres fichiers ainsi que pour l'URL (d'un article pour le voir dans son contexte original).
J'aimerais savoir ce que je dois modifier au formulaire de reception pour qu'il me vérifie les memes choses que le premier fichier et ensuite qu'il m'envoie les fichiers dans mon dossier fichiers_upload.
Question supplémentaire:
Dois-je créer dans ma BDD les champs:
Mais pour chacun des fichiers ??? ex up_filename_2 et up_filename_3 ???
---> Je pense que la réponse est oui mais comme il y a toujours des astuces.... je risquerais de passer à côté ...
D'avance merci
Après un petit moment d'absence, je reviens vous embeter avec mes formulaires ...
Je voudrais améliorer mon formulaire d'envoi de fichier unique et pouvoir envoyer 3 fichier simultanément (mais pas à chaque fois) + un commentaire + une URL.
Jusqu'à présent mon formulaire d'envoi de fichier unique + commentaire fonctionne bien.
Voici le code de la page rediger_article.php:
<?php
<form method="POST" action="../reception.php" enctype="multipart/form-data">
<fieldset>
<legend>LOGIN</legend> <!-- Titre du fieldset -->
<p> <label for="inscr_pseudo">Votre pseudo :</label><br />
<input type="text" name="inscr_pseudo" value="<?php echo $_SESSION['inscr_pseudo'];?>" id="inscr_pseudo"/> </p>
</fieldset>
<p>
<fieldset>
<legend>POSTEZ VOTRE ARTICLE</legend> <!-- Titre du fieldset -->
<p> <label for="up_titre_article">Le titre de votre article :</label><br />
<input type="text" name="up_titre_article" id="up_titre_article"/> </p>
<p> <label for="up_rubrique">Dans quelle rubrique se situe votre article :</label><br />
<select name="up_rubrique" id="up_rubrique">
<option value="aluminium">Aluminium</option>
<option value="appel_temoin">Appel à témoins</option>
<option value="armes_bio">Les armes biologiques</option>
<option value="statut">Statut de l'Assocciation</option>
<option value="temoignages">Témoignages</option>
<option value="vaccinations">Les vaccinations</option>
</select>
</p>
<label for="up_description">Commentaire relatif à l'article :</label> <br />
<textarea name="up_description" rows="8" cols="45" id="up_description">ICI</textarea>
<p>
<!-- On limite le fichier primaire à 10 000Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<label for="up_fichier">Sélectionnez votre fichier PRIMAIRE:</label><br />
<input type="file" name="up_fichier" id="up_fichier"><br />
<!-- On limite le fichier secondaire à 10 000Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<label for="up_fichier_2">Sélectionnez votre fichier SECONDAIRE:</label><br />
<input type="file" name="up_fichier_2" id="up_fichier_2"><br />
<!-- On limite le fichier tertiaire à 10 000Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<label for="up_fichier_3">Sélectionnez votre fichier TERTIAIRE:</label><br />
<input type="file" name="up_fichier_3" id="up_fichier_3">
<!-- URL de la news ou de l'article si dispo en ligne sur un autre site -->
<p> <label for="up_url_article">Le lien web de votre article :</label><br />
<input type="text" name="up_url_article" id="up_url_article"/> </p>
<p><input type="submit" name="envoyer" value="Poster l'article / fichier"></p>
<p><input type="reset" value="Effacer les champs" /></p>
</form>
?>
Et voici le code de la page reception.php:
<link rel="stylesheet" media="screen" type="text/css" title="Envoi" href="envoi.css" />
<meta http-equiv="Refresh" content="1;URL=../Pages/Propos_Article.php">
<?php include("../Fonctions/Connexion_bdd.php"); ?>
<?php
// Définition du dossier de stockage pour les documents images ou autres ...
$dossier = 'fichiers_upload/';
// $dossier = '/home/monsite/photos/'; (Dossier sur le serveur par exemple)
$taille_maxi = 10000000;
// On protège les caractères spéciaux d'une commande SQL
$up_id = mysql_real_escape_string($_POST['up_id']);
$inscr_pseudo = mysql_real_escape_string($_POST['inscr_pseudo']);
$up_filename = mysql_real_escape_string($_FILES['up_fichier']['name']);
$up_filesize = mysql_real_escape_string($_FILES['up_fichier']['size']);
$up_titre_article = mysql_real_escape_string($_POST['up_titre_article']);
$up_rubrique = mysql_real_escape_string($_POST['up_rubrique']);
$up_rubrique = mysql_real_escape_string($_POST['up_rubrique']);
$up_description = mysql_real_escape_string($_POST['up_description']);
$up_finalname = mysql_real_escape_string($_POST['up_finalname']);
$up_filedate = time();
// On sépare le nom du fichier et le nom du dossier
$up_filename = basename($_FILES['up_fichier']['name']);
// Enregistrement de la date et heure
$date = date("mdy");
$heure = date("His");
// Ajout de la date et l'heure au nom de fichier
$up_finalname= $up_filename."-".$date."-".$heure;
echo "Voici le fichier que vous venez d'envoyer: -->";
// La liste des extentions autorisées
$extensions = array('.png', '.bmp', '.gif', '.jpg', '.jpeg', '.pdf', '.doc', '.xls', '.txt');
// Trouve la dernière occurrence d'un caractère dans une chaîne
$extension = strrchr($_FILES['up_fichier']['name'], '.');
// Déclare le chemin d'accès au fichier
$up_lien = '../Gestion/fichiers_upload/'.$up_finalname;
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez envoyer un fichier de type png, bmp, gif, jpg, jpeg, pdf, doc xls ou txt...</br>';
}
if($up_filesize>$taille_maxi)
{
$erreur = 'Le fichier est trop gros ...</br>';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$up_filename1 = strtr($up_filename,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$up_filename = preg_replace('/([^.a-z0-9]+)/i', '-', $up_filename);
echo $up_filename1."<br></br>";
if(move_uploaded_file($_FILES['up_fichier']['tmp_name'], $dossier . $up_filename)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Transfert effectué avec succès !</br></br>';
echo 'Merci de votre contribution !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec du transfert !</br>';
}
}
else
{
echo $erreur;
}
// on écrit la requête sql
$sql = "INSERT INTO upload_fichier(
up_id,
inscr_pseudo,
up_filename,
up_filesize,
up_titre_article,
up_rubrique,
up_description,
up_finalname,
up_filedate,
up_lien)
VALUES( '$up_id',
'$inscr_pseudo',
'$up_filename',
'$up_filesize',
'$up_titre_article',
'$up_rubrique',
'$up_description',
'$up_finalname',
'$up_filedate',
'$up_lien')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
?>
J'ai déjà rajouter dans mon formulaire les champs pour les 2 autres fichiers ainsi que pour l'URL (d'un article pour le voir dans son contexte original).
J'aimerais savoir ce que je dois modifier au formulaire de reception pour qu'il me vérifie les memes choses que le premier fichier et ensuite qu'il m'envoie les fichiers dans mon dossier fichiers_upload.
Question supplémentaire:
Dois-je créer dans ma BDD les champs:
up_filename,
up_filesize,
up_finalname,
up_filedate,
up_lien)
Mais pour chacun des fichiers ??? ex up_filename_2 et up_filename_3 ???
---> Je pense que la réponse est oui mais comme il y a toujours des astuces.... je risquerais de passer à côté ...
D'avance merci