IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Upload video => Undefined index


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Upload video => Undefined index
    Bonjour, je suis en train de faire un système d'avatar pour le profile de mes membres et je me rends compte que si quelqu'un essaye de poster une vidéo a la place d'une image,c'est tout le code qui plante(Undefined index sur tout les $_post) Pourtant il me semble faire toute les bonnes vérification avant pour empêcher ça...enfin je vous laisse voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
     
    	//settings
    	$ok = TRUE;
    	$extension = strtolower(substr(strrchr($_FILES['image']['name'],'.'),1));
    	$valid_formats = array("jpg", "png", "jpeg", "JPG", "PNG");
    	$size = filesize($_FILES['image']['tmp_name']);
     
    	if($_FILES['image']['error']>0)
    	{
            $erreur = "Une erreur est survenue";
    	$ok = FALSE;
    	}	
     
           function check_extension($extension,$valid_formats)
    	{
    	 if(in_array($extension,$valid_formats))
    	   {
    	   return TRUE;
    	   }else{
    	   return FALSE;
    	   }
    	}
    	if(!check_extension($extension,$valid_formats)){
    	   $erreur = "Invalide extention";
    	  $ok = FALSE;
    	}
     
    	 if($size > 2097152) 
    	{
    	$erreur = "votre avatar est trop gros";
    	$ok =  FALSE ;
    	}	
    	if($size <= 1) 
    	{
    	$erreur = "";
    	$ok =  FALSE ;
    	}
     
    	if(isset($_FILES['image']) && ($_FILES['image']['error'] == 0 )):
    	list ($width,$height,$type,$attr) = getimagesize ($_FILES['image']['tmp_name']);
    	if (is_null($type) && $width==0 && $height==0):
    	$erreur = "Une erreur est survenue"
            $ok = FALSE;
    	endif;
    	endif; 
     
     
    	if($ok = TRUE ){
    	//inscription dans la bdd + copie de l'image et redirection
    	}
     
    }
    Comment y parer ? merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ commence par remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$extension = strtolower(substr(strrchr($_FILES['image']['name'],'.'),1));
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$extension = strtolower(pathinfo($_FILES['image']['name'],PATHINFO_EXTENSION));
    2/ il faudrait voir le formulaire.
    3/ tu demandes l'extension du fichier image avant de tester si l'image existe...
    4/ il manque un ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$erreur = "Une erreur est survenue"
    Bref. Ca manque de rigueur et de logique.

    => exemple ici : 4-C2. Traitement Photo : news_traiter_photo.php
    Dernière modification par Invité ; 26/01/2014 à 15h49.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour, merci pour votre conseil.

    Manque de rigueur et logique oui, j'apprends le php petit a petit mais je suis ici pour apprendre et j'accepte les critiques.

    voici le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    		<form method="post" action="account.php" enctype="multipart/form-data">
    			<h3>Siteweb</h3>
    			<input type="text" style="width:220px;" name="siteweb" maxlength="40" value="<?php echo htmlspecialchars($users->website)?>">
    			<h3>Signature</h3>
    			<input type="text" style="width:220px;" name="signature" maxlength="100" value="<?php echo htmlspecialchars($users->sign)?>">			
                <h3>Pays</h3>
    			<SELECT name="pays" style="width:230px;" >
    			<option value="1"><?php echo htmlspecialchars($users->pays);?></option>
    			<option value="0">---------</option>
    			<option value="France">France</option>
    			<option value="Belgique">Belgique</option>
    			<option value="Canada">Canada</option>
    			<option value="Autre">Autre</option>
    			</SELECT>
    			<h3>Ville</h3>
    		    <input type="text" style="width:225px;" name="ville" maxlength="20" value="<?php echo htmlspecialchars($users->ville)?>">	
    			<h3>A propos de vous</h3>
    			<textarea type="text" style="width:530px;" rows="4" name="apropos" maxlength="00" value="<?php echo htmlspecialchars($users->apropos)?>"></textarea><br>	
    		    <h3>Avatar</h3>
    			<input type="file" name="image" />
    			<button class="btn" type="submit">Mise a jour</button>
    		</form>
    Je vous posterais mon nouveau code dans 1h le temps de bien lire votre lien et de faire les modifs nécessaire.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Voila enfin finis et je pense avoir compris mes principales erreurs N’empêche super le tuto , il va direct dans mes favoris

    mon nouveau code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
     
    	if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
     
    	$ok = TRUE;
     
     
    	if(!empty($_POST['siteweb']) && strlen($_POST['siteweb']) > 40 || !empty($_POST['siteweb']) && strlen($_POST['siteweb']) < 5)
    	{
    		$ok = FALSE;
    		$erreur_site_web = "Ce champ ne doit pas dépasser 40 charactère";
     
    	}
     
    	if(!empty($_POST['signature']) && strlen($_POST['signature']) > 100 || !empty($_POST['signature']) && strlen($_POST['signature']) < 5
    	|| !empty($_POST['signature']) && !preg_match('#^[a-zA-Z0-9]+$#', $_POST['signature']))
    	{
    		$ok = FALSE;
    		$erreur_sign ="Ce champ ne doit pas dépasser 100 charactères. Les charactères spéciaux sont interdit";
     
    	}
     
    	$pays_autorisé = array (
    	"France", "Belgique", "Canada" , "Autre" ,"1"
    	);
     
    	if(!empty($_POST['pays']) && !in_array($_POST['pays'], $pays_autorisé))
    	{
    		$ok = FALSE;
    		$erreur_pays ="Ce pays ne fait pas parti de la liste";
    	}
     
    	if(!empty($_POST['ville']) && strlen($_POST['ville']) > 20 || !empty($_POST['ville']) && strlen($_POST['ville']) < 5
    	|| !empty($_POST['ville']) && !preg_match('#^[a-zA-Z]#', $_POST['ville']))
    	{
    		$ok = FALSE;
    		$erreur_ville ="Ce champ ne doit pas dépasser 20 charactères et ne doit contenir que des lettres";
    	}
     
    	if(!empty($_POST['apropos']) && strlen($_POST['apropos']) > 400 || !empty($_POST['apropos']) && strlen($_POST['apropos']) < 5)
     
    	{
    		$ok = FALSE;
    		$erreur_propos ="Ce champ ne doit pas dépasser 400 charactères.(et faire 5 charactère minimum)";
    	}
     
     
     
    	if(isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
     
    	//settings
    	$extension = strtolower(pathinfo($_FILES['image']['name'],PATHINFO_EXTENSION));
    	define('FILE_SIZEMAX_PHOTO', 	2097152);	
        define('FILE_SIZEMAX_FILE',	2745300);
    	define('FILE_EXTENSION_PHOTO',	'jpg,jpeg,png');
    	define('FILE_EXTENSION_FILE',	'pdf');
    	define('FILE_MIMETYPE_PHOTO',	'image/jpeg,image/png,image');
    	define('FILE_MIMETYPE_FILE',	'application/pdf');
    	$finfo 					= new finfo(FILEINFO_MIME_TYPE, NULL); 
    	$file_MimeType 			= $finfo->file($_FILES['image']['tmp_name']);
     
    	if (UPLOAD_ERR_OK<>0 && UPLOAD_ERR_FORM_SIZE==2) {
    		$erreur_image = "Taille de fichier trop important ";
    		$ok = FALSE;
    	}
     
    	if ($_FILES['image']['size'] > FILE_SIZEMAX_PHOTO) {
    		$erreur_image = "Taille de fichier supérieure à la taille maxi autorisée";
    		$ok = FALSE;
    	}
     
    	elseif(!in_array($extension, explode(',', constant('FILE_EXTENSION_PHOTO')))) {
    		$erreur_image = "L'extension ne correspond pas ";
    		if(in_array($file_MimeType, explode(',', constant('FILE_MIMETYPE_PHOTO')))) {
     
    		  $erreur_image = "L'extension ne correspond pas au type MIME !";
    		}
    		$ok = FALSE;
    	}
     
    	elseif(!in_array($file_MimeType, explode(',', constant('FILE_MIMETYPE_PHOTO')))) {
    		$erreur_image = "Le type MIME ne correspond pas";
    		if(in_array($extension, explode(',', constant('FILE_EXTENSION_PHOTO')))) {
     
    		 $erreur_image = "L'extension ne correspond pas au type MIME !";
    		}
    		$ok = FALSE;
    	}
     
     
    	}
     
    	if($ok = TRUE) {
    	 //inscription des infos dans la bdd + copie de l'image et redirection
     
     
    	}
     
     
     
     
     
    }
    J'ai encore 2/3 truc a modifier mais le principale est fait. Maintenant lorsque je poste une vidéo je n'est plus les "Undefined index" mais en revanche l'erreur php "Taille de fichier supérieure à la taille maxi " n’apparait pas, bizarrement elle apparait seulement quand il s'agit d'image c'est normal?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	define('FILE_EXTENSION_PHOTO',	'jpg,jpeg,png');
    	define('FILE_EXTENSION_FILE',	'pdf');
    	define('FILE_MIMETYPE_PHOTO',	'image/jpeg,image/png,image');
    	define('FILE_MIMETYPE_FILE',	'application/pdf');
    Je ne vois pas de vidéo là-dedans !

    N.B. $pays_autorisé : il faut EVITER les accents dans les noms de variables !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$erreur_propos ="Ce champ ne doit pas dépasser 400 charactères.(et faire 5 charactère minimum)";
    Il faudrait aussi soigner l'orthographe ! (charactère ??)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Oui, pour les fautes j'ai fait ça a la vite . Je peaufinerais tout ça demain.

    Je passe le sujet en résolu en tout cas, merci encore d'avoir pris le temps de me répondre ! Bonne soirée!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Librairies] PHPMVC : Undefined index
    Par Benat64 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/12/2005, 09h27
  2. [Noob] Undefined index: id
    Par Devil666 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 13h00
  3. Undefined index
    Par sebduduf dans le forum Langage
    Réponses: 5
    Dernier message: 02/11/2005, 12h13
  4. Erreur de "Undefined index" sur HTTP_REFERER
    Par guy2004 dans le forum Langage
    Réponses: 4
    Dernier message: 12/10/2005, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo