Categories > TinyButStrong general (FR) >

Problème de session_start en tbs

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Sebrilia
Date: 2012-03-08
Time: 09:32

Problème de session_start en tbs

Bonjour,

J'ai un projet à rendre dans une vingtaine de jour. Ce projet permet de se connecter a un compte que l'utilisateur a préalablement créé en s'inscrivant auparavant.
Lorsque l'on se connecte, on est redirigé sur la page d'accueil du site, jusqu'ici tout fonctionne. Je décide de changer de page ça fonctionne sauf pour la page qui liste les membres avec le tbs...
On est déconnecté que sur cette page...

Voici le code php :

<?php
session_start();
// INCLUSION DU FICHIER TBS ET DE LA LIBRAIRIE DES FONCTIONS
include ("script/tbs/tbs_class.php");
include ("script/tool.php");

//Paramètes de connexion à la base de données
  $serveur = "localhost";
  $utilisateur = "root";
  $mdp = "";
  $base = "mysqlBDD";
 
//Connexion à la base de données
$connexion = mysql_connect($serveur, $utilisateur, $mdp) or die ("Connexion à MySQL impossible : ".mysql_error());
mysql_select_db($base) or die ("Impossible de sélectionner la base de données : ".mysql_error());

//-------------------------ouverture de connexion-------------------------------
  try
  {
    $dbh = new PDO('mysql:host=localhost;dbname=IMMO_FC', 'root', 'pf68');
    //echo "Connecté\n";
  }
  catch (PDOException $e)
  {
    print "Erreur de connexion !: " . $e->getMessage() . "<br/>";
    die();
  }
//----------------------------------------------------------------------------

//créer un nouvel objet TBS
$tbs = new clsTinyButStrong;

//Faire le lien avec le modele HTML statique
$tbs -> LoadTemplate('content/liste_membres.html');

//test pour savoir si le 2ème paramètre existe
//et si oui cela veut dire qu'on vient d'AJAX >> ne plus utiliser TBS
if(isset($_GET['param']))
{   
  //début de la 2ème liste déroulante         
  $tableau = "<table id=\"liste_membres\">
    <tr>
        <td>&nbsp;</td>
        <td>Classe</td>
        <td>Nom</td>
        <td>&nbsp;</td>
        <td>Race</td>
    </tr>" ;
 
  //exécution requete qui recherche les les données concernant un personnage                    
  if ($_GET["param"] != "all")
  {
  foreach(
$dbh->query("SELECT site_classe.nom as nom_classe, site_personnage.nom as nom_perso, site_race.nom as nom_race, site_race.img as img_race, site_classe.img as img_classe
  from site_classe, site_personnage, site_race
  WHERE site_classe.id_classe = site_personnage.id_classe
  AND site_race.id_race = site_personnage.id_race
  AND site_classe.nom='".$_GET['param']."'") as $row)
  {
      //traitement des résultats obtenus >> transformer en texte
      //chargement de la liste avec les options
      $tableau.= "<tr>
                      <td><img src=img/classe/".$row['img_classe']." class=\"icone_classe\" /></td>
                      <td>".$row['nom_classe']."</td>
                      <td>".$row['nom_perso']."</td>
                      <td><img src=img/race/".$row['img_race']." class=\"icone_classe\" /></td>
                      <td>".$row['nom_race']."</td>
                  </tr>";
  }
  }
  else
  {
  foreach(
$dbh->query("SELECT site_classe.nom as nom_classe, site_personnage.nom as nom_perso, site_race.nom as nom_race, site_race.img as img_race, site_classe.img as img_classe
  from site_classe, site_personnage, site_race
  WHERE site_classe.id_classe = site_personnage.id_classe
  AND site_race.id_race = site_personnage.id_race") as $row)
  {
      //traitement des résultats obtenus >> transformer en texte
      //chargement de la liste avec les options
      $tableau.= "<tr>
                      <td><img src=img/classe/".$row['img_classe']." class=\"icone_classe\" /></td>
                      <td>".$row['nom_classe']."</td>
                      <td>".$row['nom_perso']."</td>
                      <td><img src=img/race/".$row['img_race']." class=\"icone_classe\" /></td>
                      <td>".$row['nom_race']."</td>
                  </tr>";
  }
  }
  //fin de la liste et affichage
  $tableau.="</table>";
  echo $tableau ;
}
else  //sinon on vient du fichier index.html et donc on a besoin de tbs
{     

//-------------------liste déroulante classes--------------------
$sth = $dbh->prepare("SELECT nom FROM site_classe");
$sth->execute();
$resultats = $sth->fetchAll();
//fusion de la liste des classes
$tbs->MergeBlock('dynam2', $resultats);
//---------------------------------------------------------------

//-------------------liste par classe choisie--------------------
//Préparation de la requête de sélection
$requete = "SELECT site_classe.nom as nom_classe, site_personnage.nom as nom_perso, site_race.nom as nom_race, site_race.img as img_race, site_classe.img as img_classe
  from site_classe, site_personnage, site_race
  WHERE site_classe.id_classe = site_personnage.id_classe
  AND site_race.id_race = site_personnage.id_race";

//Donner la requête à exécuter à tbs
$tbs -> MergeBlock('dynam',$connexion, $requete);

//affichage dynamique
$tbs -> Show();
}
?>
By: Skrol29
Date: 2012-03-08
Time: 18:03

Re: Problème de session_start en tbs

Bonjour Sebrilia,

> ça fonctionne sauf pour la page qui liste les membres avec le tbs

Il faudrait plus d'élément pour t'aider.
Que ce passe-t-il ? Que vois tu dans la page et dans le source, et qu'est ce que tu devrais avoir à la place ?

Par ailleurs je vois un problème dans ton code PHP :
$tbs -> MergeBlock('dynam',$connexion, $requete);

Mais en fait $connexion n'est pas défini, il faudrait plutôt :
$tbs -> MergeBlock('dynam', $dbh, $requete);

Tu peux aussi simplifier :
$sth = $dbh->prepare("SELECT nom FROM site_classe");
$sth->execute();
$resultats = $sth->fetchAll();
//fusion de la liste des classes
$tbs->MergeBlock('dynam2', $resultats);
en :
$tbs->MergeBlock('dynam2', $dbh, "SELECT nom FROM site_classe");
By: Sebrilia
Date: 2012-03-09
Time: 09:01

Re: Problème de session_start en tbs

Je te remercie de m'avoir répondu.
Je me suis débrouillée autrement en lisant le manuel tbs de fond en comble :)
j'ai utilisé des [onload;script=nom_du_fichier_a_inclure;subtpl] pour y arriver, ma session fonctionne a présent :D