begin process at 2012 02 12 09:13:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Aide & documentation

 > 

affichage d'un message non desire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

affichage d'un message non desire

mardi 4 décembre 2007 à 11:58:05 | affichage d'un message non desire

guisx00

Bonjour, Je suis entrain de me remettre dans le php et je n'arrive plus à faire fonctionne correctement mon code J'avais cree avec des bout de code y à un bon moment un petit upload d'image Mais je viens de m'apercevoir que si je laisse vide le champ de l'image il me met "le fichier doit être au format ..." Et j'aimerais qu'il me l'affiche que si c'est pas le bon format Et quand y à aucune image d'envoyé il m'affiche rien J'ai essayer plusieurs fois en changeant les empty et isset mais je pense que je le change pas au bonne endroit ou que mon code est dans le mauvais sens Voici la version que j'avais au début sans mes changement qui ne fonctionne pas J'espere mettre expliqué et avoir été compris Merci d'avance à la ou les personnes pour leur(s) reponse if (isset($_FILES['fichier'])) { $msgimg = ""; $poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets) $repertoire = 'upload/news/'; // Repertoire d'upload list($width, $height, $type, $attr) = getimagesize($_FILES['fichier']['tmp_name']); // On vérifie le type du fichier if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif') { $erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .'; }// On vérifit le poids de l'image else if ($_FILES['fichier']['size'] > $poids_max) { $erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.'; } // On vérifit si le répertoire d'upload existe elseif (!file_exists($repertoire)) { $erreur = 'Erreur, le dossier d\'upload n\'existe pas.'; } else if($width>300 || $height>300) // si superieur { $erreur = 'Erreur, image supérieure à 300x300 pixels'; } // Si il y a une erreur on l'affiche sinon on peut uploader if(isset($erreur)) { $msgimg = '

' . $erreur . '

'; } else { // On définit l'extention du fichier puis on le nomme par le timestamp actuel if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; } if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; } if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; } if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; } $nom_fichier = time().$extention; // On upload le fichier sur le serveur. if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)) { $msgimg = '

Votre image à été uploadée sur le serveur avec succes!
Voici le nom: '.$nom_fichier.'

'; } else { $msgimg = '

L\'image n\'a pas pu être uploadée sur le serveur

'; } } }
mercredi 5 décembre 2007 à 01:49:50 | Re : affichage d'un message non desire

yoman64

Membre Club
Salut,
Pour vérifier qu'un fichier a bien été uploadé, vérifie que le fichier existe et/ou qu'il a un nom!

exemple:
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {
// alors le fichier existe et a été bien uploader
}

else{
//alors le fichier n'existe pas : erreur de transfert ou le champ était vide
}


Et un petit conseil pour la route:
Ne te fis pas au type renvoyé par le navigateur si tu veux savoir s'il sagit bien d'une image.
Tu utilise déja getimagesize, mais pas pour vérifié si il sagit d'un bon format, ce qui serait justement judicieux.


Exemple:


list($width, $height, $type, $attr) = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie le type du fichier

       // types de fichiers : 1=gif / 2=jpg / 3=png

       if (($type===1) || ($type===2) || ($type===3)) {
         // c'est bien une image
       }
       else
       {
          //c'est pas une image, ou le format n'est pas permis!
        }

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
mercredi 5 décembre 2007 à 01:56:01 | Re : affichage d'un message non desire

yoman64

Membre Club
Salut,
J'oubliais...
tu peux remplacé :

if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }

par

$ext=Array('.gif','.jpg','.png');
$nom_fichier = time().$ext[$type-1];


Et puis ajoute un chiffre aléatoire en plus du timestamp, bien que peux probable, il est possible que deux images soit uploadé a la meme seconde.

Tu peux meme généré un nouveau chiffre tant que le fichier existe, mais comme le risque est faible un seul chiffre aléatoire est probablement assez.

Par exemple:
$nom_fichier = time().rand(0,100).$ext[$type-1];


a+

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
mercredi 5 décembre 2007 à 10:16:24 | Re : affichage d'un message non desire

guisx00

Salut
Merci de ta reponse je test avec tes changement et jte fait voir mon code pour savoir si jai bien compris ton explication
mercredi 5 décembre 2007 à 10:33:41 | Re : affichage d'un message non desire

guisx00

Bon j'ai fait sa mais le prob cest qu'il minsere bien le nom de l'image dans la base mais il me fou pas l'image dans le dossier et m'indique à la fin de l'insertion toujours le message
"L'image à pas ete uploader..."

Je continu mes recherches en attendant une reponse
J'epere trouve sans avoir bessoin de reponse ^^

Voici le code pour le moment modifie

