Categories > TinyButStrong general (FR) >

Varibale php et class

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: wayak
Date: 2007-04-24
Time: 11:52

Varibale php et class

Bonjour a tous,

voila le code de ma class Users
class Users
  {
      var $idUser = 0;
    var $idtype = null;
    var $typeUser;
    var $userName;
    var $userFirstName;
function FuncGetUserInfo()
  {
    $sessionName = session_name();
    $sessionID = session_id();
    $TBSMnuProfile = new clsTinyButStrong ;
    $TBSMnuProfile->LoadTemplate('Templates/Users.html') ;
    $TBSMnuProfile->Show(TBS_NOTHING);
    return $TBSMnuProfile->Source;
  }
}

code d'une fonction qui utilise cette clase

$p = new Users();
echo $p->FuncGetUserInfo();

code de la page html (templates)

<input type = 'hidden' id = 'SID'  value = '[var.sessionName]=[var.sessionID]' />
<table>
  <tr>
    <td></td>
    <td>
      <b>Welcome</b></td>
  </tr>
  <tr>
    <td>
      [var.p.userName] [var.p.userFirstName]</td>
  </tr>
  <tr>
    <td>
      [var.p.typeUser]</td>
  </tr>
  <tr>
    <TD>
      <A HREF='logout.php' >Deconnection</A></TD>
  </tr>
</table>

maintenant erreur obtenue :
TinyButStrong Error in field [var.sessionName...] : the PHP global variable named 'sessionName' does not exist or is not set yet. This message can be cancelled using parameter 'noerr'.

TinyButStrong Error in field [var.sessionID...] : the PHP global variable named 'sessionID' does not exist or is not set yet. This message can be cancelled using parameter 'noerr'.

TinyButStrong Error in field [var.p.userName...] : the PHP global variable named 'p' does not exist or is not set yet. This message can be cancelled using parameter 'noerr'.

TinyButStrong Error in field [var.p.userFirstName...] : the PHP global variable named 'p' does not exist or is not set yet. This message can be cancelled using parameter 'noerr'.

TinyButStrong Error in field [var.p.typeUser...] : the PHP global variable named 'p' does not exist or is not set yet. This message can be cancelled using parameter 'noerr'.

Où est mon erreur je ne vois pas mon problem.
pouvez vous m'aider?
By: wayak
Date: 2007-04-24
Time: 13:16

Re: Varibale php et class

J'ai trouvé mon erreur

Par exemple [var.x] sera remplacé par la valeur de $x. Les variables utilisateurs ainsi que variables prédéfinies ne peuvent être fusionnées que si elles sont globales.

Ce qui veut dire que je ne peut plus utilisé mon system de class.
Dans ma class users , mes variables sont en global. Mais elles ne sont pas global pour l'ensemble du projet c'est pour ça que sa plante.

Peut-on proceder autrements, qu'en mettant les variables à l'extérieur de la class ?
By: wayak
Date: 2007-04-24
Time: 13:23

Re: Varibale php et class

je veins de regarder les exemples et je trouve ce code:

<?php

include_once('tbs_class.php');

$montant = 3.55;
$tache['lundi'] = '<ménage>';

class clsObj {
    var $param = 'bonjour';
}
$obj = new clsObj;

$TBS = new clsTinyButStrong;
$TBS->LoadTemplate('tbs_fr_exemples_var.htm');
$TBS->Show();

?>

Hors mon code est sesiblement le même. La différence vient du fait que le code appelant est également dans un classe.
Est-ce là le problème ?

By: Skrol29
Date: 2007-04-24
Time: 14:51

Re: Varibale php et class

Oui, quand ton code est appelé par une fonction ou un méthoe de classe, ses variables y sont locales et non pas globale.
Tu as deux solution pour TBS : soit tu utilises l'instruction "global" pour déclarer tes variables en globales dans ta fonction, ou bien tu utilises la proriété ->ObjectRef de TBS pour faire appel aux propriétés/méthodes de ton objet. Les valeurs à fusionner pouvant par exemple être stockées dans une seule variable tableau.
By: wayak
Date: 2007-04-24
Time: 15:24

Re: Varibale php et class

Ok thanks it's very good. :)