Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 18-06-2005 05:07:11

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Double insertion de données ! je ne comprend pas !

Bonjour à tous,

jai un petit soucis qui doit pas etre bien complqiué mais je bloque depuis 3 jours !!

en fait jai un formulaire qui ajoute des données dans ma BDD et dans ce form il y a un champs pr parcourir et aller chercher son image. Le probleme c'est que quand la personne rempli tou les champs mai ne met pas dimage, alors il m'insert les données quil a inscrite + une ligne de donnée vide, donc au final pr un enregistrement jen ai deux dont un vide !

Alors que ca fonctionne parfaitement lorsqu'il met une image.... pouvez vous maider svp ?

voici le code :

-------------------------

Code:

  if ($menu=="1"){
   
 // DEBUT UPLOAD IMAGE ------------------------------------------------------------------
   $message="";

   if ($boolform==1)
   {
    //vérifie que l'upload s'est bien passé
    if (is_uploaded_file($upfile))
    {
     //vérifie que le fichier est non vide
     if ($upfile_size>0)
     { 
      //vérifie si la taille du fichier ne dépasse pas la limite
      if ($upfile_size>$maxsize)
      {
       //fichier trop grand
       $message="Le fichier a une taille supérieure à la limite autorisée!";
      }
      else
      {
       //taille correcte, vérification du type de fichier
       $type=right($upfile_name,3);

       if ($type=="$type1" || $type=="$type2" || $type=="$type3"  || $type=="$type4" || $type=="$type5" || $type=="$type6")
       {
        //on va chercher la date de la journée sous la forme annéemoisjourheureminuteseconde (ex : 200361015159)
        $tmp=getdate();
        $jour=$tmp['mday'];
        $mois=$tmp['mon'];
        $annee=$tmp['year'];
        $h=$tmp['hours'];
        $m=$tmp['minutes'];
        $s=$tmp['seconds'];
        $tout="$annee$mois$jour$h$m$s"; 
        //on calcule le nombre de lettres avant le premier point
        $res = strpos("$upfile_name",".");
        //on extrait le nombre de lettre avant le point
        $type2=left($upfile_name,$res);
            //sauvegarde du fichier uploadé
         $savefile=$type2.".".$tout.".".$type;
         move_uploaded_file($upfile, "photos/".$savefile);
         
         //création de la miniature
         include ("resize.php");
         //fin creation        
       }
       else
       {
        $message="Ce type de fichier n'est pas autorisé!";


       }
      }
     }
    }
    else
    {
     //erreur
    }
   }

  ?>
  <center>
  <?php
   if ($message!="")
   {
echo "$message";
}
else {
}
// FIN UPLOAD IMAGE ------------------------------------------------------------------
 
  
  /* insertion de la nouvelle rubrique */
  $query5 = "INSERT INTO breve VALUES ('','$auteur','$titre','$yourFieldNameHere','$savefile','$mois','$annee')"; 
  $result5 = mysql_query($query5) or die('Erreur SQL !<br>'.$query5.'<br>'.mysql_error()); 
  echo "<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="conf">==> Votre brève à été ajouté !</span><BR>";
  }
 
}
else{
$menu="0";
}

----------------------------------

Hors ligne

 

#2 18-06-2005 06:20:42

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: Double insertion de données ! je ne comprend pas !

je sais pas comment tu fait ton formulaire, mais si $upfile est bien ton fichier envoyé, tu ne t'y prends pas de la bonne maniere...
deja, c'est $_FILES['upfile'];

et il faut que tu utilise les différentes valeurs du tableau.
$_FILES['fichier']['name']  -> Le nom du fichier original sur la machine source
$_FILES['fichier']['type'] -> Le type MIME du fichier, si le navigateur a fourni cette information
$_FILES['fichier']['size'] -> La taille du fichier envoyé, en octets
$_FILES['fichier']['tmp_name'] -> Le nom temporaire du fichier qui sera chargé sur la machine serveur
envoyer un fichier sur un serveur

Hors ligne

 

#3 18-06-2005 06:29:17

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

oui upfile c bien le nom dan le formulaire, mais lenregistrement du fichier image sur le serveur marche tres bien, c juste que quand jassocie cette insertion de donnée à une insertion en BDD et bien je ne comprend pas mais ca menregistre une ligne correctement et une autre vide !

mais cela uniquement lorsque je ne met pas dimage, lorsque jen met une à enregsitrer sur le serveur, lenregistrement se fai correctemen...

bizar ?

Hors ligne

 

#4 18-06-2005 06:36:50

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

est ce que ca veu dire que je doi remplacer tou mes $upfile par $_FILES['upfile'] dans mon code ?