if (isset($_FILES['fichier']))
{
$msgimg = "";
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'upload/news/'; // Repertoire d'upload 
list($width, $height, $type, $attr) = getimagesize($_FILES['fichier']['tmp_name']);
/* On vérifie le type du fichier
Types de fichiers : 1=gif / 2=jpg / 3=png */
if (($type===1) || ($type===2) || ($type===3)) { // c'est bien une image
       }
else {//c'est pas une image, ou le format n'est pas permis!
$msgimg = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
   }// On vérifit le poids de l'image
if ($_FILES['fichier']['size'] > $poids_max)
{
$msgimg = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
   } // On vérifit si le répertoire d'upload existe  
else if (!file_exists($repertoire)) {
$msgimg = 'Erreur, le dossier d\'upload n\'existe pas.';
}
else if($width>300 || $height>300) // si superieur
{
$msgimg = 'Erreur, image supérieure à 300x300 pixels';
}
$ext=Array('.gif','.jpg','.png');
$nom_fichier = time().rand(0,100).$ext[$type-1];
// On upload le fichier sur le serveur et on verifie sont existance
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp))
{
$msgimg = '<center><div class="admin-ok">Votre image à été uploadée sur le serveur avec succes!<br />Voici le nom: '.$nom_fichier.'</div></center>';
}
else
{
$msgimg = '<center><div class="admin-no">L\'image n\'a pas pu être uploadée sur le serveur</div></center>';
}
   } //On ferme if (isset($_FILES['fichier']))
mercredi 5 décembre 2007 à 10:33:42 | Re : affichage d'un message non desire

guisx00

Bon j'ai fait sa mais le prob cest qu'il minsere bien le nom de l'image dans la base mais il me fou pas l'image dans le dossier et m'indique à la fin de l'insertion toujours le message
"L'image à pas ete uploader..."

Je continu mes recherches en attendant une reponse
J'epere trouve sans avoir bessoin de reponse ^^

Voici le code pour le moment modifie

if (isset($_FILES['fichier']))
{
$msgimg = "";
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'upload/news/'; // Repertoire d'upload 
list($width, $height, $type, $attr) = getimagesize($_FILES['fichier']['tmp_name']);
/* On vérifie le type du fichier
Types de fichiers : 1=gif / 2=jpg / 3=png */
if (($type===1) || ($type===2) || ($type===3)) { // c'est bien une image
       }
else {//c'est pas une image, ou le format n'est pas permis!
$msgimg = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
   }// On vérifit le poids de l'image
if ($_FILES['fichier']['size'] > $poids_max)
{
$msgimg = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
   } // On vérifit si le répertoire d'upload existe  
else if (!file_exists($repertoire)) {
$msgimg = 'Erreur, le dossier d\'upload n\'existe pas.';
}
else if($width>300 || $height>300) // si superieur
{
$msgimg = 'Erreur, image supérieure à 300x300 pixels';
}
$ext=Array('.gif','.jpg','.png');
$nom_fichier = time().rand(0,100).$ext[$type-1];
// On upload le fichier sur le serveur et on verifie sont existance
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp))
{
$msgimg = '<center><div class="admin-ok">Votre image à été uploadée sur le serveur avec succes!<br />Voici le nom: '.$nom_fichier.'</div></center>';
}
else
{
$msgimg = '<center><div class="admin-no">L\'image n\'a pas pu être uploadée sur le serveur</div></center>';
}
   } //On ferme if (isset($_FILES['fichier']))
mercredi 5 décembre 2007 à 11:11:32 | Re : affichage d'un message non desire

guisx00

Desole je sais pas pourquoi le message à été double

