Redirection avec header location

Résolu
mobrobot Messages postés 182 Statut Membre -  
mobrobot Messages postés 182 Statut Membre -
Bonjour, s'ils vous plais je n'arrive pas a rediriger avec
header()
après la formulaire, l'erreur suivant s'affiche
Catchable fatal error: Object of class PDOStatement could not be converted to string in C:\wamp\www\projet\lienderedirection.commende.php on line 49

je vois pas la ou est le problème voici le code
//------ Insertion a la table topics -----//
    $insert = $bdd->prepare("INSERT INTO f_topics (id_createurs, sujet, model, contenue, notif_createure, date_heure_createur) VALUES(?,?,?,?,?,NOW()) ");
    $insert->execute(array($_SESSION['id'],$sujet,$model,$contenu,$notif));
    $last_topic = $bdd->query("SELECT id FROM  topics ORDER BY id DESC LIMIT 0,1");
    $last_topics = $last_topic->fetch();
    $id_topics = $last_topics['id'];
    //------ Insertion a la table topics_categories ------//
    $ins = ("INSERT INTO f_topics_categories (id_topics,id_categories,id_sous_categories) VALUES(?,?,?) ");
    $datas = (array($id_topics,$get_console,$model));
    try{
    $requete = $bdd->prepare($ins);
    $requete->execute($datas);
    }catch(Exception $e){
    echo "Erreur : !".$e->getMessage();
    echo "Les datas ";
    print_r($datas);
    }
    
    header('Location: http://localhost/projet/lienderedirection.php?console='.$models);

je vous remerci

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Aucun rapport avec la redirection...

    Qu'as tu dans
    C:\wamp\www\projet\lienderedirection.commende.php à la ligne 49 ?
    0
    1. mobrobot Messages postés 182 Statut Membre 1
       
      salut jordane45 voici ce que j'ai dans lienderedirection.commende.php
      <?php
      require_once "demarrage.php";
      require_once "dbconnexion.php";
      if(isset($_GET['console'])){
       $get_console = htmlspecialchars($_GET['console']);
       $req_csl = $bdd->prepare("SELECT * FROM f_categories WHERE id = ? ");
       $req_csl->execute(array($get_console));
       $csl_exist = $req_csl->rowCount();
       if($csl_exist == 1){
       $req_csl = $req_csl->fetch();
       $req_csl = $req_csl['nom'];
       $models = $bdd->prepare("SELECT * FROM f_sous_categories WHERE id_categories = ? ORDER BY nom");
       $models->execute(array($get_console));
       if(isset($_SESSION['id'])){
        if(isset($_POST['tsubmit'])){ 
         if(isset($_POST['tsujet'],$_POST['tcontenu'])){
          $sujet = htmlspecialchars($_POST['tsujet']);
          $contenu = htmlspecialchars($_POST['tcontenu']);
          $model = htmlspecialchars($_POST['model']);
          $v_model = $bdd->prepare("SELECT id FROM f_sous_categories WHERE id = ? AND id_categories = ?");
          $v_model->execute(array($model,$get_console));
          $v_model = $v_model->rowCount();
          if($v_model == 1){
          if(!empty($sujet) AND !empty($contenu)){
          if(strlen($sujet) <= 70){
          if(isset($_POST['tmail'])){ 
          $notif = 1;
          }else{
          $notif = 0;
          }
          //------ Insertion a la table topics -----//
          $insert = $bdd->prepare("INSERT INTO f_topics (id_createurs, sujet, model, contenue, notif_createure, date_heure_createur) VALUES(?,?,?,?,?,NOW()) ");
          $insert->execute(array($_SESSION['id'],$sujet,$model,$contenu,$notif));
          $last_topic = $bdd->query("SELECT id FROM f_topics ORDER BY id DESC LIMIT 0,1");
          $last_topics = $last_topic->fetch();
          $id_topics = $last_topics['id'];
          //------ Insertion a la table f_topics_categories ------//
          $ins = ("INSERT INTO f_topics_categories (id_topics,id_categories,id_sous_categories) VALUES(?,?,?) ");
          $datas = (array($id_topics,$get_console,$model));
          try{
          $requete = $bdd->prepare($ins);
          $requete->execute($datas);
          }catch(Exception $e){
          echo "Erreur : !".$e->getMessage();
          echo "Les datas ";
          print_r($datas);
          }
          
          header('Location: http://localhost/projet/lienderedirection.php?console='.$models);
          }else{
           $erreur = "[Votre sujet est trop long]";
          }
          }else{
           $erreur = "[Les champs sont obligatoire]";
          }
          }else{
           $erreur = "[Model introuvable]";
          }
         }
        }
       }else{
        $erreur = '[ Veuillez vous connecter <a href="connexion.php">ici</a> ]';
       }
       }else{
        die("Erreur : [Console Invalide]");
       }
      }else{
       die("Erreur :[Accune console n'a été definie]");
      }
      ?>
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Ligne 49 en effet.. model sans s au lieu de models... Ca devrait être mieux
      0
    3. mobrobot Messages postés 182 Statut Membre 1
       
      J'ai mis model sans s ça marche, seulement il retourne pas le model de la console qui correspond. Il vien avec un autre model inattendu.
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > mobrobot Messages postés 182 Statut Membre
       
      Que veux tu retourner exactement dans ton lien ?
      header('Location: http://localhost/projet/lienderedirection.php?console='.$models);
      

      à quoi est sensé correspondre la "console" ?

      Que veux dire ta phrase : "Il vien avec un autre model inattendu." ?
      Peux tu détailler ? Donner des exemples ? des explications plus claires ....
      0
    5. mobrobot Messages postés 182 Statut Membre 1
       
      Exemple 1: dans la formulaire je partage un message dont le model est: playstation, après avoir écrire le message et le valider qu'il se redirige dans la page
      lienderedirection.php?console=1
      en affichant le message partager dans la formulaire.

      Exemple 2: la page
      lienecriremessage.php?console=1
      on rédige le message et on le valide. après la validation le lien suivant va afficher le message
      header('Location: http://localhost/beta/lienderedirection.php?console='.$model);


      si je mes le model avec s voici ce qui va se passé
      liendecriremessage.php?console=1
      après la validation
      lienderedirection.php?console=1
      avec une erreur dans la ligne 49


      si je mes le model sans s voici ce qui va ce passé
      liendecriremessage.php?console=1
      après la validation
      lienredirection.php?console=4 
      sans erreur
      0