Modifier ou ajouter une photo via un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modifier ou ajouter une photo via un formulaire

Re: Modifier ou ajouter une photo via un formulaire

par finipe » 05 sept. 2017, 08:25

As-tu pensé à ajouter enctype="multipart/form-data" dans ta balise <form> ?

Modifier ou ajouter une photo via un formulaire

par yoann38 » 04 sept. 2017, 20:49

Salut à tous
Voilà j'ai mon code qui marche bien sauf pour un champ le "champ photo".
L'utilisateur peut modifier son post en ajoutant une photo ou en la modifiant mais rien ne se passe.
Je ne vois pas trop l'erreur dans mon code.
Pour les autres champs c'est ok

Mon traitement PHP:

<?php
$erreurs = array();

if (isset($_GET['id_annonce'])) {
$idAnn = $_GET['id_annonce'];
} elseif (isset($_POST['id_annonce'])) {
$idAnn = $_POST['id_annonce'];
} else {
$idAnn = 0;
}


if(!empty($_POST)) {//soumission du formulaire
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
// Upload des fichier
if(empty($namefile)) {

if(!empty($_FILES)) {

if(!empty($_FILES['photo']['tmp_name'])) {

$path = 'img-big-format/';
$namefile = filename($_FILES['photo']['name'], $_POST['titre']);

$return = upload($_FILES['photo'], $namefile, $path, array('image/jpg', 'image/jpeg'));
$message = $return[0];
$erreur = $return[1];

if($erreur <= 1) {
imageparfaite(600, 400, $path.$namefile, $path.$namefile, 1);
imageparfaite(335, 225, $path.$namefile, $path.'miniature/'.$namefile, 1);
} else {
$erreurs['image'] = $message;
}


}
}

}

//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs) ){

$departement = substr($_POST['postcode'], 0, 2); regionIdByDepartement($departement);


if (!empty($namefile)) {
$modif = $bdd->prepare("UPDATE loisirs SET id_region = :id_region, id_departements = :id_departements, id_type_loisirs = :id_type_loisirs, photo = :photo, titre = :titre, date_debut_sortie = :date_debut_sortie, date_fin_sortie = :date_fin_sortie, description = :description, phone = :phone, email = :email, website = :website, street = :street, postcode = :postcode, city = :city, price = :price WHERE id_loisirs =".$idAnn);

//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)'];
$date = DateTime::createFromFormat('d/m/Y', $_POST['date_debut_sortie']);
$date_debut = $date->format('Y-m-d H:i:s');
$date = DateTime::createFromFormat('d/m/Y', $_POST['date_fin_sortie']);
$date_fin = $date->format('Y-m-d H:i:s');


$modif->execute(array(
'id_region'=>regionIdByDepartement($departement),
'id_departements'=> $departement,
'id_type_loisirs' => $_POST['type_loisirs'],
'photo' =>$namefile,
'titre' => $_POST['titre'],
'date_debut_sortie'=>$date_debut,
'date_fin_sortie'=>$date_fin,
'description' => $_POST['description'],
'phone' => $_POST['phone'],
'email' => $_POST['email'],
'website' => $_POST['website'],
'street' => $_POST['street'],
'postcode' => $_POST['postcode'],
'city' => $_POST['city'],
'price' => $_POST['price']
));

unset($_POST);

//*
}

echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
<div class="alert alert-success okay" role="alert" style="margin-top:80px"> <i class="fa fa-smile-o"></i>
Votre annonce à bien était modifiée</div></div></div>';

}else{//le tableau ne contient
echo '<div class="container"><div class="col-md-6 col-md-offset-2 col-sm-8 col-sm-offset-2">
<div class="alert alert-danger okay" role="alert">Renseignez les champs vides</div></div></div>';
}

}//fin de la soumission du formulaire



$reponse = $bdd->query('SELECT * FROM loisirs WHERE id_loisirs = ' .$idAnn);
$donnees = $reponse->fetch(PDO::FETCH_ASSOC);

//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)'];
$date = DateTime::createFromFormat('Y-m-d H:i:s', $donnees['date_debut_sortie']);
$date_debut = $date->format('d/m/Y');
$date = DateTime::createFromFormat('Y-m-d H:i:s', $donnees['date_fin_sortie']);
$date_fin = $date->format('d/m/Y');

?>

Champ photo:
  <label>Photo</label>
      <?php 
      echo '<img src="img-big-format/miniature/'.$donnees['photo'].'" alt="'.$donnees['titre'].'" class="img-responsive" /><br />
      <em>Si vous souhaitez remplacer la photo, choisissez en une nouvelle.</em>';
	
	  ?>
      <input id="photo" name="photo" type="file" accept="image/jpeg" />