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

PHP & Base de données Discussion :

Mysql Objet inexistant ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut Mysql Objet inexistant ?
    Bonjour,
    j'essaie d'avoir un bandeau et un style différent selon la connexion de l'utilisateur, seulement j'ai un message d'erreur :
    Fatal error: Call to a member function isMobile() on a non-object in configuration.php on line 7...
    Merci d'avance.

    index.php :
    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
    <?php session_start();
    $nompage = "index.php";
    require("configuration.php");
    $sql = detection_mobile();
    $sql = bandeau_detection();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title><?php echo $nom_site ?></title>
    <link rel="stylesheet" type="text/css" href="<?php echo $nom_style ?>" />
    </head>
    <body>
    <?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
    <div id="mainContent">
    <?php require("recherche_pour_news.php"); ?> <!-- insère la recherche des news de la semaine -->
    </div>
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
    </body>
    </html>
    configuration.php :
    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
    <?php
    ....
     
    // pour detecter les smartphones et utiliser le bon style CSS...
    include("Mobile_Detect.php");
    $detect = new Mobile_Detect();
    function detection_mobile()
    {
    	if ($detect->isMobile())
    	{
    		echo '<br/>';
    		echo 'vous etes sur le site mobile : ';
    		echo '<br/>';
    		echo $_SERVER['HTTP_USER_AGENT']; 
    		echo '<br/>';
    		$nom_style = "style_mobile.css";
    		echo 'nom style :'.$nom_style;
    		echo '<br/>';
    		$bandeau_non_connecte = "bandeau_mobile.php";
    		$bandeau_connecte = "bandeau_membres_mobile.php";
    	}
    	else
    	{
    		echo '<br/>';
    		echo 'vous etes sur le site classique : ';
    		echo '<br/>';
    		echo $_SERVER['HTTP_USER_AGENT'];
    		echo '<br/>';
    		$nom_style = "style.css"; 
    		echo 'nom style :'.$nom_style; 
    		echo '<br/>';
    		$bandeau_non_connecte = "bandeau.php";
    		$bandeau_connecte = "bandeau_membres.php";
    	}
    }
     
    function bandeau_detection() 	// si l'utilisateur est connecté, c'est le bandeau membre sinon c'est le bandeau classique...
    	{
    		if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')	// bandeau classique si pas connecté
    		{ $bandeau = $bandeau_non_connecte;	}
    		else 	// bandeau membre si connecté
    		{ $bandeau = $bandeau_connecte;	} 
    	}
     
     
    function connect_sql() 		//Connection à MySQL
    {
    	global $sql_serveur, $sql_login, $sql_pass, $sql_bdd;
    	//connexion au serveur
    	$linkid = @mysql_connect($sql_serveur,$sql_login,$sql_pass) or die ("Erreur lors de la connection au serveur MySQL !");
    	//selection de la BDD
    	@mysql_select_db($sql_bdd,$linkid) or die("Impossible de selectionner la base de données\n<br>\nVoici l'erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error());
    	return $linkid;
    }
    ?>
    Mobile_Detect.php :
    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
    <?php
    /**
     * Mobile Detect
     *
     * @license    http://www.opensource.org/licenses/mit-license.php The MIT License
     * @version    SVN: $Id: Mobile_Detect.php 4 2011-05-26 08:04:20Z vic.stanciu@gmail.com $
     */
    class Mobile_Detect 
    {	protected $accept;
        protected $userAgent;
        protected $isMobile     = false;
        protected $isAndroid    = null;
        protected $isBlackberry = null;
        protected $isOpera      = null;
        protected $isPalm       = null;
        protected $isWindows    = null;
        protected $isGeneric    = null;
        protected $devices = array
    	(
            "android"       => "android",
    			/* "firefox"       => "firefox",  */  ///* pour TEST SUR PC */// 
            "blackberry"    => "blackberry",
            "iphone"        => "(iphone|ipod)",
            "opera"         => "opera mini",
            "palm"          => "(avantgo|blazer|elaine|hiptop|palm|plucker|xiino)",
            "windows"       => "windows ce; (iemobile|ppc|smartphone)",
            "generic"       => "(kindle|mobile|mmp|midp|o2|pda|pocket|psp|symbian|smartphone|treo|up.browser|up.link|vodafone|wap)"
        );
     
    	public function __construct() 
    	{
    		$this->userAgent = $_SERVER['HTTP_USER_AGENT'];
            $this->accept    = $_SERVER['HTTP_ACCEPT'];
            if (isset($_SERVER['HTTP_X_WAP_PROFILE'])|| isset($_SERVER['HTTP_PROFILE'])) 
    			{
    				$this->isMobile = true;
    			} 
    		elseif (strpos($this->accept,'text/vnd.wap.wml') > 0 || strpos($this->accept,'application/vnd.wap.xhtml+xml') > 0) 
    			{
    				$this->isMobile = true;
    			}
    			else 
    			{
    				foreach ($this->devices as $device => $regexp) 
    				{
    					if ($this->isDevice($device)) 
    					{
    						$this->isMobile = true;
    					}
    				}
    			}
    	}
     
    	/**
    	* Overloads isAndroid() | isBlackberry() | isOpera() | isPalm() | isWindows() | isGeneric() through isDevice()
         *
         * @param string $name
         * @param array $arguments
         * @return bool
         */
        public function __call($name, $arguments) 
    	{
            $device = substr($name, 2);
            if ($name == "is" . ucfirst($device)) 
    		{
                return $this->isDevice($device);
            }
    		else
    		{
                trigger_error("Method $name not defined", E_USER_ERROR);
            }
        }
     
    	/**
    	* Returns true if any type of mobile device detected, including special ones
         * @return bool
         */
        public function isMobile() 
    	{
            return $this->isMobile;
        }
     
        protected function isDevice($device) 
    	{
            $var    = "is" . ucfirst($device);
            $return = $this->$var === null ? (bool) preg_match("/" . $this->devices[$device] . "/i", $this->userAgent) : $this->$var;
    		if ($device != 'generic' && $return == true) 
    			{
    				$this->isGeneric = false;
    			}
            return $return;
        }
    }
    ?>

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'es dans une fonction le scope est différent, rajoute un global

  3. #3
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut
    Désolé mais je ne comprends pas :
    scope ? rajoute un global ?

    Comment, où ?
    merci.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    http://php.net/manual/fr/language.variables.scope.php

    c'est l'une des bases de PHP, que je te conseil d'apprendre avant de te lancer dans un projet ...

  5. #5
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut
    Merci stealth35 !

    Effectivement, je n'avais pas déclaré les variables...

    Code corrigé qui fonctionne bien :

    index.php :
    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
    <?php session_start();
    $nompage = "index.php";
    require("configuration.php");
    $sql = detection_mobile();
    $sql = bandeau_detection();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title><?php echo $nom_site ?></title>
    <link rel="stylesheet" type="text/css" href="<?php echo $nom_style ?>" />
    </head>
    <body>
    <?php include($bandeau); ?> <!-- insère le bandeau principal en haut en fonction de la connexion -->
    <div id="mainContent">
    <?php require("recherche_pour_news.php"); ?> <!-- insère la recherche des news de la semaine -->
    </div>
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
    </body>
    </html>
    configuration.php :
    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
    <?php
    ....
    // pour detecter les smartphones et utiliser le bon style CSS...
    include("Mobile_Detect.php");
    function detection_mobile()
    {
    	global $bandeau_non_connecte, $bandeau_connecte, $nom_style;
    	$detect = new Mobile_Detect();
    	if ($detect->isMobile())
    	{
    		echo '<br/>';
    		echo 'vous etes sur le site mobile : ';
    		echo '<br/>';
    		echo $_SERVER['HTTP_USER_AGENT']; 
    		echo '<br/>';
    		$nom_style = "style_mobile.css";
    		echo 'nom style :'.$nom_style;
    		echo '<br/>';
    		return
    		$bandeau_non_connecte = "bandeau_mobile.php";
    		$bandeau_connecte = "bandeau_membres_mobile.php";
    		return $bandeau_non_connecte;
    		return $bandeau_connecte;
    		echo '<br/>';
    		echo '$bandeau_non_connecte : '.$bandeau_non_connecte;
    		echo '<br/>';
    		echo '$bandeau_connecte : '.$bandeau_connecte;
    	}
    	else
    	{
    		echo '<br/>';
    		echo 'vous etes sur le site classique : ';
    		echo '<br/>';
    		echo $_SERVER['HTTP_USER_AGENT'];
    		echo '<br/>';
    		$nom_style = "style.css"; 
    		echo 'nom style :'.$nom_style; 
    		echo '<br/>';
    		$bandeau_non_connecte = "bandeau.php";
    		$bandeau_connecte = "bandeau_membres.php";
    		return $bandeau_non_connecte;
    		return $bandeau_connecte;
    		echo '<br/>';
    		echo '$bandeau_non_connecte : '.$bandeau_non_connecte;
    		echo '<br/>';
    		echo '$bandeau_connecte : '.$bandeau_connecte;
    	}
    }	
     
    function bandeau_detection() 	// si l'utilisateur est connecté, c'est le bandeau membre sinon c'est le bandeau classique...
    	{
    		global $bandeau, $bandeau_non_connecte, $bandeau_connecte;
    		if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')	// bandeau classique si pas connecté
    		{ $bandeau = $bandeau_non_connecte;
    			return $bandeau; }
    		else 	// bandeau membre si connecté
    		{ $bandeau = $bandeau_connecte;	
    			return $bandeau; } 
    	}
     
     
    function connect_sql() 		//Connection à MySQL
    {
    	global $sql_serveur, $sql_login, $sql_pass, $sql_bdd;
    	//connexion au serveur
    	$linkid = @mysql_connect($sql_serveur,$sql_login,$sql_pass) or die ("Erreur lors de la connection au serveur MySQL !");
    	//selection de la BDD
    	@mysql_select_db($sql_bdd,$linkid) or die("Impossible de selectionner la base de données\n<br>\nVoici l'erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error());
    	return $linkid;
    }
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Spirit] Un objet inexistant ?
    Par Invité2 dans le forum Boost
    Réponses: 17
    Dernier message: 17/10/2008, 12h33
  2. Fichier mysql.h inexistant
    Par Irene - 1 dans le forum Installation
    Réponses: 0
    Dernier message: 28/04/2008, 12h22
  3. ORA-04043: objet inexistant
    Par sondo dans le forum Débuter
    Réponses: 5
    Dernier message: 13/02/2008, 17h11
  4. [SQL LOADER] sqlldr renvoit "objet inexistant"
    Par poubourna dans le forum Oracle
    Réponses: 3
    Dernier message: 23/07/2007, 11h52
  5. ORA-08103: objet inexistant
    Par Débéa dans le forum Oracle
    Réponses: 3
    Dernier message: 13/01/2006, 17h22

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