Formulaire php

Fermé
guezz - 4 févr. 2008 à 18:29
pmorin Messages postés 23 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 25 novembre 2008 - 7 févr. 2008 à 10:21
Bonjour,
Bonjour,
j'ai un formulaire d'upload d' image ki marche a merveil mais kan je le duplique il m'envoi des messages d'erreur je n'arrive pas a comprendre.voici mes code:

page1:
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<span class="style8">photo :</span>
<input type="file" name="avatar" >

page2:

<?php
$fichier = basename($_FILES['avatar']['name']);
$dossier = 'upload/';

$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['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 uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
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['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
mysql_connect("localhost","root","") or die("Erreur de connection au serveur");
mysql_select_db("prod") or die("Erreur de connection a la base de donnees");//ouvre la BDD
mysql_query("INSERT INTO juste VALUES('','$dossier','$fichier','$taille','$extension')")
or die(" Erreur d'insertion de donnees");
echo "Nous donnerons suite à votre enrégistrement dans les plus brefs delais";
mysql_close();
?>
voici c ke je reçoi comme messages d'ereur:
Notice: Undefined index: avatar in c:\program files\easyphp1-8\www\site fai\confirmation5.php on line 672

Notice: Undefined index: avatar in c:\program files\easyphp1-8\www\site fai\confirmation5.php on line 676

Notice: Undefined index: avatar in c:\program files\easyphp1-8\www\site fai\confirmation5.php on line 678
Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...Nous donnerons suite à votre enrégistrement dans les plus brefs delais

ke faire?
A voir également:

3 réponses

pmorin Messages postés 23 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 25 novembre 2008
4 févr. 2008 à 18:33
Peux-tu éditer le fichier "confirmation5.php" avec les numéros de ligne
0
671. <?php
672. $fichier = basename($_FILES['avatar']['name']);
673.$dossier = 'upload/';
674.
675.$taille_maxi = 100000;
676.$taille = filesize($_FILES['avatar']['tmp_name']);
677.$extensions = array('.png', '.gif', '.jpg', '.jpeg');
678.$extension = strrchr($_FILES['avatar']['name'], '.');
679.//Début des vérifications de sécurité...
680.if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
681.{
682.$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
683.}
684.if($taille>$taille_maxi)
685.{
686.$erreur = 'Le fichier est trop gros...';
687.}
688.if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
689.{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
mysql_connect("localhost","root","") or die("Erreur de connection au serveur");
mysql_select_db("prod") or die("Erreur de connection a la base de donnees");//ouvre la BDD
mysql_query("INSERT INTO juste VALUES('','$dossier','$fichier','$taille','$extension')")
or die(" Erreur d'insertion de donnees");
echo "Nous donnerons suite à votre enrégistrement dans les plus brefs delais";
mysql_close();
?>
0
pmorin Messages postés 23 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 25 novembre 2008
7 févr. 2008 à 10:21
Salut,

Excuses pour le délais de réponse.

erreur sur lea ligne: $fichier = basename($_FILES['avatar']['name']);

Concernant tes erreurs, elles viennent du fait que 'avatar' et 'name' ne sont pas définis (voir index.php)

voir : http://www.manuelphp.com/php/function.basename.php
voir: http://perso.univ-rennes1.fr/pascal.aubry/doc/php_variables/_files.php

@+
0