voilà j'ai essayé de corriger ton code. Reste quelques corrections à faire de ton côté:
-supprime le champ valide dans la table loisirs car ce type d'information n'a pas besoin d'être sauvegardé en bd(quand on sauvegarde les données c'est qu'elles ont été validées en amant par php )
-j'ai donné un nom bidon à la photo uploadée question de tester que toutes les données sont bien insérées.cependant pour télécharger la photo de l'internaute vers ton serveur je laisse consulter ce tuto:
uplodé u fichier
//côté php
<?php
$erreurs = array(); //tableau contenant des messages d'erreurs
/* traitement des erreurs
* tous les champs du formulaire non remplis seront placés
* dans le tableau des erreurs $erreurs.A la fin du traitement
* ce tableau sera soit vide, auquel cas on exécute la requête insert
* pour inserer les données en bd, soit ce tableau n'est pas vide(champs non remplis) on invite
* l'utilisateur à remplir tous les champs
*/
if(!empty($_POST)) {//soumission du formulaire
//Verification titre
if(empty($_POST['titre']))
{
$erreurs['titre'] = 'Renseigner un nom de sortie';
}
//Verification ville
if(empty($_POST['city']))
{
$erreurs['city'] = 'Renseigner une ville';
}
//Verification code postal
if(empty($_POST['postcode']))
{
$erreurs['postcode'] = 'Renseigner un code postal';
}
//Verification sous-titre
if(empty($_POST['sous_titre']))
{
$erreurs['sous_titre'] = 'Votre sortie en quelques mots';
}
//Verification description
if(empty($_POST['description']) )
{
$erreurs['description'] = 'Le detail de votre sortie';
}
//Verification description
if(empty($_POST['email']))
{
$erreurs['email'] = 'verifier';
}
if(empty($_POST['price']))
{
$erreurs['price'] = "le prix n'est pas renseigné";
}
//Verification description
if(empty($_POST['website']))
{
$erreurs['website'] = 'lien url';
}
//fin traitement des erreurs
//pour l'instant je donne un nom bidon à la photo question de voir si les données s'insèrent à la bd
//par après tu pourras consulter les tutos sur comment uploadé les fichiers en php
$photo='nom bidon';
//s'il y a problème, procède au debogage en decommentant les 2 lignes çi-dessus:
//var_dump($_POST);
//die('fin debogage');
//le tableau d'erreurs est vide alors on insère les données
if( empty( $erreurs) ){
//conversion de la date debut du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_debut = date_create_from_format('d-m-Y H:i:s', $_POST['date_debut_sortie']);
$date_debut date_format($date_debut, 'Y-m-d H:i:s');
//conversion de la date fin du format fr(jj:mm:aaaa hh:mm:ss) en format us(aaaa-mm-jj hh:mm:ss)
$date_fin = date_create_from_format('d-m-Y H:i:s', $_POST['date_fin_sortie']);
$date_fin date_format($date_fin, 'Y-m-d H:i:s');
$req = $bdd->prepare('INSERT INTO loisirs ( id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price)
VALUES (:id_departements, :id_type_loisirs, :photo, :titre,
:sous_titre, :date_debut_sortie, :date_fin_sortie, :description,
:phone, :email, :website, :street, :postcode, :city, :price )');
$retour= $req->execute(array(
'id_departements'=>$_POST['departements'],
'id_type_loisirs'=>$_POST['type_loisirs'],
'photo'=>$photo,
'titre'=>$_POST['titre'],
'sous_titre'=>$_POST['sous_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']
));
if( $retour ===false) echo "Problème lors de l'insertion";
}else{//le tableau ne contient
echo "<p> renseignez les champs vides</p>";
}
}//fin de la soumission du formulaire
?>
le formulaire
<form action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
<label for="departement">Departement </label>
<select class="form-control" name="departements" id="departement">
<?php foreach ($bdd->query("SELECT * from departements order by nom") as $dep):?>
<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
<?php endforeach; ?>
</select>
<label>Sortie</label>
<select class="form-control" name="type_loisirs" id="age">
<?php foreach ($bdd->query("SELECT * from type_loisir order by type") as $typeloisirs):?>
<option value="<?php echo $typeloisirs['type_loisir']; ?>"><?php echo $typeloisirs['type'];?></option>
<?php endforeach; ?>
</select>
<!-- titre de la sortie -->
<label>titre :</label>
<input class="form-control" type="text" name="titre" value="<?php if(isset($_POST['titre'])) echo $_POST['titre'];?>" />
<div class="error"><?php if(isset($erreurs['titre'])) echo $erreurs['titre'];?></div>
<!-- titre de la sortie -->
<label>email :</label>
<input class="form-control" type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
<div class="error"><?php if(isset($erreurs['email'])) echo $erreurs['email'];?></div>
<!-- Ville de la sortie -->
<label>Ville *</label>
<input class="form-control" type="text" name="city" value="<?php if(isset($_POST['city'])) echo $_POST['city'];?>" />
<div class="error"><?php if(isset($erreurs['city'])) echo $erreurs['city'];?></div>
<!-- Ville de la sortie -->
<label>Rue</label>
<input class="form-control" type="text" name="street" value="<?php if(isset($_POST['street'])) echo $_POST['street'];?>" />
<div class="error"><?php if(isset($erreurs['street'])) echo $erreurs['street'];?></div>
<!-- Code postal de la sortie -->
<label>Code postal *</label>
<input class="form-control" type="text" name="postcode" value="<?php if(isset($_POST['postcode'])) echo $_POST['postcode'];?>" />
<div class="error"><?php if(isset($erreurs['postcode'])) echo $erreurs['postcode'];?></div>
<!-- Sous-titre de la sortie -->
<label>Sous titre*</label>
<input class="form-control" type="text" name="sous_titre" value="<?php if(isset($_POST['sous_titre'])) echo $_POST['sous_titre'];?>" />
<div class="error"><?php if(isset($erreurs['sous_titre'])) echo $erreurs['sous_titre'];?></div>
<!-- Sous-titre de la sortie -->
<label>website</label>
<input class="form-control" type="text" name="website" value="<?php if(isset($_POST['website'])) echo $_POST['website'];?>" />
<div class="error"><?php if(isset($erreurs['website'])) echo $erreurs['website'];?></div>
<!-- Sous-titre de la sortie -->
<label>Prix</label>
<input class="form-control" type="text" name="price" value="<?php if(isset($_POST['price'])) echo $_POST['price'];?>" />
<div class="error"><?php if(isset($erreurs['price'])) echo $erreurs['price'];?></div>
<!-- Description de la sortie -->
<label>Detail de votre sortie</label>
<input class="form-control" type="text" name="description" value="<?php if(isset($_POST['description'])) echo $_POST['description'];?>" />
<div class="error"><?php if(isset($erreurs['description'])) echo $erreurs['description'];?></div>
<p>Start <input class="form-control" id="date_debut_sortie" name="date_debut_sortie" type="text">
End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
jQuery('#date_debut_sortie').datetimepicker({
format:'d.m.Y H:i',
onShow:function( ct ){
this.setOptions({
maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
})
},
timepicker:true
});
jQuery('#date_fin_sortie').datetimepicker({
format:'d.m.Y H:i',
onShow:function( ct ){
this.setOptions({
minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
})
},
timepicker:true
});
});
// ]]></script>
<label>Télephone</label>
<input class="form-control" type="text" name="phone" value="<?php if(isset($_POST['phone'])) echo $_POST['phone'];?>" />
<div class="error"><?php if(isset($erreurs['phone'])) echo $erreurs['phone'];?></div>
<label>Photo</label>
<input name="photo" type="file">
<input class="btn-u" type="submit" value="ENVOYER">
</form>
pour plus d'informations sur comment construire et traiter un formulaire(ce qui te pose problème) :
traitement formulaire.