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

Langage PHP Discussion :

[POO] Site ne marche qu'en local


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [POO] Site ne marche qu'en local
    Bonjour,
    J'ai un site fait en php qui marche sans souci en local. Alors je l'ai mis sur un serveur FTP et là... PATATRA !!! une erreur que je ne comprends pas s'affiche.

    Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in d:\www\www958\new\librairies\fichiers\bd.class.php on line 12
    Pouvez-vous m'expliquer ce qu'elle signifie ? merci
    Dernière modification par julp ; 26/02/2007 à 17h17.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Moi comme ça je vois ps mais peut etre qu avec un peu de code ....

  3. #3
    Invité
    Invité(e)
    Par défaut
    Mais justement, je ne vois pas pourquoi le site fonctionnerait en local et pas en ligne... Mais voilà le fichier si ça peut aider.

    Bonne chance.......

    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
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    <?php
    	// Inclusion de la bibliothèque ADOdb
    	//include dirname(__FILE__).'/util.inc.php';
     
    	// Variable de gestion des langues pour les erreurs ADOdb
    	$ADODB_LANG = fr;
     
    	// Classe de gestion de la base de données
    	class BD{
     
    		// Attributs de la classe BD
    		private $connexion; // Variable qui contient l'objet de connexion
    		private $message_erreur; // Variable contenant les messages d'erreurs
    		private $nb_erreurs; // Variable pour compter le nombre d'erreurs
    		private $debug = false; // Variable qui permet d'enclencher le mode debug
    		// Laisser la valeur true à la variable $debug pour effectuer des tests
     
     
    		//Constructeur
    		function __construct($bdtype, $login, $passe, $base, $serveur){
    			$this->nb_erreurs = 0; // Initialisation du nombre d'erreurs à 0
    			$this->connexion = ADONewConnection($bdtype); // Création de l'objet de connexion
    			$this->connexion -> debug = $this->debug; // Permet d'activer le mode debug
    			@$this->connexion -> Connect($serveur, $login, $passe, $base); // Connexion à la base de données
     
    			if (!$this->connexion -> IsConnected()){ // Gestion des erreurs de connexion
    				// Introduit le type d'erreur dans le message d'erreur de la classe
    				$this->message("<b>[BD.class.BD ( ".$login.", ".$base.", ".$serveur." )]</b> Accès à la bd $base impossible\n");
    				// Introduit le message d'erreur du SGBD dans le message d'erreur de la classe
    				$this->message("<B>Le SGBD proteste : </B>" .$this->connexion->ErrorMsg());
    			}
    		}
     
     
    		// METHODES ET FONCTIONS
     
    		// Génération des messages d'erreurs
    		private function message($message){
    			// Ajoute le message en paramètre à celui existant
    			$this->message_erreur.= $message."<BR/>";
    			// Incrément le nombre d'erreur de 1
    			$this->nb_erreurs = $this->nb_erreurs + 1;
    		}
     
    		// Retourne le message d'erreur
    		public function getMsgErr(){
    			return $this->message_erreur;
    		}
     
    		public function getMsgErrADOdb($no){
    	    	return $this->connexion->MetaErrorMsg($no)."<br>";
    	    }
     
    		// Retourne le nombre d'erreurs
    		public function getNbreErreur(){
    			return $this->nb_erreurs;
    		}
     
    		// Retourne le numéro d'erreur
    		public function getNumErrSGBD(){
    			// ErrorNo donne le numéro d'erreur du SGBD
    			return $this->connexion -> ErrorNo();
    		}
     
    		// Retourne le numéro d'erreur ADObd
    		public function getNumErrADOdb(){
    			// MetaError donne le numéro d'erreur de ADOdb
    			return $this->connexion -> MetaError();
    		}
     
    		// Méthode indiquant si une erreur a été rencontrée
    	    public function verifErreur(){
    			if($this->nb_erreurs > 0) // Retourne la valeur true si il y a des erreurs
    				$reponse = true;
    			if($this->nb_erreurs < 1) // Retourne la valeur false si il n'y a pas d'erreur
    				$reponse = false;
    			return  $reponse;
    		}
     
    		// Fonction qui permet d'executer une requête
    	    public function requete($requete){
    			$resultat = $this->connexion -> Execute($requete);
     
    			// Test si il y a une erreur
    			if (!$resultat)
    			{
    				// Identification de l'erreur
    				// Introduit le type d'erreur dans le message d'erreur de la classe
    				$this->message ("<B>[BD.class.requete] : </B> Probl&egrave;me dans l'ex&eacute;cution de la requ&ecirc;te : $requete ");
    				// Introduit le message d'erreur du SGBD dans le message d'erreur de la classe
    				$this->message ("<B>Le SGBD proteste : </B>" .$this->connexion->ErrorMsg());
    			}
    			return $resultat;
    	    }
     
    	    // Fonction qui permet de faire un select avec un limite de résultats
    	    public function select($requete, $limite, $aPartirDe=""){
    	    	if(!$aPartirDe)
    	    		$aPartirDe = -1;
    	    	$resultat = $this->connexion -> SelectLimit($requete, $limite, $aPartirDe);
    			// Test si il y a une erreur
    			if (!$resultat)
    			{
    				// Identification de l'erreur
    				// Introduit le type d'erreur dans le message d'erreur de la classe
    				$this->message ("<B>[BD.class.select] : </B> Probl&egrave;me dans l'ex&eacute;cution de la s&eacute;lection : $requete; limite : $limite");
    				// Introduit le message d'erreur du SGBD dans le message d'erreur de la classe
    				$this->message ("<B>Le SGBD proteste : </B>" .$this->connexion->ErrorMsg());
    			}
    			return $resultat;
    	    }
     
    	    // Fonction qui retourne le nombre de résultats(nombre de lignes)
    		public function nbreResultat($res){
    	    	// RecordCount retourne le nombre de lignes du résultat d'un requête
    			return @$res->RecordCount();
    		}
     
    		// Méthode indiquant le nombre d'attributs dans le résultat
    	    public function nbreAttributs($res){
    	    	if($this->verifErreur() == false)
    				return $res->FieldCount();
    	    	else return null;
    		}
     
    		// Méthode donnant les propriétés d'un attribut : nom, type et longeur max
    	    public function proprAttribut($res, $position){
    	      // Test sur la position
    	      if ($position < 0 or $position >= $this->nbreAttributs($res)){
    	        $this->message ("<b>[BD.class.proprAttribut(".$res.")]</b> Pas d'attribut en position $position");
    			return null;
    	      }
    	      else return $res->FetchField($position);
    	    }
     
    	    // Méthode donnant le nom d'un attribut
    	    public function nomAttribut($res, $position){
    	      // Test sur la position
    	      if ($position < 0 or $position >= $this->nbreAttributs($res)){
    	        $this->message ("<b>[BD.class.nomAttribut(".$res.")]</b> Pas d'attribut en position $position");
    			return null;
    	      }
    	      else return $res->FetchField($position)->name;
    	    }
     
    	    // Méthode donnant le type d'un attribut
    	    public function typeAttribut($res, $position){
    	      // Test sur la position
    	      if ($position < 0 or $position >= $this->nbreAttributs($res)){
    	        $this->message ("<b>[BD.class.typeAttribut(".$res.")]</b> Pas d'attribut en position $position");
    			return null;
    	      }
    	      else return $res->FetchField($position)->type;
    	    }
     
    	    // Méthode donnant la longueur maximum d'un attribut
    	    public function longMaxAttribut($res, $position){
    	      // Test sur la position
    	      if ($position < 0 or $position >= $this->nbreAttributs($res)){
    	        $this->message ("<b>[BD.class.longMaxAttribut(".$res.")]</b> Pas d'attribut en position $position");
    			return null;
    	      }
    	      else return $res->FetchField($position)->max_length;
    	    }
     
    	    // Accès à la ligne suivante, sous forme d'objet
    		public function objetSuivant($res){
    			return $res->FetchNextObj();
    		}
     
    		// Accès à la ligne suivante, sous forme de tableau associatif
    	    public function ligneSuivante ($res){
    			return $res->FetchRow();
    		}
     
    		// Accès à la ligne suivante, sous forme de tableau indicé
    	    function tableauSuivant ($res){
    			$ligne = $this->ligneSuivante($res);
    			$tableau = array();
    			for($i=0; $i<$this->nbreAttributs($res); $i++){
    				$tableau[$i]=$ligne[$this->nomAttribut($res, $i)];
    			}
    			return $tableau;
    		}
     
    		// Affiche le contenu du résultat
    		public function affiche_resultat($res_req){
    			// Tableau dans lequel s'affichera le contenu du résultat
    			echo"<table border=1 collspace=3>";
    				// Entete du tableau --> nom des collonnes du résultat
    				echo"<tr>";
    				echo"<tr>";
    					for($i=0; $i<$this->nbreAttributs($res_req); $i++){
    						echo "<th>".$this->nomAttribut($res_req,$i)."</th>";
    					}
    				echo"<tr>";
     
    				// Déplacement sur les lignes du résultat
    				for($i=0; $i<$this->nbreResultat($res_req); $i++)
    				{
    					$line = $this->tableauSuivant($res_req);
    					echo"<tr>";
    						// Déplacement sur les colonnes du résultat
    						foreach ($line as $colonne)
    							echo "<td>".$colonne."</td>";
    					echo "</tr>";
    				}  // Fin parcours des lignes
    			echo"</table>";
    		}
     
    		// Méthode donnant l'id de la dernière ligne insérée
    	    public function idDerniereLigne()
    	    {
    			return  $this->connexion->Insert_ID();
    		}
     
    		// Destructeur premet de déconnecter la base de donnée en détruisant l'objet
    		function __destruct(){
    			$this->connexion -> Close(); // Fermeture de la connexion en cours
    		}
    	}// Fin de la classe BD
     
    ?>

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Généralement ce message d'erreur apparait quand il manque un simple quote quelque part ou une fin d'accolades } voire meme un ; ....

    Mais si il marche en local je trouve bizare que ça ne fonctionne pas !

  5. #5
    Invité
    Invité(e)
    Par défaut
    C'est justement là que je ne comprends pas...
    Y'aurait-il d'autres causes possibles ? Comme un fichier mal uploadé, une mauvaise config pour la BD,...

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    et en decommentant cette ligne ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    //include dirname(__FILE__).'/util.inc.php';

  7. #7
    Invité
    Invité(e)
    Par défaut
    Non c'est toujours pareil et je me suis amusé à contrôler tous les crochets et points virgule.

    Est-ce que peut être l'hébergeur bloque quelque chose du site .... ?

  8. #8
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Non je pense pas par contre les versions de php peuvent etre differentes .....

  9. #9
    Invité
    Invité(e)
    Par défaut
    En local j'ai la version 5.1.6 et mon hébergeur en est à la version 4. Penses-tu qu'en passant à la versione 5 cela résoudra mon problème ?

  10. #10
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Possible , mais je ne sus pas assez calé sur les differences entre php4 et php5 pour l 'affirmer !

    Ce qui est sur c est que developper sur une version superieur de php (par rapport a la plateforme finale) peut provoquer de mauvaises surprises ... la preuve lol

  11. #11
    Invité
    Invité(e)
    Par défaut
    lol ! Oui tu as raison. Je vais voir avec mon hébergeur si je peux et comment passer à la version 5.
    Je mettrai mon post à jour quand j'en saurai plus.
    Merci

  12. #12
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    si je vous dis pas de bétises, php 4 ne gere pas la fonction publique et privé ni par exemple les constantes de classes.

    mais j aimerais quand meme que quelqu un me le confirme

    ++

  13. #13
    Invité
    Invité(e)
    Par défaut
    Si c'est le cas, cela expliquerait pourquoi j'ai cette erreur.
    Le mail est parti chez mon hébergeur. Je suis maintenant dans l'attente d'une réponse.

  14. #14
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Citation Envoyé par csbilouze
    si je vous dis pas de bétises, php 4 ne gere pas la fonction publique et privé ni par exemple les constantes de classes.

    mais j aimerais quand meme que quelqu un me le confirme

    ++
    C'est le cas exacetement
    en php 4 il ne tiens pas compte de ces visibilité
    php5 à innové au niveau de la POO voilà pk ton site marche en local et non sur le serveur

    je crois que si tu enleve la visibilité de tes fonction ca fonctionnera

  15. #15
    Invité
    Invité(e)
    Par défaut
    Voilà je suis passé en php5 sur mon hébergeur et là, la page s'affiche !!

    Mais maintenant un autre problème apparait... C'est mes sessions qui ne fonctionnent plus.... Encore un coup de mon hébergeur ? Nous le saurons au prochain épisode....

  16. #16
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    Citation Envoyé par babastutz
    Voilà je suis passé en php5 sur mon hébergeur et là, la page s'affiche !!

    Mais maintenant un autre problème apparait... C'est mes sessions qui ne fonctionnent plus.... Encore un coup de mon hébergeur ? Nous le saurons au prochain épisode....
    les register global sont a ON ou OFF ?

    ++

  17. #17
    Invité
    Invité(e)
    Par défaut
    Oups... Je m'étais juste trompé dans le nom de serveur pour ma BD.... Ca foncionne sans problème maintenant ! YOUHOUH !!!

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

Discussions similaires

  1. Site internet marche en local mais pas en reseau.
    Par ruyeken dans le forum Langage
    Réponses: 7
    Dernier message: 19/04/2013, 10h06
  2. Réponses: 2
    Dernier message: 15/12/2009, 08h55
  3. [POO] Site en PHP 5
    Par emstar dans le forum Langage
    Réponses: 8
    Dernier message: 11/04/2006, 14h36
  4. [MySQL] requête upload qui ne marche pas en local
    Par stuef dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/03/2006, 17h32
  5. Redirection 404 marche pas en local
    Par le mage tophinus dans le forum Apache
    Réponses: 8
    Dernier message: 10/06/2005, 08h12

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