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 :

Vérification de condition avec affichage message


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Points : 227
    Points
    227
    Par défaut Vérification de condition avec affichage message
    Bonsoir !!

    Voilà j'ai un petit problème avec mes messages devant s'afficher suivant la condition, ils ne s'affichent pas ... sauf la deuxième qui concerne le type d'extension.

    Pourtant je déduis que la condition est bien vérifiée, et que tout est correct puisque l'image n'est pas uploader vers le dossier de destination.

    Quel pourrait-être le problème ?

    Voici le code concerné :

    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
     
    if(isset($_FILES['image']['tmp_name'])  && !empty($_FILES['image']['tmp_name']))
    {
    		unset($erreur);
    		$extension_tolere = array('png', 'jpg', 'jpeg', 'gif', 'PNG', 'JPG', 'JPEG', 'GIF');		// extension d'images autorisées
    		$poids_max = 60000;
    		$dossier_upload = "../images/upload/";
     
    		list($width, $height, $type, $dim) = getimagesize($_FILES['image']['tmp_name']);  // $dim donne directement height="$height" width="$width"
    		if($width > 450)
    		{
    				$erreur = 'Votre image est trop large, la largeur est limitée à 450px.';
    		}
    		elseif( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extension_tolere ) )		// si l'extension n'est pas de type $extension_tolere
    		{
    				$erreur = 'Votre image doit-être de type png, gif, jpeg ou jpg.';
    		}
    		elseif( file_exists($_FILES['image']['tmp_name'])		
    		&& filesize($_FILES['image']['tmp_name']) > $poids_max)	 // si son poids est supérieur à poids_max
    		{
    				$erreur = 'Votre image doit être inférieure à 60Ko !';
    		}
    		if(!isset($erreur))
    		{
    				$dest_img = basename($_FILES['image']['name']);		// name signifie le nom de l'image sur la machine du visiteur
    				$dest_img = strtr($dest_img,
    				'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
    				'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');		// remplace les caractères spéciaux
    				$dest_img = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_img);		// remplace les autres caractères spéciaux
    				move_uploaded_file($_FILES['image']['tmp_name'], $dossier_upload . $dest_img);		// tmp_name chemin temporaire du fichier
    				$alt = explode('.', $dest_img);		// $alt[0] contient le nom de l'image, alt[1] son extension
    				$chemin = $dossier_upload . $dest_img;		// le chemin relatif depuis la page php								
    		}
    		if(isset($erreur))
    		{
    				echo '<p>' . $erreur .'</p>';
    		}
    }
    Autre question, je pense pas que ce soit possible, mais je demande quand même

    Est-il possible de pouvoir utiliser, par exemple la variable $dim située dans mon code hors des conditions, car évidemment si je fais un echo de cette variable hors de celles-ci : variable inconnue.

    Merci

  2. #2
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    Regarde du côté de la profondeur des variables...
    J'ai pas lu ton code, mais en général, il faut déclarer une variable "tout en haut" pour qu'elle soit acessible de partout!
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Points : 227
    Points
    227
    Par défaut
    Citation Envoyé par Julien.alkaza
    Regarde du côté de la profondeur des variables...
    C'est à dire ?
    Qu'entends-tu par la profondeur des variables ?

  4. #4
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    Ben si tu as une structure comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    if ... 
    {
        variable 1 = TATA
        instructions...
    }
    variable 1 = TOTO
    variable 2
    Ben variable 1 et variable 1 ( : : : ) sont deux variables différentes.

    Donc si tu as une variable dans une boucle, selon comment elle est déclarée, elle n'est accessible que depuis ta boucle ==>TATA

    donc en gros, il faut que tu déclare ta variable avant tes tests...

    Mais, j'ai du mal à expliquer cela à cette heure là!!
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Points : 227
    Points
    227
    Par défaut
    Citation Envoyé par Julien.alkaza
    Ben variable 1 et variable 1 ( : : : ) sont deux variables différentes.
    Ben oui, ça je m'en doute bien, puisque si j'essaie de d'utiliser la 1ère hors de la condition, j'ai un message d'erreur.

    Citation Envoyé par Julien.alkaza
    donc en gros, il faut que tu déclare ta variable avant tes tests...
    Oui, je m'en doutais bien qu'il n'y avait pas d'autre solution.

    Merci

    Sinon, personne n'a une idée pourquoi un seul message sur trois s'affiche.

    Si j'ai une une autre extension que celles définies, j'ai bien mon message d'erreur, mais si j'ai une largeur supérieure ou un poids supérieur d'image non autorisé, mon message d'erreur ne s'affiche pas.

  6. #6
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    Je crois que j'ai trouvé!!!!

    En fait, tu affecte plusieurs valeurs à ta variable erreur....
    donc, il affichela dernière qui lui a été attribuée...

    Sinon, je vois pas d'où peut venir l'erreur!!!
    Concatène tes erreurs à la limite....
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 221
    Points : 227
    Points
    227
    Par défaut
    Merci, mais c'est pas ça, le seul message affiché n'est pas le dernier mais le deuxième des trois.

    J'avais aussi essayé en concaténant, mais cela ne marchait pas plus pour autant, donc, j'ai remis comme au départ.

Discussions similaires

  1. [XL-2003] Trois Condition et affichage message box
    Par logiclogic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/06/2010, 21h26
  2. Réponses: 2
    Dernier message: 11/06/2009, 23h48
  3. Affichage message d'erreur avec struts 2 et freemarker
    Par Cincinnatus dans le forum Struts 2
    Réponses: 6
    Dernier message: 15/05/2009, 09h29
  4. Réponses: 12
    Dernier message: 11/12/2007, 16h47
  5. affichage message avec case à cocher
    Par manu486 dans le forum Modélisation
    Réponses: 1
    Dernier message: 28/07/2007, 19h44

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