Problème de formulaire

Fermé
iTonton - 20 avril 2014 à 10:58
 iTonton - 24 avril 2014 à 00:02
Bonjour chers membres de la communauté CCM,
Aujourd'hui je suis très gêné dans l'aboutissement d'un projet,
En gros le projet est un blog pour commenter un événement, chaque participant à un compte pour mettre en ligne un article qui passera en modération,
un article se compose ainsi:
#Un titre
#Un contenu
#Une photo (facultative)

j'ai donc codé un truc pour le titre et le contenu, j'ai également récupéré un bout de code pour l'upload d'image mais quand je réuni les deux formulaire en un seul ça ne fait plus ce que je veux. Je veux vérifier s'il y a une photo avec un
if(isset($_POST['fichier'])

mais cela ne marche que dans le cas ou je retire le enctype="multipart/form-data" de la balise form...

Je voudrais donc savoir ce qu'il faut modifier dans le code et comprendre pourquoi.
voici mon code source :

page du formulaire:
<html>
<head>
<title>Mettre en ligne</title>
<style>
body
{
font-family:"DejaVu Sans Light";
font-weight:2px;
color:#424242;
}

.title
{
font-size:42px;


}
</style>
</head>
<body>
<center><div class="title"><b>Mettre en ligne</b></div></center>
<?php
session_start();
require('conn.php');
$error = FALSE;
$connexionOK = FALSE;
if(isset($_POST["connexion"])){ 
   if($_POST["login"] == NULL OR $_POST["pass"] == NULL){
      
      $error = TRUE;
      
      $errorMSG = "Vous devez remplir tout les champs !";
      
   }
   else
   {
    $sql = "SELECT login FROM login WHERE login = '".$_POST["login"]."' ";
      $req = mysql_query($sql);    
      if($sql){
         $sql = "SELECT * FROM login WHERE login = '".$_POST["login"]."' ";
      $req = mysql_query($sql);     
         if($sql){
            $donnees = mysql_fetch_assoc($req);  
            if($_POST["pass"] == $donnees["pass"]){
            
               $connexionOK = TRUE;
               
               $connexionMSG = "Connexion au site réussie. Vous êtes désormais connecté !";
               
               $_SESSION["login"] = $_POST["login"];
               
               $_SESSION["pass"] = $_POST["pass"];
            
            }
            
            // Sinon on lui affiche un message d'erreur.
            else{
            
               $error = TRUE;
            
               $errorMSG = "Nom de compte ou mot de passe incorrect !";
            
            }
         
         }
         
         // Sinon on lui affiche un message d'erreur.      
         else{
         
            $error = TRUE;
         
            $errorMSG = "Nom de compte ou mot de passe incorrect !";
         
         }
      
      }
      
      // Sinon on lui affiche un message d'erreur.      
      else{
         
         $error = TRUE;
         
         $errorMSG = "Nom de compte ou mot de passe incorrect !";
         
      }
   
   }
   
}

mysql_close($BDD);


 if(isset($_SESSION["login"]) AND isset($_SESSION["pass"]))
{
echo'
	<center>
		<form method="POST" action="upload/index.php" enctype="multipart/form-data">
			<input type="text" name="title" placeholder="Titre" size="65"><br>
			<textarea name="content" " cols="50" rows="15" resizable="0"></textarea>
		<br><br>
			Ajouter une photo<br>
		
				<label for="fichier_a_uploader" title="Recherchez le fichier à uploader !"></label>
				<input type="hidden" name="MAX_FILE_SIZE" value="'."MAX_SIZE".'" />
				<input name="fichier" type="file" id="fichier_a_uploader" name="fichier" /><br>
				<input type="submit" name="submit" value="Valider" />
         
		</form>
	<br>

';



 echo '<br><a href="destroy.php">logout</a><br>';  
}
 else 
{
echo '    
   
      <form action="" method="post">
         
         <table>
            
            <tr>
               
               <td><label for="login"><strong>identifiant</strong></label></td>
               <td><input type="text" name="login" id="login"/></td>
               
            </tr>
            
            <tr>
               
               <td><label for="pass"><strong>mot de passe</strong></label></td>
               <td><input type="password" name="pass" id="pass"/></td>
               
            </tr>
            
         </table>
         
         <input type="submit" name="connexion" value="Se connecter"/>
      
      </form>';}
   ?>
   
   
<body>


et la page d'action

<?php
 session_start();
 if(isset($_SESSION["login"]) AND isset($_SESSION["pass"]))
	{

		$date = date("d-m-Y");
		$heure = date("H:i");
		

		require('conn.php');   
		mysql_query('INSERT INTO content (login,title,content,validate,heure) VALUES("'.$_SESSION['login'].'","'.$_POST['title'].'","'.$_POST['content'].'","0","'.date('H:i').'")');
		echo'Votre arcticle va passer en moderation avant d\'etre publie<meta http-equiv="refresh" content="2; URL=../article.php">';


		if(isset($_POST['fichier']))
			{
				echo'swag';
				
				// Constantes
				define('TARGET', 'files/');    // Repertoire cible
				define('MAX_SIZE', 100000);    // Taille max en octets du fichier
				define('WIDTH_MAX', 2000);    // Largeur max de l'image en pixels
				define('HEIGHT_MAX', 2000);    // Hauteur max de l'image en pixels
								 
				
				// Tableaux de donnees
				$tabExt = array('jpg','gif','png','jpeg');    // Extensions autorisees
				$infosImg = array();
 
				// Variables
				$extension = '';
				$message = '';
				$nomImage = '';
 
				/************************************************************
				 * Creation du repertoire cible si inexistant
				 *************************************************************/
				if( !is_dir(TARGET) ) 
					{
					  if( !mkdir(TARGET, 0755) ) 
						{
							exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
						}
					}
 
					/************************************************************
					 * Script d'upload
					 *************************************************************/
					if(!empty($_POST))
						{
					  
					  // On verifie si le champ est rempli
					  if( !empty($_FILES['fichier']['name']) )
						{
						
							// Recuperation de l'extension du fichier
							$extension  = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
					 
							// On verifie l'extension du fichier
							if(in_array(strtolower($extension),$tabExt))
								{
								  // On recupere les dimensions du fichier
								  $infosImg = getimagesize($_FILES['fichier']['tmp_name']);
							 
								  // On verifie le type de l'image
								  if($infosImg[2] >= 1 && $infosImg[2] <= 14)
									{
										// On verifie les dimensions et taille de l'image
										if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['																		tmp_name']) <= MAX_SIZE))
											{
											  // Parcours du tableau d'erreurs
											  if(isset($_FILES['fichier']['error']) && UPLOAD_ERR_OK === $_FILES['fichier']['error'])
												{
													// On renomme le fichier
													include('name_maker.php');
													$nomImage = $key.'.'. $extension;
										 
													// Si c'est OK, on teste l'upload
													if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage))
														{
														  $message = 'Upload réussi !';
														  include('conn.php');
														  mysql_query('INSERT INTO image (login, time, name) VALUES ("user","Le '.date('d-m').' a '.date("H:i").'","'.$nomImage.'")');

														}
														else
														{
														  // Sinon on affiche une erreur systeme
														  $message = 'Problème lors de l\'upload !';
														}
												}
												else
												{
												    $message = 'Une erreur interne a empêché l\'uplaod de l\'image';
												}
											}
											else
											{
											  // Sinon erreur sur les dimensions et taille de l'image
											  $message = 'Erreur dans les dimensions de l\'image !';
											}
									}
									else
									{
									// Sinon erreur sur le type de l'image
									$message = 'Le fichier à uploader n\'est pas une image !';
									}
								}
								else
								{
								  // Sinon on affiche une erreur pour l'extension
								  $message = 'L\'extension du fichier est incorrecte !';
								}
						}
					  else
						  {
							// Sinon on affiche une erreur pour le champ vide
							$message = 'Veuillez remplir le formulaire svp !';
						  }
						}
			}
		}
?>



Bref je vous remercie d'avance de vous pencher sur ce code complètement boiteux xD

1 réponse

younesase Messages postés 80 Date d'inscription samedi 21 avril 2012 Statut Membre Dernière intervention 27 avril 2014 4
Modifié par younesase le 21/04/2014 à 18:52
pour vérifier si l'utilisateur a donner une photo tu doit plutôt faire ça
if(isset($_FILES['fichier']))

parce que les données qu'on upload ne se transmettent pas dans la variable $_POST
donc le code de ta deuxième page (la page d'action)
<?php
 session_start();
 if(isset($_SESSION["login"]) AND isset($_SESSION["pass"]))
 {

  $date = date("d-m-Y");
  $heure = date("H:i");
  

  require('conn.php');   
  mysql_query('INSERT INTO content (login,title,content,validate,heure) VALUES("'.$_SESSION['login'].'","'.$_POST['title'].'","'.$_POST['content'].'","0","'.date('H:i').'")');
  echo'Votre arcticle va passer en moderation avant d\'etre publie<meta http-equiv="refresh" content="2; URL=../article.php">';


  if(isset($_FILES['fichier']))
   {
    echo'swag';
    
    // Constantes
    define('TARGET', 'files/');    // Repertoire cible
    define('MAX_SIZE', 100000);    // Taille max en octets du fichier
    define('WIDTH_MAX', 2000);    // Largeur max de l'image en pixels
    define('HEIGHT_MAX', 2000);    // Hauteur max de l'image en pixels
         
    
    // Tableaux de donnees
    $tabExt = array('jpg','gif','png','jpeg');    // Extensions autorisees
    $infosImg = array();
 
    // Variables
    $extension = '';
    $message = '';
    $nomImage = '';
 
    /************************************************************
     * Creation du repertoire cible si inexistant
     *************************************************************/
    if( !is_dir(TARGET) ) 
     {
       if( !mkdir(TARGET, 0755) ) 
      {
       exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
      }
     }
 
     /************************************************************
      * Script d'upload
      *************************************************************/
     if(!empty($_POST))
      {
       
       // On verifie si le champ est rempli
       if( !empty($_FILES['fichier']['name']) )
      {
      
       // Recuperation de l'extension du fichier
       $extension  = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
      
       // On verifie l'extension du fichier
       if(in_array(strtolower($extension),$tabExt))
        {
          // On recupere les dimensions du fichier
          $infosImg = getimagesize($_FILES['fichier']['tmp_name']);
        
          // On verifie le type de l'image
          if($infosImg[2] >= 1 && $infosImg[2] <= 14)
         {
          // On verifie les dimensions et taille de l'image
          if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['                  tmp_name']) <= MAX_SIZE))
           {
             // Parcours du tableau d'erreurs
             if(isset($_FILES['fichier']['error']) && UPLOAD_ERR_OK === $_FILES['fichier']['error'])
            {
             // On renomme le fichier
             include('name_maker.php');
             $nomImage = $key.'.'. $extension;
           
             // Si c'est OK, on teste l'upload
             if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage))
              {
                $message = 'Upload réussi !';
                include('conn.php');
                mysql_query('INSERT INTO image (login, time, name) VALUES ("user","Le '.date('d-m').' a '.date("H:i").'","'.$nomImage.'")');

              }
              else
              {
                // Sinon on affiche une erreur systeme
                $message = 'Problème lors de l\'upload !';
              }
            }
            else
            {
                $message = 'Une erreur interne a empêché l\'uplaod de l\'image';
            }
           }
           else
           {
             // Sinon erreur sur les dimensions et taille de l'image
             $message = 'Erreur dans les dimensions de l\'image !';
           }
         }
         else
         {
         // Sinon erreur sur le type de l'image
         $message = 'Le fichier à uploader n\'est pas une image !';
         }
        }
        else
        {
          // Sinon on affiche une erreur pour l'extension
          $message = 'L\'extension du fichier est incorrecte !';
        }
      }
       else
        {
       // Sinon on affiche une erreur pour le champ vide
       $message = 'Veuillez remplir le formulaire svp !';
        }
      }
   }
  }
?>
0
Merciiiii :)
Les informations que tu m'as donné m'ont été très précieuses ! ça marche nickel chrome :))
0