Envoyer des fichiers

Debutant
Invité n'ayant pas de compte PHPfrance

11 avr. 2015, 21:39

Bonjour, je voudrais créer un formulaire d'ajout de pizza permettant d'ajouter une image et de l'enregistrer dans le dossier ”./images/pizzas/” mais ça ne marche pas, pouvez-vous m'aider ?

Voici le code source du fichier "ajout_pizza.php" :
<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<meta charset="utf-8">
		<link rel="stylesheet" type="text/css" href="style.css">
		<title>Administration</title>
	</head>
	<body>
	
		<?php
			include"connexion.php";
			$bdd = Connect_db();
			if(isset($_POST) AND count($_POST)>0)
			{
				if (isset($_POST['nom']) AND isset($_POST['prix']) AND isset($_POST['ingredients']))  //Si le formulaire a été envoyé
				{
					if ($_POST['nom'] == NULL)   					// Le nom n'est pas renseigné
					{
						echo 'Veuilez entrer un nom pour votre pizza';
					}
					else if ($_POST['ingredients'] == NULL)				//  Les ingrédients ne sont pas renseignés
					{
						echo 'Veuilez entrer des ingrédients pour votre pizza';
					}
					
					else if ($_POST['prix'] == NULL)				// Le prix n'est pas renseigné
					{
						echo 'Veuilez entrer un prix pour votre pizza';
					}
					
					else 				//Tous les champs sont remplis
					{			
					 
						$id_nom = htmlspecialchars($_POST['nom']);
						$id_ingr = htmlspecialchars($_POST['ingredients']);
						$id_prix = htmlspecialchars($_POST['prix']); 
						
						$query = $bdd->prepare('SELECT nom_pizza FROM pizzas WHERE nom_pizza = ?');
					
						$query->execute(array($id_nom));
						$data=$query->fetch();
						
						if($data!=NULL AND count($data)>0)
						{
							$query = $bdd->prepare('UPDATE pizzas SET ingredients_pizza= ?, prix_pizza=? WHERE nom_pizza=?');
							$query->execute(array($id_ingr,$id_prix,$id_nom));
							
							echo '<section class="message">
							Cette pizza existe déjà et a été modifiée.
							</section>';
						}
							
						else
						{
							$req = $bdd->exec("INSERT INTO pizzas (nom_pizza, ingredients_pizza, prix_pizza) VALUES(\"".$id_nom."\", \"".$id_ingr."\", $id_prix)");
							
							echo '<section class="message">
							La pizza a été ajoutée.
							</section>';
						}
						
						if (isset($_FILES['fichier'])) // AND $_FILES['fichier']['error'] == 0 AND $_FILES['fichier']['size'] <= 2097152) // 2MO
						{  
							$infosfichier = pathinfo($_FILES['fichier']['name']);
							print $infosfichier;
							$ext_upload = $infosfichier['extension'];
							$ext_autorisees = array('jpg', 'jpeg', 'png');
							$nom_fichier=strtolower($id_nom);
							echo $nom_fichier;
							if (in_array($ext_upload, $ext_autorisees))
							{
							move_uploaded_file($_FILES['fichier']['tmp_name'],'./images/pizzas/' . $nom_fichier.'.'.$ext_upload);
							}
						}
					}
				}
			}
			else
			{
		?>
		
		<section id="ajout_pizza">
			<h1>Ajouter une nouvelle pizza au menu</h1>
		
			<form action="#" method="post" enctype="multipart/form-data">
				
				<div><label for="nom">Nom</label><input type="text" id="nom" name="nom" placeholder="Le nom de notre futur best-seller"/></div>	
				<div><label for="ingredients">Ingrédients</label><textarea id="ingredients" name="ingredients" placeholder="La liste d'ingrédients secrets" /></textarea></div>
				<div><label for="prix">Prix</label><input type="text" id="prix" name="prix" placeholder="Le prix unitaire en euros"/></div>	
				<div><label for="image">Image (optionnelle, d'extension jpg ou png et de taille < 2Mo)</label><input type="file" name="fichier" id="fichier" /></div>
				<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
				<div>
					<button type="submit">Enregistrer</button>
				</div>
			</form>
		</section>
		
		<?php
		 
			} //fin else
		
		?>
	</body>
</html>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 avr. 2015, 21:46

Bonjour,

Quel est le problème ? Qu'as-tu essayé ?
Où bloques-tu et quel est le message d'erreur ?
Quand tout le reste a échoué, lisez le mode d'emploi...