Sauvegarde image et texte dans bdd

salutlacompagnie

salutlacompagnie Le 18 mai 2017 à 18:59 (Édité le 25 janvier 2019 à 17:53)

Bonjour tout le monde je rencontre un problème depuis plusieurs heures..
Je souhaite sauvegarder une image ainsi que deux autres champs de type texte.
Si quelqu'un peut m'aider je lui en serais très reconnaissant =)

if(isset($_POST['news'])) {

if(isset($_FILES['image']) AND!empty($_FILES['image']['name']))
    {
        $taillemax = 2097152;
        $extensionsValides = array('jpg' , 'jpeg', 'gif', 'png');
        if($_FILES['image']['size'] <= $taillemax)
        {
            $extensionUpload = strtolower(substr(strrchr($_FILES['image']['name'], '.'), 1));
            if(in_array($extensionUpload, $extensionsValides))
            {
                $chemin = "../../image/".$_SESSION['id'].".".$extensionUpload;
                $resultat = move_uploaded_file($_FILES['image']['tmp_name'], $chemin);
                if($resultat)
                {
                    
                    $contenu = htmlspecialchars($_POST['contenu']);
                    
                    $categorie = htmlspecialchars($_POST['categorie']);
                    
                        if(!empty($_POST['contenu'])){
                        
                            if(!empty($_POST['categorie'])){
                    
                                $contenulength = strlen($contenu);
                                    if($contenu) {
                            
                                    $categorielength = strlen($categorie);
                                        if($categorie) {
                                            
                    $reqnews= $bdd->prepare('INSERT INTO statut (id_client, image, contenu, categorie, heure_post)
                    (?, :image, ?, ?, NOW()) WHERE id = :image'); 
                    $reqnews->execute(array($_SESSION['id'],
                    'image' => $_SESSION['id'].".".$extensionUpload,
                        'id' => $_SESSION['id'], $contenu, $categorie));
                        
                                header('Location: '.$_SERVER['HTTP_REFERER'].'');
        
                                } else {
                                 $erreur = "Votre categorie ne doit comporter que du texte";
                                }

                            } else {
                              $erreur = "Votre statut ne doit comporter que du texte";
                            }
           
                       } else {
                          $erreur = "Vous n'avez pas séléctionné de categorie";
                       }
           
                   } else {
                      $erreur = "Votre statut n'est pas complété";
                   }                        
                    
                    }
                    else
                    {
                        $erreur = "Votre image principale n'a pas été téléchargé correctement!";
                    }
                }
                else
                {
                    $erreur = "Votre photo doit être au format jpeg, jpg, gif ou png";
                }
            }
            else
            {
                $erreur = "Votre photo ne doit pas dépasser 2MO";
            }
        }                
                
    }
Cordialement =)
Balatharas

Balatharas Le 19 mai 2017 à 23:33

Bien


ok

mais c'est quoi le problème ???
salutlacompagnie

salutlacompagnie Le 20 mai 2017 à 12:33

Oupsss! J'ai oublié d'expliquer le problème ^^

Le problème c'est que l'image ne s'enregistre pas dans la base donnée avec les autres champs ..
Pourtant la retrouve bien dans le dossier ou je stock les images des utilisateurs..

Donc que dois-je faire pour pouvoir sauvegarder mais 3 données en même temps?

Merci
Balatharas

Balatharas Le 20 mai 2017 à 23:13

if(isset($_POST['news'])) {
   if(isset($_FILES['image']) AND!empty($_FILES['image']['name'])) {
      $taillemax = 2097152;
      $extensionsValides = array('jpg' , 'jpeg', 'gif', 'png');
      
      if($_FILES['image']['size'] <= $taillemax) {
         $extensionUpload = strtolower(substr(strrchr($_FILES['image']['name'], '.'), 1));
         
         if(in_array($extensionUpload, $extensionsValides)) {
            $nomfichier = $_SESSION['id'].".".$extensionUpload;
            $chemin = "../../image/".$nomfichier;
            $resultat = move_uploaded_file($_FILES['image']['tmp_name'], $chemin);
            
            if($resultat) {
               $contenu = htmlspecialchars($_POST['contenu']);
               $categorie = htmlspecialchars($_POST['categorie']);
               if(!empty($contenu)) {
                  if(!empty($categorie)) {
                     $contenulength = strlen($contenu);
                     
                     if($contenu) {
                        $categorielength = strlen($categorie);
                        if($categorie) {
                           $reqnews = $bdd->prepare('
                              INSERT INTO
                              statut(id_client, image, contenu, categorie, heure_post)
                              (?, ?, ?, ?, NOW())
                              WHERE id = :id
                           '); 
                           $reqnews->execute([
                              $_SESSION['id'],
                              $nomfichier,
                              $contenu,
                              $categorie
                              'id' => $_SESSION['id'],
                           ]);
                           header('Location: '.$_SERVER['HTTP_REFERER']);
                        } else {
                           $erreur = "Votre catégorie ne doit comporter que du texte";
                        }
                     } else {
                        $erreur = "Votre statut ne doit comporter que du texte";
                     }
                  } else {
                     $erreur = "Vous n'avez pas séléctionné de categorie";
                  }
               } else {
                  $erreur = "Votre statut n'est pas complété";
               }
            } else {
               $erreur = "Votre image principale n'a pas été téléchargé correctement!";
            }
         } else {
            $erreur = "Votre photo doit être au format jpeg, jpg, gif ou png";
         }
      } else {
         $erreur = "Votre photo ne doit pas dépasser 2MO";
      }
   }
}
Si ton problème est résolu avec ce code, je t'expliquerai mes modifications 😋
salutlacompagnie

salutlacompagnie Le 28 mai 2017 à 13:48

Salut,
Merci de m'avoir fournit un code mais celui ci  ne fonctionne pas, il y a une erreur ligne 35.. j'ai modifié ça dans tout les sens mais il n'y a rien à faire je n'arrive pas à la faire fonctionné correctement =(
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte