Partage
  • Partager sur Facebook
  • Partager sur Twitter

upload fichier

Sujet résolu
    11 mai 2006 à 15:13:48

    donc voila quand j'upload un fichier ladresse $_FILES['image_perso']['tmp_name']me donne une adresse invalide ... alors que le transfert c'est bien passer ...
    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2006 à 15:20:54

      Bonjour Pygame,

      Ne voudrais tu pas donner la partie de ton code pour que l'on puisse mieux t'aider ;)
      • Partager sur Facebook
      • Partager sur Twitter
        11 mai 2006 à 15:21:37

        essaye avec ca


        $upload_dir = $DOCUMENT_ROOT."/le_dossier_ou_tu_veux_ton_image/";

               
        $ecriture = move_uploaded_file($_FILES['le_nom_donné_a_ton_input']['tmp_name']
        ,$upload_dir."le_nom_que_tu_veu_donner_a_ton_image");
             


        Si tu veu que ton image garde le meme nom la derniere ligne tu met
        $ecriture = move_uploaded_file($_FILES['le_nom_donné_a_ton_input']['tmp_name']
        ,$upload_dir.$_FILES['le_nom_donné_a_ton_input']['name']);

        Ca devrait marcher
        • Partager sur Facebook
        • Partager sur Twitter
          11 mai 2006 à 15:26:01

          eeuuhh bah mon code est etalé sur troi page lol mais je vais vous en donner une parti

          form_inscription.php

          <input type="file" name="image_perso"/>

          fin_inscription.php

          if($_FILES['image_perso']['error'] > 0) $mess = 'erreur lors du transfert de l\'image perso';
                  else if ($pass1 != $pass2) $mess = '
          les deux mots de passe ne sont pas identiques';
                  else if ($_FILES['
          image_perso']['size'] > $taille_max) $mess = 'L\image est trop grosse';
                  else if($verif2 >= 1) $mess = '
          Le pseudo existe deja';
                  else if (!in_array($extension_upload,$extensions_valides)) $mess = '
          extention de l\'image incorrect';
                  else
                  {
                          //inscription des donner dans la table d'attente
                          $sql_attente = "INSERT INTO attente VALUES('".$num."', '".$pseudo."', '".$pass1."', '".$mail."', '".$desc."', '".$region."', '".$ville."', '".$_FILES['image_perso']['name']."', '".$_FILES['image_perso']['tmp_name']."')";
                          mysql_query($sql_attente);
                          //envoi du mail


          confirm.php

          $sql_recup_attente = "SELECT * FROM attente WHERE id='".$_GET['id']."'";
                  $attente1 = mysql_query($sql_recup_attente);
                  $attente = mysql_fetch_array($attente1);
                  $chemin_dossier = '/'.$attente['pseudo'].'/';
                  mkdir ($chemin_dossier, 0777);
                  $adresse_image = $chemin_dossier.$attente['nom_fichier'];
                  $resultat = copy($attente['tmp_fichier'], $adresse_image);
                  echo$adresse_image;
                  echo$attente['tmp_fichier'];
                  if($resultat)
                  {
                          $sql = "INSERT INTO comptes VALUES ('".$attente['pseudo']."', '".$attente['pass']."', '".$attente['mail']."', '".$attente['desc']."', '".$attente['ville']."', '".$attente['region']."','".$adresse_image."', '')";
                          mysql_query($sql);
                          $index_adresse = $chemin_dossier.'index.php';
                          $index = fopen($index_adresse, "a+");
                          $text_index = '<?php $pseudo_blog = "'.$attente['pseudo'].'"; include(\''.$adresse_site.'/blog.php\');?>';
                          fputs($index, $text_index);
                          fclose($index);
                          echo'Votre compte à bien été crée';
                  }



          lol bon courage pour relire mon code ...
          et c'est normal que je ne voit pas entierement ton code psycho34
          • Partager sur Facebook
          • Partager sur Twitter
            11 mai 2006 à 16:04:11

            montre nous tout le code pour voir ton erreur
            • Partager sur Facebook
            • Partager sur Twitter
              11 mai 2006 à 16:12:29

              C'est bon j'ai edité tu devrai voir tout le code.
              • Partager sur Facebook
              • Partager sur Twitter
                11 mai 2006 à 18:39:30

                form_inscription.php
                <?php
                //page de connection BDD
                include('conection.php');?>
                <html>
                <head><title><?php echo$nom_site.'.::.Formulaire d\'inscription'?></title></head>
                <body>
                <?php
                //debut formulaire
                ?>
                <form action="fin_form.php" method="post" enctype="multipart/form-data">
                Pseudo: <input type="texte" name="pseudo"/><br>
                Mot de passe: <input type="password" name="pass1"/><br>
                Verification du mot de passe: <input type="password" name="pass2"/><br>
                e-mail: <input type="text" name="mail"/><br>
                Image perso: <input type="file" name="image_perso"/><br>
                Description: <br><textarea name="desc" rows="8" cols="45">Vous pouvez vous decrire ici cela sera visible sur votre profil</textarea></br>
                Ville: <input type="text" name="ville"/></br>
                Region: <select name="region">
                <?php
                $compteur = 0;
                while($compteur < 95)
                {       
                        $compteur++?>
                       
                        <option value="<?echo$compteur;?>"><?echo$compteur;?></option>
                <?}?>
                </select>
                <input type="submit" value="envoyer" /></form>







                </body>
                </html>

                fin_form.php
                <?php
                //page de connection BDD
                include('conection.php');?>
                <html>
                <head><title><?php echo$nom_site.'.::.Fin du Formulaire d\'inscription'?></title></head>
                <body>
                <?php
                $taille_max = 1048576;

                //verification que tout les champs sont remplit
                if(!empty($_POST['
                pseudo']) and !empty($_POST['pass1']) AND !empty($_POST['pass2']) AND !empty($_FILES['image_perso']) and !empty($_POST['mail']) AND !empty($_POST['desc']) AND !empty($_POST['region']) AND !empty($_POST['ville']))
                {       
                        //declaration de toutes les variables accise lors du formulaire
                        $num = time();
                        $region = $_POST['
                region'];
                        $ville = $_POST['
                ville'];
                        $desc = $_POST['
                desc'];
                        $pseudo = htmlentities($_POST['
                pseudo']);
                        $pass1 = htmlentities($_POST['
                pass1']);
                        $pass2 = htmlentities($_POST['
                pass2']);
                        $mail = htmlentities($_POST['
                mail']);
                        $mess = '
                Un e-mail de confirmation vous sera envoyer';
                        $extensions_valides = array( '
                jpg' , 'jpeg' , 'gif' , 'png' );
                        $extension_upload = substr(  strrchr($_FILES['
                image_perso']['name'], '.')  ,1);
                        $sql ="SELECT count(*) FROM comptes WHERE pseudo='
                ".$pseudo."'";
                        $verif = mysql_query($sql);
                        $verif2 = mysql_result($verif, 0);
                        $mess_mail = '
                Vous avez fait la demande de creer un blog sur notre site merci de vous rendre sur ce lien pour confirmer l\'insciption <a href="'.$adresse_site.'/confirm.php?id='.$num.'">Lien de confirmation</a> <br><br> merci, le webmaster de '.$adresse_site.'">Lien de confirmation</a>';
                        $objet = 'Confirmation d\'inscription à'.$adresse_site;
                        $from = '
                From: '.$mail_webmaster;
                        //verifications
                        if($_FILES['
                image_perso']['error'] > 0) $mess = 'erreur lors du transfert de l\'image perso';
                        else if ($pass1 != $pass2) $mess = 'les deux mots de passe ne sont pas identiques';
                        else if ($_FILES['image_perso']['size'] > $taille_max) $mess = 'L\image est trop grosse';
                        else if($verif2 >= 1) $mess = 'Le pseudo existe deja';
                        else if (!in_array($extension_upload,$extensions_valides)) $mess = 'extention de l\'image incorrect';
                        else
                        {
                                //inscription des donner dans la table d'
                attente
                                $sql_attente = "INSERT INTO attente VALUES('".$num."', '".$pseudo."', '".$pass1."', '".$mail."', '".$desc."', '".$region."', '".$ville."', '".$_FILES['image_perso']['name']."', '".$_FILES['image_perso']['tmp_name']."')";
                                mysql_query($sql_attente);
                                //envoi du mail
                                mail($mail, $objet, $mess_mail, $from);
                        }
                echo $mess;

                       
                       
                }
                //sinon message pas tout les champs remplits
                else
                {
                        echo'Vous n\'avez pas remplit tout les champs';
                }


                ?>



                </body>
                </html>

                confirmation.php
                <?php
                //page de connection BDD
                include('conection.php');?>
                <html>
                <head><title><?php echo$nom_site.'.::.Fin du Formulaire d\'inscription'?></title></head>
                <body>
                <?php
                $taille_max = 1048576;

                //verification que tout les champs sont remplit
                if(!empty($_POST['
                pseudo']) and !empty($_POST['pass1']) AND !empty($_POST['pass2']) AND !empty($_FILES['image_perso']) and !empty($_POST['mail']) AND !empty($_POST['desc']) AND !empty($_POST['region']) AND !empty($_POST['ville']))
                {       
                        //declaration de toutes les variables accise lors du formulaire
                        $num = time();
                        $region = $_POST['
                region'];
                        $ville = $_POST['
                ville'];
                        $desc = $_POST['
                desc'];
                        $pseudo = htmlentities($_POST['
                pseudo']);
                        $pass1 = htmlentities($_POST['
                pass1']);
                        $pass2 = htmlentities($_POST['
                pass2']);
                        $mail = htmlentities($_POST['
                mail']);
                        $mess = '
                Un e-mail de confirmation vous sera envoyer';
                        $extensions_valides = array( '
                jpg' , 'jpeg' , 'gif' , 'png' );
                        $extension_upload = substr(  strrchr($_FILES['
                image_perso']['name'], '.')  ,1);
                        $sql ="SELECT count(*) FROM comptes WHERE pseudo='
                ".$pseudo."'";
                        $verif = mysql_query($sql);
                        $verif2 = mysql_result($verif, 0);
                        $mess_mail = '
                Vous avez fait la demande de creer un blog sur notre site merci de vous rendre sur ce lien pour confirmer l\'insciption <a href="'.$adresse_site.'/confirm.php?id='.$num.'">Lien de confirmation</a> <br><br> merci, le webmaster de '.$adresse_site.'">Lien de confirmation</a>';
                        $objet = 'Confirmation d\'inscription à'.$adresse_site;
                        $from = '
                From: '.$mail_webmaster;
                        //verifications
                        if($_FILES['
                image_perso']['error'] > 0) $mess = 'erreur lors du transfert de l\'image perso';
                        else if ($pass1 != $pass2) $mess = 'les deux mots de passe ne sont pas identiques';
                        else if ($_FILES['image_perso']['size'] > $taille_max) $mess = 'L\image est trop grosse';
                        else if($verif2 >= 1) $mess = 'Le pseudo existe deja';
                        else if (!in_array($extension_upload,$extensions_valides)) $mess = 'extention de l\'image incorrect';
                        else
                        {
                                //inscription des donner dans la table d'
                attente
                                $sql_attente = "INSERT INTO attente VALUES('".$num."', '".$pseudo."', '".$pass1."', '".$mail."', '".$desc."', '".$region."', '".$ville."', '".$_FILES['image_perso']['name']."', '".$_FILES['image_perso']['tmp_name']."')";
                                mysql_query($sql_attente);
                                //envoi du mail
                                mail($mail, $objet, $mess_mail, $from);
                        }
                echo $mess;

                       
                       
                }
                //sinon message pas tout les champs remplits
                else
                {
                        echo'Vous n\'avez pas remplit tout les champs';
                }


                ?>



                </body>
                </html>
                • Partager sur Facebook
                • Partager sur Twitter
                  11 mai 2006 à 18:48:03

                  Est ce que ton fichier arrive dans le dossier de destination?? dans ce cas la qu'est ce qui foire?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 mai 2006 à 19:04:06

                    Non mon fichier n'arrive pas dans mon dossier de destination ... si vous voulez tester http://www.pygame.rf.lv/form_inscription.php

                    erreur
                    Warning: copy(/home/webzzanine/membres/pygame/phpLnsMwT): failed to open stream: No such file or directory in /home/webzzanine/membres/pygame/confirm.php on line 17
                    echo du fichier de destination :/pygame/25.jpg
                    echo du tmp_name :/home/webzzanine/membres/pygame/phpLnsMwT

                    Erreur lors de la creation du compte veulliez nous contacter à notre adressemail@site.commerci
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 mai 2006 à 8:44:42

                      Citation

                      Erreur lors de la creation du compte veulliez nous contacter à notre adressemail@site.commerci



                      Comment arrive tu a avoir ce message d'erreur alors que cela n'est pas dans tes fichiers que tu nous a donné.

                      Ton erreur est un warning, donc ce n'est pas une erreur telle qu'on l'entend, cela n'empeche pas le script de marcher. (mais j'avoue que c'est embetant de laissé affiché ce warning).
                      Normallement ton image tu doit pas la laisser dans le repertoire temp du serveur, tu doit la deplacer, regarde dans les tuto des membre il y a quelque chose sur les upload ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 mai 2006 à 9:23:29

                        lol non sa ne marche pas car je n'ai pas l'image dans mon dossier... et l'erreur c'est moi qui l'ait mis lorsque copy retourne false ... help sa m'enerve
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 mai 2006 à 13:37:47

                          Je vais te donner mon script d'upload d'image avec la verif qui va avec, ca te permettra peut etre de comparer un peu ;)
                          N'oublie pas que dans la balise form tu dois avoir
                          enctype="multipart/form-data"

                          Ici le formulaire:
                          <input type="hidden" name="maxsize" value="75000" /><br />
                          <input type="hidden" name="maxlargeur" value="100" /><br />
                          <label>Mon avatar (Poids maximum: 75ko, Largeur et longueur maximale:100px, Extensions autorisées: jpg, gif, png):
                          <input type="file" name="avatar" value="" /></label><br />


                          Ici la partie de vérification:
                          //Vérification de la presence et gestion de l'avatar pour stocké dans une variable avant mise a jour de la bdd.
                          if($_FILES['avatar']['error']==0)
                          {
                               //Verification de validité du fichier avatar
                                  if(($_FILES['avatar']['size'] < $maxsize))
                                  {
                                          //Verification de l'extension
                                          $extensions_valides = array ( 'jpg' , 'jpeg' , 'gif' , 'png' );
                                          $extensions_upload = substr( strrchr($_FILES['avatar']['name'], '.') ,1);
                                          if(in_array($extensions_upload, $extensions_valides))
                                          {
                                             //Verification largeur longueur
                                             $taille_image = getimagesize($_FILES['avatar']['tmp_name']);
                                             if($taille_image[0] <= $maxlargeur AND $taille_image[1] <= $maxlargeur)
                                             {
                                                  //On nommera l\'avatar en fonction du pseudo duu membre qui upload
                                                  $nom_avatar=$pseudo;
                                                  $nom_avatar = "les_avatars/".str_replace(' ','', $nom_avatar);
                                                  //On deplace l'avatar du repertoire temporaire
                                                  $upload_avatar = move_uploaded_file($_FILES['avatar']['tmp_name'], $nom_avatar);
                                                  if($upload_avatar)
                                                  {
                                                   //If upload est true (donc si le stockage ds le repertoire a marché, on enregistre le nom du fichier dans la base ;)


                          Ton erreur je pense vien du fait que tu laisse l'image dans le repertoire temp du serveur, l'image doit etre deplacé dans ton repertoire d'image perso et a ce moment seulement tu enregistre l'adresse vers celle-ci.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 mai 2006 à 18:14:48

                            donc voila j'ai fait comme tu as dit mais il y a un autre probleme maintenant

                            Warning: move_uploaded_file(): open_basedir restriction in effect. File(/pygame/) is not within the allowed path(s): (/home/webzzanine/membres/pygame/) in /home/webzzanine/membres/pygame/fin_form.php on line 53


                            alors que le chmod de mon dossier est 777 ...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              12 mai 2006 à 20:00:24

                              Un chmod 755 devrait suffir, c'est quoi ton hébergeur??? on dirait que la fonction est move_uploaded est désactivé :(
                              • Partager sur Facebook
                              • Partager sur Twitter
                                12 mai 2006 à 21:11:01

                                le 777 c'est parce que en 755 sa marchait pas lol :D mais le truck c'est que mon hebergeur (webzzanine) est en safe mode off ...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  13 mai 2006 à 1:43:46

                                  essaie un autre hebergement pr voir, crée un compte multimania, certe il y a une banniere de pub mais pr faire t test le compte est créer rapidement c'est cool.

                                  Sinon si ta le temps essai l'hebergeur de ma signature ;)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    13 mai 2006 à 1:46:50

                                    lol oui en maintenance (l'hebergeur de ta signature lol :D et pour l'hebergeur je vais bientot changer j'attend la confirmation ... et sinon sa marche sur mon pc avec easyphp ... donc je met le sujet en regle
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 mai 2006 à 12:24:47

                                      Ok nikel, oui c'est vrai il est en maintenance suite a un crash :p

                                      Mais fai un essai chez lycos pr les test meme si ta une banniere de pub c'est pas grave pr des essai et c'est actif dans l'heure.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      upload fichier

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown