Page 1 sur 1

Notice: Undefined index

Posté : 11 déc. 2013, 20:11
par flavbleach
Bonjour, depuis quelque chose, cette erreur intervient avec le code suivant, et je ne comprends pas pourquoi il ne trouve pas "avatar" (sachant que le formulaire est avant) :
Le truc c'est que le code fonctionne sur mon site en ligne mais pas avec WampServer en local...

<?php
$dossier = '../fichiersmembre/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 20000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Debut des verifications de securite...
if (isset($_POST['avatar'])){
}else{
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,
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiii?ooooouuuuyy',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
$query2 = mysql_query("INSERT INTO fichiers VALUES ('','$fichier')") or die(mysql_error());
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ca a fonctionne...
{
echo 'Upload effectue avec succes !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
}
?>

Merci de votre aide ! ^^

Re: Notice: Undefined index

Posté : 11 déc. 2013, 20:27
par damien_55
Slt,

Notice undefined index veut dire que tu as une variable indefini dans ton script.

Le message d'erreur t'indique la ligne dans ton code ou est placé cette variable et ainsi savoir laquelle c'est. Tu dois initialisé cette variable dans ton code.

Re: Notice: Undefined index

Posté : 11 déc. 2013, 20:29
par flavbleach
Voici le code en entier :
<?php
include ('../pages/entetelog.php');
include ('../secur/vars.php');
mysql_connect('xxxxx','xxxxx','xxxxx') or die();
mysql_select_db('xxxx')or die();
?>
<center>
<table border="1px">
<th>
<form method="POST" action="" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
	<input type="file" name="avatar"/>
	<input type="submit" value="Uploader !"/>
</form>

</th>
</table>

<?php
$dossier = '../fichiersmembre/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 20000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.'); 
//Debut des verifications de securite...
if (isset($_POST['avatar'])){
}else{
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, 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiii?ooooouuuuyy', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
	 $query2 = mysql_query("INSERT INTO fichiers VALUES ('','$fichier')") or die(mysql_error());
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ca a fonctionne...
     {
          echo 'Upload effectue avec succes !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
}
?>
</center>

Re: Notice: Undefined index

Posté : 11 déc. 2013, 21:14
par damien_55
tu peux nous donner le message d'erreur en entier, svp.

Re: Notice: Undefined index

Posté : 11 déc. 2013, 21:17
par flavbleach
( ! ) Notice: Undefined index: avatar in C:\wamp\www\account\uploadfichier.php on line 22
Call Stack
# Time Memory Function Location
1 0.0003 140160 {main}( ) ..\bdd.php:0
2 0.0006 148552 include( 'C:\wamp\www\account\uploadfichier.php' ) ..\bdd.php:7

( ! ) Notice: Undefined index: avatar in C:\wamp\www\account\uploadfichier.php on line 24
Call Stack
# Time Memory Function Location
1 0.0003 140160 {main}( ) ..\bdd.php:0
2 0.0006 148552 include( 'C:\wamp\www\account\uploadfichier.php' ) ..\bdd.php:7

( ! ) Notice: Undefined index: avatar in C:\wamp\www\account\uploadfichier.php on line 26
Call Stack
# Time Memory Function Location
1 0.0003 140160 {main}( ) ..\bdd.php:0
2 0.0006 148552 include( 'C:\wamp\www\account\uploadfichier.php' ) ..\bdd.php:7

Merci :D

Re: Notice: Undefined index

Posté : 11 déc. 2013, 23:11
par moogli
salut,


ceci est normal, lorsque tu affiche la page, le formulaire n'est pas posté donc les index n'existe pas.

il faut que tu conditionne la validation du formulaire afin d'être certain que celui est posté.
généralement on utilise l’existence d'un (ou plusieurs) champs dans le tableau $_POST (ou $_GET si tu utilise ma méthode $_GET).


@+

Re: Notice: Undefined index

Posté : 12 déc. 2013, 18:02
par flavbleach
Mais même si je rajoute un :
If (isset($_POST['avatar'])){
}
ça ne fonctionne toujours pas :/

Re: Notice: Undefined index

Posté : 12 déc. 2013, 18:10
par damien_55
hello,
( ! ) Notice: Undefined index: avatar in C:\wamp\www\account\uploadfichier.php on line 22
Dans ta fichier uploadfichier.php, que contient ta ligne 22 ?

Re: Notice: Undefined index

Posté : 12 déc. 2013, 18:47
par flavbleach
"$fichier = basename($_FILES['avatar']['name']);" //l22

Re: Notice: Undefined index

Posté : 12 déc. 2013, 19:03
par damien_55
Cette variable
$_FILES['avatar']['name']
est indéfini. il faut l'initialisé.

Pense aussi à la remarque de moogli.