IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[FluxBB] Fatal error PUNBB


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut [FluxBB] Fatal error PUNBB
    Bonjour,

    Je créer actuellement un site internet baser sur punbb, auquel je rajoute un menu, un skin et quelques autres trucs afin de créer un site fonctionnelle avec la sécurité punbb.

    Mais j'ai voulu rajouter un accès à une autre database et depuis, j'ai de temps en temps ce message d'erreur :

    Fatal error: Call to a member function query() on a non-object in /home/www/sargeras.fr/menu.php on line 67

    Par exemple lorsque l'utilisateur se trompe de mot de passe depuis la zone de connexion.
    Je fais tourner le site sur un serveur dedié sous debian lenny et je ne trouve pas du tout d'ou peut venir le problème, quelqu'un peut-il m'aider ? merci bien

  2. #2
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    En fait l'erreur signifie que la fonction query() est appelé hors objet.
    Un petit exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    class Test
    {
      function Query()
       {
           echo "Hello world";
        }
    }
     
    Query();
    ?>
    Ce bout de code retournera le même message d'erreur que le tien.

    Alors que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    class Test
    {
      function Query()
       {
           echo "Hello world";
        }
    }
    $oObjet = new Test();
    $oObjet -> Query();
    ?>
    Le résultat affichera hello world.

    Cela signifie que ton objet n'est pas initialisé.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Tout d'abord merci de ta réponse, mais sa ne marche toujours pas,

    le truc vraiment bizarre, c'est que sa bug seulement sur certaine page (en général les pages ou il y a une erreur (du genre tromper de mdp, erreur dans lupload davatar ou ajout de sujet...).

    je ne comprends vraiment pas pourquoi sa ne fonctionne pas sur ces pages qui ne sont pourtant pas si différentes.

    J'ai réussi à contourner un peu le bug (éviter la fatal error) avec ceci :
    if(is_object($db_characters)){

    Mais j'ai toujours cette erreur qui persiste sur certaines pages (les memes que précédemment)
    Notice: Undefined variable: db_characters in /home/www/sargeras.fr/menu.php on line 70

  4. #4
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par baddark Voir le message
    (...)
    Notice: Undefined variable: db_characters in /home/www/sargeras.fr/menu.php on line 70
    Ca, c'est une autre erreur qui n'a rien à voir avec la première.

    Là, PHP te dis juste qu'il ne trouve pas la variable db_caracters.

    Un bout de code peut-être ?
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    La variable $db_characters est defini comme ceci

    $db_characters = new DBLayer($db_host, $db_username, $db_password, 'characters', $db_prefix, $p_connect);

    avec cette fonction la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    class DBLayer
    {
    	var $prefix;
    	var $link_id;
    	var $query_result;
     
    	var $saved_queries = array();
    	var $num_queries = 0;
     
     
    	function DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, $foo)
    	{
    		$this->prefix = $db_prefix;
     
    		// Was a custom port supplied with $db_host?
    		if (strpos($db_host, ':') !== false)
    			list($db_host, $db_port) = explode(':', $db_host);
     
    		if (isset($db_port))
    			$this->link_id = @mysqli_connect($db_host, $db_username, $db_password, $db_name, $db_port);
    		else
    			$this->link_id = @mysqli_connect($db_host, $db_username, $db_password, $db_name);
     
    		if (!$this->link_id)
    			error('Unable to connect to MySQL and select database. MySQL reported: '.mysqli_connect_error(), __FILE__, __LINE__);
    	}
     
     
    	function start_transaction()
    	{
    		return;
    	}
     
     
    	function end_transaction()
    	{
    		return;
    	}
     
     
    	function query($sql, $unbuffered = false)
    	{
    		if (defined('PUN_SHOW_QUERIES'))
    			$q_start = get_microtime();
     
    		$this->query_result = @mysqli_query($this->link_id, $sql);
     
    		if ($this->query_result)
    		{
    			if (defined('PUN_SHOW_QUERIES'))
    				$this->saved_queries[] = array($sql, sprintf('%.5f', get_microtime() - $q_start), debug_backtrace());
     
    			++$this->num_queries;
     
    			return $this->query_result;
    		}
    		else
    		{
    			if (defined('PUN_SHOW_QUERIES'))
    				$this->saved_queries[] = array($sql, 0, debug_backtrace());
     
    			return false;
    		}
    	}
     
     
    	function result($query_id = 0, $row = 0)
    	{
    		if ($query_id)
    		{
    			if ($row)
    				@mysqli_data_seek($query_id, $row);
     
    			$cur_row = @mysqli_fetch_row($query_id);
    			return $cur_row[0];
    		}
    		else
    			return false;
    	}
     
     
    	function fetch_assoc($query_id = 0)
    	{
    		return ($query_id) ? @mysqli_fetch_assoc($query_id) : false;
    	}
     
     
    	function fetch_row($query_id = 0)
    	{
    		return ($query_id) ? @mysqli_fetch_row($query_id) : false;
    	}
     
     
    	function num_rows($query_id = 0)
    	{
    		return ($query_id) ? @mysqli_num_rows($query_id) : false;
    	}
     
     
    	function affected_rows()
    	{
    		return ($this->link_id) ? @mysqli_affected_rows($this->link_id) : false;
    	}
     
     
    	function insert_id()
    	{
    		return ($this->link_id) ? @mysqli_insert_id($this->link_id) : false;
    	}
     
     
    	function get_num_queries()
    	{
    		return $this->num_queries;
    	}
     
     
    	function get_saved_queries()
    	{
    		return $this->saved_queries;
    	}
     
     
    	function free_result($query_id = false)
    	{
    		return ($query_id) ? @mysqli_free_result($query_id) : false;
    	}
     
     
    	function escape($str)
    	{
    		return is_array($str) ? '' : mysqli_real_escape_string($this->link_id, $str);
    	}
     
     
    	function error()
    	{
    		$result['error_sql'] = @current(@end($this->saved_queries));
    		$result['error_no'] = @mysqli_errno($this->link_id);
    		$result['error_msg'] = @mysqli_error($this->link_id);
     
    		return $result;
    	}
     
     
    	function close()
    	{
    		if ($this->link_id)
    		{
    			if ($this->query_result)
    				@mysqli_free_result($this->query_result);
     
    			return @mysqli_close($this->link_id);
    		}
    		else
    			return false;
    	}
    }
    C'est pourtant bizarre :s, la fonction est bien déclaré et appeler puisqu'elle fonctionne sur la plupart des pages,

    Surtout que c'est exactement la même que celle utiliser de base par punbb pour ses accès db :
    $db = new DBLayer($db_host, $db_username, $db_password, $db_name, $db_prefix, $p_connect);

    J'ai juste changer la database.

  6. #6
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Là, j'avoue que je sèche. Désolé il est tard et je n'ai plus les idées très claires.

    J'y jetterai un œil demain. Bonne soirée.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    okay merci a toi

    PS: styler ton tux^^

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    personne pour m'aider ?

  9. #9
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    As tu regardé là ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Notice: Undefined variable: db_characters in /home/www/sargeras.fr/menu.php on line 70
    Qu'est ce que ça donne ?
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Sa :s
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    if(is_object($db_characters)){
    	$horde=0;
    	$alliance=0;
    	$result = $db_characters->query('SELECT race, COUNT(*) AS count FROM characters GROUP BY race');
    	if($db_characters->num_rows($result)){
    		while($ligne = $db_characters->fetch_assoc($result)){
    			switch($ligne['race']){
    				case '1':
    				case '3':
    				case '4':
    				case '7':
    				case '11':
    					$alliance+=intval($ligne['count']);
    				break;
     
    				case '2':
    				case '5':
    				case '6':
    				case '8':
    				case '10':
    					$horde+=intval($ligne['count']);
    				break;
    			}
    		}
    	}
    	$display_characters = true;
    }else{
    	$display_characters = false;
    }

  11. #11
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Il n'y a que ça dans ton fichier ?

    Il est inclus dans un autre ?
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Le fichier menu.php est inclus dans absolument toutes les autres pages,

    au pire des cas, vois par toi meme :s http://sargeras.fr

  13. #13
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Effectivement, j'ai eu rapidement un message d'erreur lors de l'inscripition mais après plus rien.

    Je te demande de supprimer mon compte.
    Pseudo : FredBty.

    Je ne sais quoi te dire sur ce coup.
    "Dites moi ce dont vous avez besoin, je vous apprendrai à vous en passer".
    Et de grâce, je ne possède pas le plugin boule de cristal de firefox, alors soyez clair dans vos questions.

    Je lutte contre le language SMS.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    :/ comme tu as pu le remarquer, c'est vraiment la merde sur ce coup la >__< ton inscription au niveau du site est bien faites, mais par contre au niveau du serveur... Sa a planter (cette erreur ne concerne que l'inscription au serveur :s)

    Et bien si tu as d'autres indications a me donner afin de résoudre ce problème, je suis la.

Discussions similaires

  1. erreurs fatal error C1010 dans visual c++ 6.0
    Par screeminelle dans le forum MFC
    Réponses: 2
    Dernier message: 12/10/2005, 13h30
  2. Fatal error: Allowed memory size of...
    Par Webfab dans le forum Langage
    Réponses: 3
    Dernier message: 17/09/2005, 10h11
  3. Réponses: 17
    Dernier message: 28/07/2005, 08h20
  4. Fatal Error : OpenGL GLX extension not support
    Par kacedda dans le forum GLUT
    Réponses: 5
    Dernier message: 06/06/2005, 10h28
  5. class php5 - Fatal error: main() [function.main]
    Par tom261285 dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2005, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo