Else pas prit en compte
- Accueil
- Forum
- Programmation
- PHP
- Else pas prit en compte
Chooper01 Le 3 septembre 2016 à 18:22 (Édité le 25 janvier 2019 à 17:52)
Voila comme le titre le dis mes else ne sont pas prit en compte.
Exemple:
Si je mets un format autre que png jpg ect il me dit "Veuillez remplir tous les champs" ...
Je vous mets mon code :
<?php
if (isset($_POST['envoye']))
{
if (isset($_FILES['Image']) AND !empty($_FILES['Image']['name']))
{
$taillemax = 2097152 ;
$extensionval = array('jpg' , 'jpeg' , 'gif' , 'png') ;
if ($_FILES['Image']['size'] <= $taillemax)
{
$extensionUpload = strtolower(substr(strrchr($_FILES['Image']['name'], '.'), 1));
if (in_array($extensionUpload, $extensionval))
{
$chemin = "imagesrecette/recette/".$_SESSION['id'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['Image']['tmp_name'], $chemin) ;
if ($resultat)
{
$updateavatar = $bdd->prepare('UPDATE recette SET Image = :Image WHERE id = :id ') ;
$updateavatar->execute(array(
'Image' => $_SESSION['id']. "." .$extensionUpload ,
'id' => $_SESSION['id']
));
if (isset($_POST['titre'],$_POST['type'],$_POST['nbrpers'],$_POST['1ing'],$_POST['contenu']) AND !empty($_POST['titre']) AND !empty($_POST['type']) AND !empty($_POST['nbrpers']) AND !empty($_POST['1ing']) AND !empty($_POST['contenu']))
{
$titre = htmlspecialchars($_POST['titre']);
$type = htmlspecialchars($_POST['type']);
$nbrpers = htmlspecialchars($_POST['nbrpers']);
$_1ing = htmlspecialchars($_POST['1ing']);
$_2ing = htmlspecialchars($_POST['2ing']);
$_3ing = htmlspecialchars($_POST['3ing']);
$_4ing = htmlspecialchars($_POST['4ing']);
$_5ing = htmlspecialchars($_POST['5ing']);
$_6ing = htmlspecialchars($_POST['6ing']);
$_7ing = htmlspecialchars($_POST['7ing']);
$_8ing = htmlspecialchars($_POST['8ing']);
$_9ing = htmlspecialchars($_POST['9ing']);
$_10ing = htmlspecialchars($_POST['10ing']);
$contenu = htmlspecialchars($_POST['contenu']);
$image = $_FILES['Image'];
$ins = $bdd->prepare("INSERT INTO recette (Image, Titre, Contenu, Nbrpers, 1ing, 2ing, 3ing, 4ing, 5ing, 6ing, 7ing, 8ing, 9ing, 10ing, type, datepub) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())");
$ins->execute(array($image, $titre, $contenu, $nbrpers, $_1ing, $_2ing, $_3ing, $_4ing, $_5ing, $_6ing, $_7ing, $_8ing, $_9ing, $_10ing, $type));
$msg = 'Votre recette a bien été envoyée !' ;
}
else { $erreur ='Veuillez remplir tous les champs'; }
}
else {$erreur ='Erreur lors de votre importation d\'images.';}
}
else{$erreur='L\'extenstion de l\'image est invalide !';}
}
else { $erreur ='La taille du fichier ne doit pas dépasser les 2Mo';}
}
else {$erreur ='Veuillez mettre une image ';}
}
?>
TheOldNoob Le 3 septembre 2016 à 20:10 (Édité le 1 janvier 1970 à 01:00)
Alors, bon, j'aime pas se genre de construction, les else sont difficilement différenciable. Mais ça marche quand même comme genre de code.
Pour insérer une image en bdd ainsi que des champs, je fait un If pour l'image, avec mes else bien comme il faut,
puis je met un autre if que pour les autre champs. ça me donne plus de visibilité.
Après, je pense que ça viens du type MIME a la place de :
$extensionval = array('jpg' , 'jpeg' , 'gif' , 'png') ;
J'aurais mis :
$extensionval= array('image/jpeg', 'image/jpg', 'image/png', 'image/gif'); // Attention, image n'indique pas le répertoire, mais le type mime !
Chooper01 Le 3 septembre 2016 à 22:47 (Édité le 1 janvier 1970 à 01:00)
enctype="multipart/form-data"
Merci ! Profil introuvable Le 10 septembre 2016 à 19:43 (Édité le 1 janvier 1970 à 01:00)
Et tu peux aussi mettre le topic en résolu 😋
TheOldNoob Le 10 septembre 2016 à 21:29 (Édité le 1 janvier 1970 à 01:00)