Partage
  • Partager sur Facebook
  • Partager sur Twitter

formulaire d'upload et fonction include

    18 novembre 2017 à 19:48:35

    Bonjour,

    J'ai une page index.php qui est le noyau de mes pages, le menu viens alimenter un include qui intègre la page concernée. (pas sur que ce soir clair j'avoue). ;)

    Une de mes page intégrée via le include est une formulaire pour ajouter un produit dont une photo.

    Lorsque je test le formulaire seul (en pointant l'url directement dessus), ça fonctionne et lorsque je passe par le site (donc je pointe sur index.php avec la variable dans l'url qui me permet d'intégrer la page contenant le formulaire), ça me dit que je n'ai pas joint de fichier.

    Index.php est à la racine du site forcement.

    <?php 
    	include ('conf/Sesssion_Formulaire.php');
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <!-- En-tête de la page -->
            <meta charset="utf-8" />
            <title></title>
    		<link rel="stylesheet" type="text/css" href="css/style_design.css" />
    		<link rel="stylesheet" type="text/css" href="css/style_slide_activity.css" />
    		<link rel="stylesheet" type="text/css" href="css/style_menu.css" />
    		<link rel="stylesheet" type="text/css" href="css/style_admin.css" />
    		<link rel="stylesheet" type="text/css" href="css/style_modal.css" />
    		<link rel="stylesheet" type="text/css" href="css/style_mopal.css" />
    		<link rel="stylesheet" type="text/css" href="css/style_windowadmin.css" />
    
    		
        </head>
    
        <body>
        <div class="Full_Container">
        <!-- En-tête de page -->
    		<header>
    			.....
    		</header>
    		
    		<!-- Corps de la page -->
    		<div class="Contenu_Page">
    		
    			<!-- Menu de la page -->
    			<nav>
    
    				<?php 
    					include ('module/menu.php');
    				?>
    
    			</nav>
    			
    			<!-- Contenu de la page -->
    
    			<div class="sectionpage">
    				<?php
    				$URL_Page = $_GET['pg'];
    
    				if ($URL_Page == 'admin' ) 
    				{
    					include ('admin/admin.php');
    				}
    				elseif ($URL_Page == '' ) 
    				{
    					include ('global/Pg/Accueil.php');
    				}
    				else 
    				{
    					include ('global/Pg/'.$URL_Page.'.php');
    				}
    			
    				?>
    			</div>
    
    		</div>
    			
    		<!-- Pied de page -->
    		<footer>
    ...		
    		
    		</footer>
        </div>
    	</body>
    </html> 



    le formulaire (form.php) est dans un sous-dossier (avec le script au-dessus  il se situe dans : global/Pg/ )

    Sauriez vous me dire pourquoi ? et comment remédier à ce problème ?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter

    Tony

      18 novembre 2017 à 20:54:06

      Bonjour,

      ton formulaire n'étant pas au même niveau de l'arborescence, c'est normal qu'il ne fonctionne pas en étant inclus.

      Tu dois raisonner le chemin à partir de ton fichier index.

      • Partager sur Facebook
      • Partager sur Twitter
        18 novembre 2017 à 21:32:12

        Merci pour ta réponse philodick, mais vu que je débute, tu pourrais m'expliquer un peu plus stp .

        Donc si je comprend c est faisable mais je dois ajouter une info dans mon script , c'est ça ?

        Si je vais jusqu'au bout de se que je crois comprendre, il faut que j'utilise la fonction de set_include_path, c'est ça ? mais je comprend pas bien son utilisation. désolé.


        -
        Edité par TonyDifi 18 novembre 2017 à 21:32:52

        • Partager sur Facebook
        • Partager sur Twitter

        Tony

          18 novembre 2017 à 21:37:24

          C'est difficile à expliquer plus précisé ment, il faudrait avoir le formulaire et la page de traitement, ainsi que leur place dans l'arborescence.
          • Partager sur Facebook
          • Partager sur Twitter
            18 novembre 2017 à 21:58:20

            alors l'arborescence on à ça :

            \

               >index.php

               >\Global

                   >\Pg

                        >insertproduit.php               => Chemin \Global\Pg\insertproduit.php   il s'agit du formulaire.

               >\image

                   >\produit                                  => dossier de stockage final des images uploadées

               >\Secure

                    >connexionbase.php               => Regroupe la connexion à la base de donnée

            Pour le formulaire :

            			<?php
            			if (!isset($_POST['envoi'])) {
            		?>
            
            
            		<!-- Corps de la page -->
            		
            	<fieldset>
            	<legend>Ajout d'un Produit</legend>
            	
            		
            		<form method="post" action="index.php?pg=insertproduit" enctype="multipart/form-data">
            		
            			...... tous le champs necessaires 
            
            			<br />
            		<p> <label for="Prod_Picture">* Photo du produit (Max. 1Mo):<br />.jpg /.PNG uniquement </label><input type="file" name="Prod_Picture" /> </p>
            		<br />
            		<br />
            		<div class="form_add_bouton">
            			<input type="submit" name ="envoi" value="Ajouter"> 
            		</div>
            
            		</form>
            	</fieldset>
            	<?php
            	}
            	else
            	{
            				include ('secure/connexionbase.php');
            
            					// Appel de la fonction de connexion à la base
            					$Conx_db = getConnectBdd();
            
            
            			//On liste les éléments de la base de données 
            
            			$stmt = $Conx_db->prepare("INSERT INTO Produits ( toutes les entrées) 
            																
            															VALUES (toutes les valeurs)");
            
            
            			//Lien entre la commande d INSERT INTO  et les variables du formulaire
            
            			$stmt->bindParam(':nomproduit', $nomproduit);
            			idem pour toutes les autres entrées....
            			
            					
            			//On liste les éléments du formulaire et on les sécurise
            
            			$nomproduit = Securite::bdd($_POST['Nom']); 
            			 idem pour toutes les autres entrées
            			 ']);
            
            			// Insertion de l enregistrement en base de données
            			
            			if ($stmt->execute())
            				{
            				echo '	<div class="Validation_form"><p>Le produit est à présent disponible dans le catalogue</p>';
            
            					// En cas de réussite d'ajout du produit à la base on charge le fichier.
            					
            							
            							// Définition des variables pour l envoi du fichier
            							
            							$Id_utile = $Conx_db->lastInsertId();
            							$nomfilesource = strtolower($_FILES['ProdPicture']['tmp_name']);
            							$NomImageExploitable = str_replace(' ', '', $nomproduit.$Id_utile);
            							$uploaddir = 'image/produit/';
            							$uploadfile = $uploaddir . basename($nomfilesource);
            							$typemime = strtolower($_FILES['ProdPicture']['type']);
            							$newwidthimage = 400;
            							
            							 
            							if(!empty($ProdPicture) or !empty($_FILES['ProdPicture']))
            							{
            								echo '<p>1- Fichier joint => ok</p>';
            								if ( is_uploaded_file($_FILES['ProdPicture']['tmp_name']) ) 
            								{
            									echo '<p>2- Fichier chargé => ok</p>';
            									if($typemime === 'image/jpeg' || $typemime === 'image/png' || $typemime === 'image/pjpeg' || $typemime === 'image/x-png'  )
            									{
            										echo '<p>3- Type de fichier => ok</p>';
            										if($_FILES['ProdPicture']['size'] <= 1048576 )
            										{
            											echo '<p>4- Taille du fichier => ok</p>';
            											if( $typemime ==='image/jpeg' || $typemime ==='image/pjpeg')
            												{
            													
            												$imageinitjpg = imagecreatefromjpeg($_FILES['ProdPicture']['tmp_name']);
            												$dimimagejpg = getimagesize($_FILES['ProdPicture']['tmp_name']);
            												$newheightimagejpg = ($dimimagejpg[1]/$dimimagejpg[0])*$newwidthimage ;
            												
            												$newimagejpg = imagecreatetruecolor($newwidthimage , $newheightimagejpg) or die ("Erreur lors du dimensionnement");
            												
            												imagecopyresampled($newimagejpg , $imageinitjpg , 0, 0, 0, 0, $newwidthimage, $newheightimagejpg, $dimimagejpg[0] , $dimimagejpg[1]);														
            												imagedestroy($imageinitjpg);
            												imagejpeg($newimagejpg, $uploaddir.$NomImageExploitable.'.jpg', 100);
            												echo '	<div class="Validation_form"><p>5- Image enregistrée. URL : '.$uploaddir. $NomImageExploitable.'.jpg</p> 
            														<img src="'.$uploaddir. $NomImageExploitable.'.jpg">';
            												
            												} else {
            												header("Content-type: image/png");
            												$imageinitpng = imagecreatefrompng($_FILES['ProdPicture']['tmp_name']);
            												$dimimagepng = getimagesize($_FILES['ProdPicture']['tmp_name']);
            												$newheightimagepng = ($dimimagepng[1]/$dimimagepng[0])*$newwidthimage ;
            												
            												$newimagepng = imagecreatetruecolor($newwidthimage , $newheightimagepng) or die ("Erreur lors du dimensionnement");
            												
            												imagecopyresampled($newimagepng , $imageinitpng , 0, 0, 0, 0, $newwidthimage, $newheightimagepng, $dimimagepng[0] , $dimimagepng[1]);														
            												imagedestroy($imageinitpng);
            												imagepng($newimagepng, $uploaddir.$NomImageExploitable.'.png', 100);
            												echo '	<div class="Validation_form"><p>5- Image enregistrée. URL : '.$uploaddir. $NomImageExploitable.'.png</p> 
            														<img src="'.$uploaddir. $NomImageExploitable.'.png">';
            																										
            												}
            										
            										} else {
            												echo '<div class="Validation_form"><p>4- Taille de l\'image trop élevée. Produit ajouté sans image.</p>';
            											}
            									} else {
            											echo '<div class="Validation_form"><p>3- Format de l\'image erroné. Produit ajouté sans image.</p>';
            										}
            								} else {
            									echo '<div class="Validation_form"><p>2- Le fichier n\'a pas été chargé. Produit ajouté sans image.</p>';
            								}
            							} else { 
            								echo '<div class="Validation_form"><p>1- Pas de fichier sélectionné. Produit ajouté sans image.</p>';
            								}
            								
            								
            				
            				}
            				else
            				{
            						echo 'class="Validation_form"><p>L\'Produit n\'a pu être ajouté au catalogue.</p></div>';
            				}
            				
            		echo '	</div><div class="Validation_form_bt"> <p> <a href="index.php?pg=insertproduit" class="btn">Ajouter un nouveau Produit</a> </p></div>
            				<br><br>
            				<div class="Validation_form_bt"> <p> <a href="index.php?pg=tousproduit" class="btn">Accéder au catalogue des produits</a> </p></div>';
            	}
            ?>	
            
            



            je suis pas sur d etre clair .. lol

            -
            Edité par TonyDifi 18 novembre 2017 à 22:02:09

            • Partager sur Facebook
            • Partager sur Twitter

            Tony

              18 novembre 2017 à 22:10:06

              Franchement il y a quelque chose qui m'échappe (et ton code est très mal organisé, vraiment difficile à lire).

              Si je comprends bien tu inclus ton formulaire avant la déclaration de ta page html ?

              • Partager sur Facebook
              • Partager sur Twitter
                18 novembre 2017 à 22:33:54

                Oui en effet je l'ai fais comme ça. Si je comprend bien ça n'est pas une bonne chose ... lol :s

                Si mal organisé que ça ? :(

                • Partager sur Facebook
                • Partager sur Twitter

                Tony

                  18 novembre 2017 à 22:38:15

                  C'est juste que l'indentation est un peu aléatoire, il y a d'énormes espaces partout...

                  Je pense que tu n'as pas bien saisi ce que fait include : c'est comme si ça faisait un copié/collé.

                  Ca veut dire que tout ton formulaire est complètement en dehors de la page html.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 novembre 2017 à 22:44:02

                    je m'essaie d'avoir une indentation régulière mais en effet peut quelques variation et à force de manipuler le code je ne l'ai pas remit au propre.

                    c'est peut être mon problème en effet. Donc l'include, copie tout mon script et l'intègre dans la page index.php, c'est bien ça ? (si oui, c'est se que j'avais compris ...si non, ben t'as raison alors lol)

                    et alors que me conseilles tu pour corriger ça ?

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Tony

                      18 novembre 2017 à 22:51:51

                      Si c'est ce que tu avais compris, il y a un problème, regarde ce que ça donne :

                      <?php
                                  if (!isset($_POST['envoi'])) {
                              ?>
                       
                       
                              <!-- Corps de la page -->
                               
                          <fieldset>
                          <legend>Ajout d'un Produit</legend>
                           
                               
                              <form method="post" action="index.php?pg=insertproduit" enctype="multipart/form-data">
                               
                                  ...... tous le champs necessaires
                       
                                  <br />
                              <p> <label for="Prod_Picture">* Photo du produit (Max. 1Mo):<br />.jpg /.PNG uniquement </label><input type="file" name="Prod_Picture" /> </p>
                              <br />
                              <br />
                              <div class="form_add_bouton">
                                  <input type="submit" name ="envoi" value="Ajouter">
                              </div>
                       
                              </form>
                          </fieldset>
                          <?php
                          }
                          else
                          {
                                      include ('secure/connexionbase.php');
                       
                                          // Appel de la fonction de connexion à la base
                                          $Conx_db = getConnectBdd();
                       
                       
                                  //On liste les éléments de la base de données
                       
                                  $stmt = $Conx_db->prepare("INSERT INTO Produits ( toutes les entrées)
                                                                                       
                                                                                  VALUES (toutes les valeurs)");
                       
                       
                                  //Lien entre la commande d INSERT INTO  et les variables du formulaire
                       
                                  $stmt->bindParam(':nomproduit', $nomproduit);
                                  idem pour toutes les autres entrées....
                                   
                                           
                                  //On liste les éléments du formulaire et on les sécurise
                       
                                  $nomproduit = Securite::bdd($_POST['Nom']);
                                   idem pour toutes les autres entrées
                                   ']);
                       
                                  // Insertion de l enregistrement en base de données
                                   
                                  if ($stmt->execute())
                                      {
                                      echo '  <div class="Validation_form"><p>Le produit est à présent disponible dans le catalogue</p>';
                       
                                          // En cas de réussite d'ajout du produit à la base on charge le fichier.
                                           
                                                   
                                                  // Définition des variables pour l envoi du fichier
                                                   
                                                  $Id_utile = $Conx_db->lastInsertId();
                                                  $nomfilesource = strtolower($_FILES['ProdPicture']['tmp_name']);
                                                  $NomImageExploitable = str_replace(' ', '', $nomproduit.$Id_utile);
                                                  $uploaddir = 'image/produit/';
                                                  $uploadfile = $uploaddir . basename($nomfilesource);
                                                  $typemime = strtolower($_FILES['ProdPicture']['type']);
                                                  $newwidthimage = 400;
                                                   
                                                    
                                                  if(!empty($ProdPicture) or !empty($_FILES['ProdPicture']))
                                                  {
                                                      echo '<p>1- Fichier joint => ok</p>';
                                                      if ( is_uploaded_file($_FILES['ProdPicture']['tmp_name']) )
                                                      {
                                                          echo '<p>2- Fichier chargé => ok</p>';
                                                          if($typemime === 'image/jpeg' || $typemime === 'image/png' || $typemime === 'image/pjpeg' || $typemime === 'image/x-png'  )
                                                          {
                                                              echo '<p>3- Type de fichier => ok</p>';
                                                              if($_FILES['ProdPicture']['size'] <= 1048576 )
                                                              {
                                                                  echo '<p>4- Taille du fichier => ok</p>';
                                                                  if( $typemime ==='image/jpeg' || $typemime ==='image/pjpeg')
                                                                      {
                                                                           
                                                                      $imageinitjpg = imagecreatefromjpeg($_FILES['ProdPicture']['tmp_name']);
                                                                      $dimimagejpg = getimagesize($_FILES['ProdPicture']['tmp_name']);
                                                                      $newheightimagejpg = ($dimimagejpg[1]/$dimimagejpg[0])*$newwidthimage ;
                                                                       
                                                                      $newimagejpg = imagecreatetruecolor($newwidthimage , $newheightimagejpg) or die ("Erreur lors du dimensionnement");
                                                                       
                                                                      imagecopyresampled($newimagejpg , $imageinitjpg , 0, 0, 0, 0, $newwidthimage, $newheightimagejpg, $dimimagejpg[0] , $dimimagejpg[1]);                                                      
                                                                      imagedestroy($imageinitjpg);
                                                                      imagejpeg($newimagejpg, $uploaddir.$NomImageExploitable.'.jpg', 100);
                                                                      echo '  <div class="Validation_form"><p>5- Image enregistrée. URL : '.$uploaddir. $NomImageExploitable.'.jpg</p>
                                                                              <img src="'.$uploaddir. $NomImageExploitable.'.jpg">';
                                                                       
                                                                      } else {
                                                                      header("Content-type: image/png");
                                                                      $imageinitpng = imagecreatefrompng($_FILES['ProdPicture']['tmp_name']);
                                                                      $dimimagepng = getimagesize($_FILES['ProdPicture']['tmp_name']);
                                                                      $newheightimagepng = ($dimimagepng[1]/$dimimagepng[0])*$newwidthimage ;
                                                                       
                                                                      $newimagepng = imagecreatetruecolor($newwidthimage , $newheightimagepng) or die ("Erreur lors du dimensionnement");
                                                                       
                                                                      imagecopyresampled($newimagepng , $imageinitpng , 0, 0, 0, 0, $newwidthimage, $newheightimagepng, $dimimagepng[0] , $dimimagepng[1]);                                                      
                                                                      imagedestroy($imageinitpng);
                                                                      imagepng($newimagepng, $uploaddir.$NomImageExploitable.'.png', 100);
                                                                      echo '  <div class="Validation_form"><p>5- Image enregistrée. URL : '.$uploaddir. $NomImageExploitable.'.png</p>
                                                                              <img src="'.$uploaddir. $NomImageExploitable.'.png">';
                                                                                                                               
                                                                      }
                                                               
                                                              } else {
                                                                      echo '<div class="Validation_form"><p>4- Taille de l\'image trop élevée. Produit ajouté sans image.</p>';
                                                                  }
                                                          } else {
                                                                  echo '<div class="Validation_form"><p>3- Format de l\'image erroné. Produit ajouté sans image.</p>';
                                                              }
                                                      } else {
                                                          echo '<div class="Validation_form"><p>2- Le fichier n\'a pas été chargé. Produit ajouté sans image.</p>';
                                                      }
                                                  } else {
                                                      echo '<div class="Validation_form"><p>1- Pas de fichier sélectionné. Produit ajouté sans image.</p>';
                                                      }
                                                       
                                                       
                                       
                                      }
                                      else
                                      {
                                              echo 'class="Validation_form"><p>L\'Produit n\'a pu être ajouté au catalogue.</p></div>';
                                      }
                                       
                              echo '  </div><div class="Validation_form_bt"> <p> <a href="index.php?pg=insertproduit" class="btn">Ajouter un nouveau Produit</a> </p></div>
                                      <br><br>
                                      <div class="Validation_form_bt"> <p> <a href="index.php?pg=tousproduit" class="btn">Accéder au catalogue des produits</a> </p></div>';
                          }
                      ?>   
                      <!DOCTYPE html>
                      <html>
                          <head>
                              <!-- En-tête de la page -->
                              <meta charset="utf-8" />
                              <title></title>
                              <link rel="stylesheet" type="text/css" href="css/style_design.css" />
                              <link rel="stylesheet" type="text/css" href="css/style_slide_activity.css" />
                              <link rel="stylesheet" type="text/css" href="css/style_menu.css" />
                              <link rel="stylesheet" type="text/css" href="css/style_admin.css" />
                              <link rel="stylesheet" type="text/css" href="css/style_modal.css" />
                              <link rel="stylesheet" type="text/css" href="css/style_mopal.css" />
                              <link rel="stylesheet" type="text/css" href="css/style_windowadmin.css" />
                       
                               
                          </head>
                       
                          <body>
                          <div class="Full_Container">
                          <!-- En-tête de page -->
                              <header>
                                  .....
                              </header>
                               
                              <!-- Corps de la page -->
                              <div class="Contenu_Page">
                               
                                  <!-- Menu de la page -->
                                  <nav>
                       
                                      <?php
                                          include ('module/menu.php');
                                      ?>
                       
                                  </nav>
                                   
                                  <!-- Contenu de la page -->
                       
                                  <div class="sectionpage">
                                      <?php
                                      $URL_Page = $_GET['pg'];
                       
                                      if ($URL_Page == 'admin' )
                                      {
                                          include ('admin/admin.php');
                                      }
                                      elseif ($URL_Page == '' )
                                      {
                                          include ('global/Pg/Accueil.php');
                                      }
                                      else
                                      {
                                          include ('global/Pg/'.$URL_Page.'.php');
                                      }
                                   
                                      ?>
                                  </div>
                       
                              </div>
                                   
                              <!-- Pied de page -->
                              <footer>
                      ...    
                               
                              </footer>
                          </div>
                          </body>
                      </html>



                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 novembre 2017 à 23:04:44

                        Désolé mais je ne suis pas d'accord, tu as inséré le formulaire dans la partie session (sauvegarde temporaire des données du formulaire).

                        Alors qu'en réalité il est inséré au niveau de cette ligne :

                        include ('global/Pg/'.$URL_Page.'.php');


                        ça donne donc plutot :

                        <?php
                            include ('conf/Sesssion_Formulaire.php');
                        ?>
                        <!DOCTYPE html>
                        <html>
                            <head>
                                <!-- En-tête de la page -->
                                <meta charset="utf-8" />
                                <title></title>
                                <link rel="stylesheet" type="text/css" href="css/style_design.css" />
                                <link rel="stylesheet" type="text/css" href="css/style_slide_activity.css" />
                                <link rel="stylesheet" type="text/css" href="css/style_menu.css" />
                                <link rel="stylesheet" type="text/css" href="css/style_admin.css" />
                                <link rel="stylesheet" type="text/css" href="css/style_modal.css" />
                                <link rel="stylesheet" type="text/css" href="css/style_mopal.css" />
                                <link rel="stylesheet" type="text/css" href="css/style_windowadmin.css" />
                         
                                 
                            </head>
                         
                            <body>
                            <div class="Full_Container">
                            <!-- En-tête de page -->
                                <header>
                                    .....
                                </header>
                                 
                                <!-- Corps de la page -->
                                <div class="Contenu_Page">
                                 
                                    <!-- Menu de la page -->
                                    <nav>
                         
                                        <?php
                                            include ('module/menu.php');
                                        ?>
                         
                                    </nav>
                                     
                                    <!-- Contenu de la page -->
                         
                                    <div class="sectionpage">
                        				<?php
                        					if (!isset($_POST['envoi'])) {
                        				?>
                         
                        			 
                        					<!-- Corps de la page -->
                        					 
                        				<fieldset>
                        				<legend>Ajout d'un Produit</legend>
                        				 
                        					 
                        					<form method="post" action="index.php?pg=insertproduit" enctype="multipart/form-data">
                        					 
                        						...... tous le champs necessaires
                        			 
                        						<br />
                        					<p> <label for="Prod_Picture">* Photo du produit (Max. 1Mo):<br />.jpg /.PNG uniquement </label><input type="file" name="Prod_Picture" /> </p>
                        					<br />
                        					<br />
                        					<div class="form_add_bouton">
                        						<input type="submit" name ="envoi" value="Ajouter">
                        					</div>
                        			 
                        					</form>
                        				</fieldset>
                        				<?php
                        				}
                        				else
                        				{
                        					include ('secure/connexionbase.php');
                        			 
                        						// Appel de la fonction de connexion à la base
                        						$Conx_db = getConnectBdd();
                        			 
                        			 
                        						//On liste les éléments de la base de données
                        						$stmt = $Conx_db->prepare("INSERT INTO Produits ( toutes les entrées)
                        																			 
                        																VALUES (toutes les valeurs)");
                        			 
                        			 
                        						//Lien entre la commande d INSERT INTO  et les variables du formulaire
                        						$stmt->bindParam(':nomproduit', $nomproduit);
                        						idem pour toutes les autres entrées....
                        								 
                        						//On liste les éléments du formulaire et on les sécurise
                        						$nomproduit = Securite::bdd($_POST['Nom']);
                        						 idem pour toutes les autres entrées ']);
                        			 
                        						// Insertion de l enregistrement en base de données
                        						if ($stmt->execute())
                        							{
                        							echo '  <div class="Validation_form"><p>Le produit est à présent disponible dans le catalogue</p>';
                        			 
                        								// En cas de réussite d'ajout du produit à la base on charge le fichier.
                        										 
                        										// Définition des variables pour l envoi du fichier
                        										$Id_utile = $Conx_db->lastInsertId();
                        										$nomfilesource = strtolower($_FILES['ProdPicture']['tmp_name']);
                        										$NomImageExploitable = str_replace(' ', '', $nomproduit.$Id_utile);
                        										$uploaddir = 'image/produit/';
                        										$uploadfile = $uploaddir . basename($nomfilesource);
                        										$typemime = strtolower($_FILES['ProdPicture']['type']);
                        										$newwidthimage = 400;
                        										 
                        										if(!empty($ProdPicture) or !empty($_FILES['ProdPicture']))
                        										{
                        											echo '<p>1- Fichier joint => ok</p>';
                        											if ( is_uploaded_file($_FILES['ProdPicture']['tmp_name']) )
                        											{
                        												echo '<p>2- Fichier chargé => ok</p>';
                        												if($typemime === 'image/jpeg' || $typemime === 'image/png' || $typemime === 'image/pjpeg' || $typemime === 'image/x-png'  )
                        												{
                        													echo '<p>3- Type de fichier => ok</p>';
                        													if($_FILES['ProdPicture']['size'] <= 1048576 )
                        													{
                        														echo '<p>4- Taille du fichier => ok</p>';
                        														if( $typemime ==='image/jpeg' || $typemime ==='image/pjpeg')
                        															{
                        																	 
                        																$imageinitjpg = imagecreatefromjpeg($_FILES['ProdPicture']['tmp_name']);
                        																$dimimagejpg = getimagesize($_FILES['ProdPicture']['tmp_name']);
                        																$newheightimagejpg = ($dimimagejpg[1]/$dimimagejpg[0])*$newwidthimage ;
                        																 
                        																$newimagejpg = imagecreatetruecolor($newwidthimage , $newheightimagejpg) or die ("Erreur lors du dimensionnement");
                        																 
                        																imagecopyresampled($newimagejpg , $imageinitjpg , 0, 0, 0, 0, $newwidthimage, $newheightimagejpg, $dimimagejpg[0] , $dimimagejpg[1]);                                                      
                        																imagedestroy($imageinitjpg);
                        																imagejpeg($newimagejpg, $uploaddir.$NomImageExploitable.'.jpg', 100);
                        																echo '  <div class="Validation_form"><p>5- Image enregistrée. URL : '.$uploaddir. $NomImageExploitable.'.jpg</p>
                        																		<img src="'.$uploaddir. $NomImageExploitable.'.jpg">';
                        																 
                        															} else {
                        																header("Content-type: image/png");
                        																$imageinitpng = imagecreatefrompng($_FILES['ProdPicture']['tmp_name']);
                        																$dimimagepng = getimagesize($_FILES['ProdPicture']['tmp_name']);
                        																$newheightimagepng = ($dimimagepng[1]/$dimimagepng[0])*$newwidthimage ;
                        																 
                        																$newimagepng = imagecreatetruecolor($newwidthimage , $newheightimagepng) or die ("Erreur lors du dimensionnement");
                        																 
                        																imagecopyresampled($newimagepng , $imageinitpng , 0, 0, 0, 0, $newwidthimage, $newheightimagepng, $dimimagepng[0] , $dimimagepng[1]);                                                      
                        																imagedestroy($imageinitpng);
                        																imagepng($newimagepng, $uploaddir.$NomImageExploitable.'.png', 100);
                        																echo '  <div class="Validation_form"><p>5- Image enregistrée. URL : '.$uploaddir. $NomImageExploitable.'.png</p>
                        																		<img src="'.$uploaddir. $NomImageExploitable.'.png">';
                        																														 
                        															}
                        													 
                        													} else {
                        															echo '<div class="Validation_form"><p>4- Taille de l\'image trop élevée. Produit ajouté sans image.</p>';
                        														}
                        												} else {
                        														echo '<div class="Validation_form"><p>3- Format de l\'image erroné. Produit ajouté sans image.</p>';
                        													}
                        											} else {
                        												echo '<div class="Validation_form"><p>2- Le fichier n\'a pas été chargé. Produit ajouté sans image.</p>';
                        											}
                        										} else {
                        											echo '<div class="Validation_form"><p>1- Pas de fichier sélectionné. Produit ajouté sans image.</p>';
                        											}
                        							}
                        							else
                        							{
                        									echo 'class="Validation_form"><p>L\'Produit n\'a pu être ajouté au catalogue.</p></div>';
                        							}
                        							 
                        					echo '  </div><div class="Validation_form_bt"> <p> <a href="index.php?pg=insertproduit" class="btn">Ajouter un nouveau Produit</a> </p></div>
                        							<br><br>
                        							<div class="Validation_form_bt"> <p> <a href="index.php?pg=tousproduit" class="btn">Accéder au catalogue des produits</a> </p></div>';
                        				}
                        			?> 
                                    </div>
                         
                                </div>
                                     
                                <!-- Pied de page -->
                                <footer>
                        ...    
                                 
                                </footer>
                            </div>
                            </body>
                        </html>

                        Enfin, c'est se que je pense et ce que je vois en regardant la source html lors du chargement de la page ;)



                        • Partager sur Facebook
                        • Partager sur Twitter

                        Tony

                          18 novembre 2017 à 23:07:47

                          Ah ok, je pensais que conf/Sesssion_Formulaire.php

                          était le formulaire... Le nom peut-être ;)

                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 novembre 2017 à 23:16:19

                            non lol , j'avoue j'ai du "formulaire" dans tous les sens. ;)

                            Mais en fait quand je met le formulaire dans une page seule à la racine (meme niveau que index.php) et que je l'utilise ça marche, et quand je le réintègre à ma page index ça ne marche plus.

                            Mais seule la partie concernant la pièce jointe ne fonctionne plus, l'insertion des données dans la table fonctionne bien elle .

                            il doit me manquer une notion que j'ai zappé mais je ne vois pas quoi en fouillant depuis 3 jours :(

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Tony

                              19 novembre 2017 à 10:10:00

                              Es-tu sûr que ce n'est juste pas le chemin où tu enregistres qui n'est pas bon ? C'est ce que je te disais au début, le chemin doit être évalué depuis le fichier index.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 novembre 2017 à 11:24:07

                                oui j'en suis sur , car lorsque je met le formulaire seul au meme niveau que le fichier index, ça marche très bien.

                                De plus j'ai testé le fichier envoyé, si tu regardes dans mon code ( je sais ... il est mal organisé lol ) tu verras qu'à la fin je lui demande de m'afficher le nom temporaire du fichier et le type mime ... et là ... aucun nom ni aucun type ne s'affiche.

                                Donc je pense que le fichier est bien envoyé quelque part mais que le script ne le retrouve pas. c'est possible ça ?

                                // Définition des variables pour l envoi du fichier
                                	
                                	$nomfilesource = strtolower($_FILES['IngPicture']['tmp_name']);
                                	$typemime = strtolower($_FILES['IngPicture']['type']);
                                	
                                	 echo '<p>'.$nomfilesource.' et le type mime visible : '.$typemime.'</p>';
                                

                                ;)

                                alors en poussant l'analyse, je suis aller voir la config renvoyée par phpinfo() chez mon hébergeur.

                                Pour la directive upload_tmp_dir j'obtient "no value"

                                Donc j'imagine que je dois la définir en amont dans mon script pour que ce soit fonctionnel. c'est bien ça ?

                                C'est normal que ça renvoie cette valeur  "no value " ?

                                -
                                Edité par TonyDifi 19 novembre 2017 à 12:51:14

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Tony

                                formulaire d'upload et fonction include

                                × 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