probleme avec t-string et autres

zulgal
Invité n'ayant pas de compte PHPfrance

09 nov. 2008, 08:38

voilà jai un soucis de variable (je croit) et je nai pas reussis a trouver le problemes un de vous serait gentil de m'aider :) :

voici le fichier dont il est question :

Code : Tout sélectionner

<?php /* * 2007 (c) -={MikeP}=- * Database abstraction layer */ require_once('include/settings.php'); class dbLayer { private $dbConn; private $result; private static $wdb; private static $cdb; private static $sdb; // constructor is private so that you can't use it without parameters private static function connect($login, $password, $host, $db){ // connect to database here and select the database of interest $dbr = @mysql_connect($host,$login,$password,true); if(!$dbr) throw new Exception('Unable to connect to database server'); // select the database if( ! (@mysql_select_db($db,$dbr)) ) throw new Exception('Database is not available.'); return $dbr; } private function __construct(&$dbconn){ $this->dbConn = $dbconn; } // get character database connection public static function getCharDB(){ if(!isset(self::$cdb)){ $s = gSettings::get(); self::$cdb = dbLayer::connect($s->db_user, $s->db_password, $s->db_host, $s->db_cname); } return new dbLayer(self::$cdb); } // get world database connection public static function getWorldDB(){ if(!isset(self::$wdb)){ $s = gSettings::get(); self::$wdb = dbLayer::connect($s->db_user, $s->db_password, $s->db_host, $s->db_wname); } return new dbLayer(self::$wdb); } // get site database connection public static function getSiteDB(){ if(!isset(self::$sdb)){ $s = gSettings::get(); self::$sdb = dbLayer::connect($s->db_user, $s->db_password, $s->db_host, $s->db_sname); } return new dbLayer(self::$sdb); } // executes the query - returns true on success or throws an exception public function Execute($query){ // check if we have results from previous query if( is_resource($this->result) ) @mysql_free_result($this->result); // now execute the query $this->result = @mysql_query($query,$this->dbConn); if( !$this->result ) throw new Exception('Execute query failed: '.mysql_error($this->dbConn)); return true; } // fetches one result from the previous Execute call and returns an object. // returns FALSE on end of rows for SELECT or if result of Execute was not resource public function Fetch(){ if( is_resource($this->result) ){ return @mysql_fetch_object($this->result); }else{ return false; } } } ?>


et voici le fichier settings.php si ca peut-etre utile :

Code : Tout sélectionner

<?php /* * 2007 (c) -={ MikeP }=- * Settings class for setting up everything on the site. * The class is a singleton so that we always have one and only instance of settings. */ class gSettings { // the only instance of the class private static $instance; private function __construct(){ // // here we define all the settings // $this->db_user = 'xxxxxxxxxx'; // database user $this->db_password = 'xxxxxxxxx'; // database password $this->db_host = 'xxxxx.xxxxxx.com'; // database host:port $this->db_cname = 'xxxxxxx'; // character database $this->db_wname = 'xxxxxxx'; // world database $this->db_sname = ''; //Will be used latertime $this->statfile = 'xxxxxxx';//Will be used latertime $this->realm = 'xxxxxxx'; } private function __clone(){ trigger_error('Clone is not allowed.', E_USER_ERROR); } // this is the only way to get properties: // $props = gSettings::get(); public static function get(){ if(!isset(self::$instance)){ $c = __CLASS__; self::$instance = new $c; } return self::$instance; } } ?>

Zulgal
Invité n'ayant pas de compte PHPfrance

09 nov. 2008, 08:45

jai oublier de mentionner le message d'erreur donc le voici :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/41/d148047644/htdocs/test/include/dbLayer.php on line 10

ViPHP
ViPHP | 3607 Messages

09 nov. 2008, 10:37

et quelle est la ligne 10 en question?

Zulgal
Invité n'ayant pas de compte PHPfrance

09 nov. 2008, 17:20

voilà jai un soucis de variable (je croit) et je nai pas reussis a trouver le problemes un de vous serait gentil de m'aider :) :

voici le fichier dont il est question :

Code : Tout sélectionner

1-<?php 2- /* 3- * 2007 (c) -={MikeP}=- 4- * Database abstraction layer 5- */ 6- 7- require_once('include/settings.php'); 8- 9- class dbLayer { [color=red]10-[/color] [color=red]private $dbConn;[/color] private $result; private static $wdb; private static $cdb; private static $sdb; // constructor is private so that you can't use it without parameters private static function connect($login, $password, $host, $db){ // connect to database here and select the database of interest $dbr = @mysql_connect($host,$login,$password,true); if(!$dbr) throw new Exception('Unable to connect to database server'); // select the database if( ! (@mysql_select_db($db,$dbr)) ) throw new Exception('Database is not available.'); return $dbr; } private function __construct(&$dbconn){ $this->dbConn = $dbconn; } // get character database connection public static function getCharDB(){ if(!isset(self::$cdb)){ $s = gSettings::get(); self::$cdb = dbLayer::connect($s->db_user, $s->db_password, $s->db_host, $s->db_cname); } return new dbLayer(self::$cdb); } // get world database connection public static function getWorldDB(){ if(!isset(self::$wdb)){ $s = gSettings::get(); self::$wdb = dbLayer::connect($s->db_user, $s->db_password, $s->db_host, $s->db_wname); } return new dbLayer(self::$wdb); } // get site database connection public static function getSiteDB(){ if(!isset(self::$sdb)){ $s = gSettings::get(); self::$sdb = dbLayer::connect($s->db_user, $s->db_password, $s->db_host, $s->db_sname); } return new dbLayer(self::$sdb); } // executes the query - returns true on success or throws an exception public function Execute($query){ // check if we have results from previous query if( is_resource($this->result) ) @mysql_free_result($this->result); // now execute the query $this->result = @mysql_query($query,$this->dbConn); if( !$this->result ) throw new Exception('Execute query failed: '.mysql_error($this->dbConn)); return true; } // fetches one result from the previous Execute call and returns an object. // returns FALSE on end of rows for SELECT or if result of Execute was not resource public function Fetch(){ if( is_resource($this->result) ){ return @mysql_fetch_object($this->result); }else{ return false; } } } ?>


et voici le fichier settings.php si ca peut-etre utile :

Code : Tout sélectionner

<?php /* * 2007 (c) -={ MikeP }=- * Settings class for setting up everything on the site. * The class is a singleton so that we always have one and only instance of settings. */ class gSettings { // the only instance of the class private static $instance; private function __construct(){ // // here we define all the settings // $this->db_user = 'xxxxxxxxxx'; // database user $this->db_password = 'xxxxxxxxx'; // database password $this->db_host = 'xxxxx.xxxxxx.com'; // database host:port $this->db_cname = 'xxxxxxx'; // character database $this->db_wname = 'xxxxxxx'; // world database $this->db_sname = ''; //Will be used latertime $this->statfile = 'xxxxxxx';//Will be used latertime $this->realm = 'xxxxxxx'; } private function __clone(){ trigger_error('Clone is not allowed.', E_USER_ERROR); } // this is the only way to get properties: // $props = gSettings::get(); public static function get(){ if(!isset(self::$instance)){ $c = __CLASS__; self::$instance = new $c; } return self::$instance; } } ?>

zulgal
Invité n'ayant pas de compte PHPfrance

09 nov. 2008, 17:21

ligne 10 :

private $dbConn;

ViPHP
ViPHP | 4674 Messages

09 nov. 2008, 20:51

Hey :),

Est-ce que tu exécutes ton script sous PHP 5 ? Car ça ressemble à une erreur du genre : « je tente de faire exécuter un script PHP 5 sous PHP 4 » un peu.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

zulgal
Invité n'ayant pas de compte PHPfrance

16 nov. 2008, 20:03

oui sous php5

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 nov. 2008, 21:10

oui sous php5
Tu en es sûr ?

Parce que, dans l'état, ton code fonctionne sous PHP 5.2 chez moi.

Essaye de mettre cette ligne au début de ta classe et vérifie la version de PHP utilisé :
echo 'phpversion:'. phpversion();
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Zulgal
Invité n'ayant pas de compte PHPfrance

19 nov. 2008, 19:41

que veux-tu dire par : "au debut de ta classe" ?

Invité
Invité n'ayant pas de compte PHPfrance

19 nov. 2008, 19:54

ok jai trouver je suis en 4.4.9 comment puis-je upgrader ca en php 5 (je suis avec 1and1 si cela peut etre utile) car jaimerait bien que cela fonctionne :)

ViPHP
ViPHP | 4674 Messages

19 nov. 2008, 21:14

Pour ça, il faut voir avec ton hébergeur :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).