Hors ligne

 

#5 18-06-2005 06:47:10

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

en fait bizarement quand je regarde dans ma BDD, il ma donc enregistré deux ligne au lieu d'une, et la premiere (avec un ID inferieure ex : 98) est completement vide, et la deuxieme (avec un ID superieure ex : 99), contien bien toutes les infos necessaires !

du coup à chaque enregistrement, jen ai deux :
- 1 ligne avec un id inferieur et ne contenant rien
- et une deuxieme avec l'ID qui suit et contenant ttes les infos !

Hors ligne

 

#6 18-06-2005 07:18:29

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: Double insertion de données ! je ne comprend pas !

si tu ne fait qu'une seule requete, il n'y a aucune raison pour qu'elle soit envoyée deux fois...
fait un echo de ta requete lorsqu'elle merde, ca donne quoi ?

Hors ligne

 

#7 18-06-2005 07:36:33

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

le probleme c quel merde pas... dc jai aucune erreure daffiché :

$result5 = mysql_query($query5) or die('Erreur SQL !<br>'.$query5.'<br>'.mysql_error());

jai mis ca pr quel me mette lerreure si il y en a une mais rien... tu connai un autre moyen ?

Hors ligne

 

#8 18-06-2005 08:11:37

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

aucune idée ? svp chui vraimen dan la merdasse la...

Hors ligne

 

#9 18-06-2005 08:12:44

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: Double insertion de données ! je ne comprend pas !

ce qui serait intéréssant à voir, c'est ta requete envoyée au serveur.
donc, que tu fasse un echo de la requete avant de l'envoyer, et que tu la montre.

sinon, mets une vérification sur l'envoi d'une image, et si il n'y en a pas d'envoyée, tu stoppe le script

Hors ligne

 

#10 18-06-2005 08:48:49

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

merci, mais la chui un peu perdu, chui pas une bete en¨PhP, est ce que tu pourrait me donner qlq indication sur les fonctions a utiliser pr cela ?

"tu fasse un echo de la requete avant de l'envoyer"
>> simplement echo $query5  ?
Dans ce cas ca me donne ca :
INSERT INTO breve VALUES ('','Dupont Jean','EEEEEEEEEE','sfsdfsdf','','06','2005')

>> la c dans le cas ou il ya pa dimage dc c normal quil y ai un champs libre

En inserant ces donnée, et en les reaffichant par la suite voila ce que ca me donne :
06-2005 | EEEEEEEEEE |  Auteur : Dupont Jean
-0 |  |  Auteur : 

>> DEUX insertions pr un seul enregistrement !


"sinon, mets une vérification sur l'envoi d'une image, et si il n'y en a pas d'envoyée, tu stoppe le script"
>> le probleme c que maintenant ca le fait même quand jenvoi une image, jy comprend plus rien !

Hors ligne

 

#11 18-06-2005 10:08:14

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: Double insertion de données ! je ne comprend pas !

ton truc est vraiment bizarre
pourrait-tu me compresser la page, ainsi que la requete permettant de créer la table, je vais essayer de regarder

Hors ligne

 

#12 18-06-2005 14:29:21

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

Oui jte le fai pa dire ! c vraiment bizar !

voila la page en question ainsi que sa table SQL !

http://www.marmiteamalices.com/Bureau.zip

jte remercie par avance pr ton aide, parceque la je sais plus trop quoi faire...

ca doi pas etre grand chose, mais bon tu va me dire ca...

Jattend tes news, Alex.

Hors ligne

 

#13 19-06-2005 13:49:15

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

stp t plus la ?

Hors ligne

 

#14 19-06-2005 14:24:48

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: Double insertion de données ! je ne comprend pas !

enleve le 'NOT NULL' au champ image
sinon, je ne vois aucune erreur, es-tu sur que tu ne pourrait pas executer ton script deux fois ?

(et désolé du retard, j'avai de la famille chez moi ce week end)

Hors ligne

 

#15 19-06-2005 14:33:17

rigolman
Membre
Date d'inscription: 18-06-2005
Messages: 10

Re: Double insertion de données ! je ne comprend pas !

c pa grave, je sais ce que c wink

jai enlevé le not null dans la BDD, mais ca na rien changé... et le script, tu la eu dans le zip sur mon serveur... si tu as regardé, tu as du voir que je lexecutai qune seule fois... a moins que jai bu, mais jai enlevé la requete dinsertion et il ninserait plsu rien, dc yen a qune...

Vraimen aucune autre idée ?

sinon c pa grav, c deja sympa davoir regardé...

Hors ligne