Bonjour,
je viens vous voir car j'ai un problème pour le traitement d'un formulaire.
je m'explique, j'ai un formulaire qui a pour but d'uploader un fichier pdf. donc je prend le nom, le fichier en question, la date, et je dois indiquer à qui le fichier sera associé
Pour le traitement, je n'ai pas eu trop de difficulté, mais lors des tests, j'ai un problème, j'ai un fichier A de 6ko et un fichier B de 8mo
lors du traitement du fichier A, je n'ai aucun problème, mais lors du traitement du fichier B, j'ai une erreur qui m'indique que la variable "nom" n'est pas définie, alors que juste avant pour le fichier A le traitement est OK.
De plus, j'ai pensé à la taille du fichier mais ce n'est pas cela car j'ai fais des test pour la taille voici le code pour traiter le fichier.
Merci par avance pour votre aide.
Modifié par cid5420 (03 Jan 2014 - 16:59)
je viens vous voir car j'ai un problème pour le traitement d'un formulaire.
je m'explique, j'ai un formulaire qui a pour but d'uploader un fichier pdf. donc je prend le nom, le fichier en question, la date, et je dois indiquer à qui le fichier sera associé
<?php
//test erreurs
if(isset($_GET['err']))
{
if($_GET['err'] == 1)
{
?>
<p class="P_erreurs">Tous les champs n'ont pas été rempli. <a href="javascript:history.back();">Retour</a></p>
<?php
}
else if($_GET['err'] == 2)
{
?>
<p class="P_erreurs">Le nom de fichier existe déja, veuillez le modifier.</p>
<?php
}
}
else
{
?>
<h1>Ajoutez un nouveau rapport</h1>
<form action="trait-admin2.php" method="post" name="Nouveau_rapport" enctype="multipart/form-data">
<fieldset><legend>Rapport</legend>
<label for="nom" class="float">Nom du rapport :</label> <input type="text" name="nom" id="nom" size="30" /><br/>
<label for="lien" class="float">Ajoutez un rapport :</label> <input type="file" name="lien" id="lien" size="30" /><br/>
<label for="date" class="float">Date du rapport :</label>
<select name="jour" class="dates">
<option value="01">01</option>
<option value="02">02</option>
</select>
<select name="mois" class="dates">
<option value="01">Janvier</option>
</select>
<select name="annee" class="dates">
<option value="2013">2013</option>
<option value="2014">2014</option>
</select><br/>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=metrosite', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<label for="client" class="float">Société :</label> <select name="clients" id="client" size="1" /><br/>
<option selected>Veuillez indiquer un client...</option>
<?php
$reponse = $bdd->query('SELECT * FROM clients');
while ($donnees = $reponse->fetch())
{
?><option value="<?php echo $donnees['id']; ?>"> <?php echo $donnees['societe']; ?></option>
<?php
}
?>
</select>
<div class="center"><input type="submit" value="Envoyez" /></div>
</fieldset>
</form>
<?php
}
?>
Pour le traitement, je n'ai pas eu trop de difficulté, mais lors des tests, j'ai un problème, j'ai un fichier A de 6ko et un fichier B de 8mo
lors du traitement du fichier A, je n'ai aucun problème, mais lors du traitement du fichier B, j'ai une erreur qui m'indique que la variable "nom" n'est pas définie, alors que juste avant pour le fichier A le traitement est OK.
De plus, j'ai pensé à la taille du fichier mais ce n'est pas cela car j'ai fais des test pour la taille voici le code pour traiter le fichier.
//////////////////////////////////////////////////////////
$dossier = '../rapports/';
$fichier = basename($_FILES['lien']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['lien']['tmp_name']);
$extensions = array('.csv', '.pdf');
$extension = strrchr($_FILES['lien']['name'], '.');
//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 ajouter un fichier de type pdf. <a href="admin2.php">Retour</a>';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...<a href="admin2.php">Retour</a>';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['lien']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{?>
<p>vous venez d'ajouter un rapport avec succès !<a href="admin2.php">Ajoutez un nouveau rapport</a></p>
Merci par avance pour votre aide.
Modifié par cid5420 (03 Jan 2014 - 16:59)