Voila j'ai virer la premier verif
if (isset($_FILES['fichier']))  {

Et deplace quelque truc et sa marche nikel voici le code terminer
Merci pour ton aide tu pourra juste me confirme si mon code est acceptable niveau sintaxe stp

$msgimg = "";
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'upload/news/'; // Repertoire d'upload 
list($width, $height, $type, $attr) = getimagesize($_FILES['fichier']['tmp_name']);
/* On vérifie le type du fichier
Types de fichiers : 1=gif / 2=jpg / 3=png */
if (($type===1) || ($type===2) || ($type===3)) { // c'est bien une image
// On vérifie le poids de l'image
if ($_FILES['fichier']['size'] > $poids_max)
{
$msgimg = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
   } // On vérifie si le répertoire d'upload existe  
else if (!file_exists($repertoire)) {
$msgimg = 'Erreur, le dossier d\'upload n\'existe pas.';
}
else if($width>300 || $height>300) // si superieur
{
$msgimg = 'Erreur, image supérieure à 300x300 pixels';
}
$ext=Array('.gif','.jpg','.png');
$nom_fichier = time().rand(0,100).$ext[$type-1];
       } //if (($type===1) || ($type===2) || ($type===3))
//C'est pas une image, ou le format n'est pas permis!   
else {
$msgimg = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
}
// On upload le fichier sur le serveur et on verifie sont existance
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
{
$msgimg = '<center><div class="admin-ok">Votre image à été uploadée sur le serveur avec succes!<br />Voici le nom: '.$nom_fichier.'</div></center>';
}
else
{
$msgimg = '<center><div class="admin-ok">Aucun upload na été demande</div></center>';
}

jeudi 6 décembre 2007 à 02:29:15 | Re : affichage d'un message non desire

yoman64

Membre Club
Réponse acceptée !
Salut, la syntaxe est un peu brouillon et certain tests sont fait dans le mauvais ordre mais en gros c'est bien, tien je t'ai fais une version plus clair, a toi de voir si tu la préfere


$msgimg = "";
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = '
upload/news/'; // Repertoire d'upload

if ($_FILES['fichier']['tmp_name'] && file_exists($_FILES['fichier']['tmp_name'])) // On commence par vérifié si le fichier a bien été uploader
{
  if (file_exists($repertoire)) // On vérifie si le repertoire existe
  {
    if ($_FILES['fichier']['size'] < $poids_max) //Ensuite on regarde si le fichier n'est pas trop gros
    {
      list($width, $height, $type, $attr) = getimagesize($_FILES['fichier']['tmp_name']);
      if (($type===1) || ($type===2) || ($type===3)) //Si le fichier est une image 1=gif / 2=jpg / 3=png
      {
        if($width<300 || $height<300) //On s'assure que l'image ne fait pas plus de 300pixel de haut  et de large
        {
          $ext=Array('.gif','.jpg','.png');
          $nom_fichier = time().rand(0,100).$ext[$type-1];
          if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier)) //On déplace l'image dans le dossier
          {
            $msgimg = '<center><div class="admin-ok">Votre image à été uploadée sur le serveur avec succes!<br />Voici le nom: '.$nom_fichier.'</div></center>';
          }
          else  //Si l'image n'a pas pu etre déplacé
            $msgimg = '<center><div class="admin-ok">Aucun upload na été demande</div></center>';
        }
        else // L'image fait plus que 300x300
          $msgimg = 'Erreur, image supérieure à 300x300 pixels'; 
      }
      else  // L'image n'est pas au bon format
        $msgimg = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
    }
    else  //L'image est trop lourde
       $msgimg = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.'; 
  }
  else 
    $msgimg = 'Erreur, le dossier d\'upload n\'existe pas.';
}
else 
    $msgimg = '<center><div class="admin-ok">Aucun upload na été demande</div></center>';       

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
jeudi 6 décembre 2007 à 08:50:15 | Re : affichage d'un message non desire

guisx00

Merci beaucoup c'est vrai que c'est plus clair dans se sens merci pour tes conseils et d'avoir mit mon code dans l'odre

A+ Bonne journée



Cette discussion est classée dans : fichier, type, image, files, if


Répondre à ce message

Sujets en rapport avec ce message

Upload ? [ par robapt ] Bonjour, je fais pour un site en ce moment un code qui demande un mots de passe avant qu'on puisse uploader le fichier qu'on choisit, j'ai les 2 code problème avec $_FILES [ par nicomilville ] Salut,J'ai un problème avec un code qui est censé uploader une image et mettre son chemin dans une base de donnée...Je n'ai aucune erreur...Mon code P Les fichiers [ par Bumcello ] Bonjour,Le script suivant sert à uploader des images de types differents. Et donc si je choisis un fichier jpeg cela ne fonctionne pas cela m'affiche correction d'un script upload image [ par smed79 ] bonjour,j'ai besoin de votre aide pour  modifier et corriger un script upload image. j'ai un probleme avec le message d'erreur pour la taille maximum un if dans un echo contenu dans une boucle [ par skull21 ] Bonjour,je récupère dabord les données de la base :  // Mise en variables simples des informations existantes de la fiche$image_cellule    = $donnees[ Pb upload php [ par ninho44 ] Bonjour, voila j'ai un petit probleme pour uploader une image et c'est la 1ere fois que je fais ça...je suis un peu perdu.EN fait, je ne vois pas pour Upload image [ par houssam88 ] salut a tousbon voila e rencontre un petit problème dans l'upload des images, pas tou a fait concernant l'upload (celui ci marche bien) mai j'aimerai Savoir si un champs file est vide [ par dypsis66 ] Bonjour, Pour que l'admin de mon site puisse modifier/ajouter des images sur son site j'ai mis ceci dans mon formulaire: ce que j'aimerai c'est vé Fusionner 2 images [ par yassin3 ] Bonjour à tous, bon voila j'aimerai faire un script pour fusionner 2 images une que je vais uploader directement depuis mon site avec une image source Probleme avec un formulaire d'upload [ par prog2ni ] Bonjour, Je suis debutant en php. Je vous explique mon probleme : J'ai en place un script d'upload d'image, il fonctionne, associer a ce script, j'in


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,627 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales