Redirection avec header location

Résolu/Fermé
mobrobot Messages postés 173 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 8 mai 2023 - Modifié le 21 janv. 2019 à 13:11
mobrobot Messages postés 173 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 8 mai 2023 - 22 janv. 2019 à 20:57
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
21 janv. 2019 à 13:15
Aucun rapport avec la redirection...

Qu'as tu dans
C:\wamp\www\projet\lienderedirection.commende.php à la ligne 49 ?
0
mobrobot Messages postés 173 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 8 mai 2023 1
Modifié le 22 janv. 2019 à 05:29
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
22 janv. 2019 à 06:53
Ligne 49 en effet.. model sans s au lieu de models... Ca devrait être mieux
0
mobrobot Messages postés 173 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 8 mai 2023 1
22 janv. 2019 à 17:00
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > mobrobot Messages postés 173 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 8 mai 2023
22 janv. 2019 à 18:25
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
mobrobot Messages postés 173 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 8 mai 2023 1
Modifié le 22 janv. 2019 à 20:04
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