Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2011, 15h46   #1
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Par défaut [POO] erreur incongrue dans les require_once

Bonjour à tous,
Résumé du problème :
un popup thickbox est appelé. Ce fichier se nomme commenter.phtml il est dans un dossier ./vues
D'ordinaire les fichiers ./vues/ sont include dans un fichier index.php
Comme se fichier est hors include habituel, j'ai ajouté les require nécessaire à son bon fonctionnement et ordinairement dans le ficgier index.php.
Celui-ci contient plusieurs require_once de fichiers class contenus dans un dossier ./models/
Les autres fichiers vues faisant appel à ces class ne rencontre pas (ou ne m'affiche pas) cette erreur.
La classe SQL en cause (mais si je supprime son appel, j'ai un souci similaire avec les autres class) est une class utilisant des méthodes static.
Code :
Parse error</b>:  syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in
Quelqu'in a-til une piste ?

Merci de vos réponses
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 16h01   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
montre ton code plutot
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 06/06/2011, 16h35   #3
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
OK c'est parti...

fichier d'appel du popup : "./helpers/dossier_helper.php"
Code :
1
2
3
4
 
.../
$barre .= "<a href='vues/commenter.phtml?id=$idossier&keepThis=true&TB_iframe=true&height=300&width=550' class='thickbox'><img src='media/image/comment.png' alt='commentez' width='20' /></a>&nbsp;";
.../
ce fichier est inclu dans : ./vues/dossiers.phtml
lui même inclu dans : ./templates/ciroh_3/index.php
Fichiers inclus via require_once et posant problème : "./core/config.inc"
voici le code appelant la classe SQL :

Code :
1
2
3
4
require $baseurl."core/class/Sql.php";
require $baseurl."core/class/Txt.php";
require $baseurl."core/class/Mys.php";
require $baseurl."core/class/Session.php";
la variable $baseurl est définie dans le dernier fichier inclu ici : "./vues/commenter.phtml" :
Code :
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
session_start();
$baseurl = "../";
require_once $baseurl."/core/config.inc";
 $auth = 1;
 if($_SESSION['auth'] < $auth ){
    //header("Location: ".MyS::_RW("index.php?mode=public&view=500")."");
     echo "<script type='text/javascript'>
    $(document).ready(function(){
        window.location='".MyS::_RW('index.php?mode=public&view=500')."';
    });
    </script>";
 }
 
require_once $baseurl."models/Dossier.php";
require_once $baseurl."models/Fichier.php";
require_once $baseurl."models/Membre.php";
require_once $baseurl."helpers/color_helper.php";
$id = $_GET['id'];
$type = $_GET['type'];
$userid = $_SESSION['userid'];
$nom = "";
if($type == "dossier"){
    $dossier = new dossiers($id);
    $nom = $dossier->_nom;
}
else {
    $fichier = new fichiers($id);
    $nom = $fichier->_nom;
}
$ctable = colorTable();
Voici le code de la classe SQL : "./core/class/Sql.php"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
/**
 * @author Doudies
 * @copyright 2008
 * model sql 
 */
 
class Sql{
    static function connexion(){
        $cx = mysql_connect(DBHOST,DBUSER,DBPASS);
        //if($db = mysql_select_db(DBB,$cx)){
        if(mysql_select_db(DBB,$cx)){
            return $cx;
        }
        else{
            return "pas d'entrée";
        }
    }
.../
Je re précise que d'ordinaire les autres vues utilisent ces classes sans erreur. La différence fondamentale de cette vue est qu'elle s'affiche seule sans être incluse dans l'index.php c'est pourquoi il était nécessaire d'y ajouter l'appel au fichier config.inc
Autre précision, sans le code php le popup thickbox s'affiche sans problème...
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 16h46   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Ok mais l'erreur est sur quelle ligne de quel fichier ?
sur le MyS::_RW ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 16h46   #5
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Cette erreur survient parce que tu es en PHP 4 et que tu utilises le mot-clef static dans la classe qui est un mot réservé PHP 5.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h22   #6
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Cette erreur s'affiche dans le fichier commenter.phtml (le popup)
le MyS::_RW... c'est une vérif de droit il ne réagit pas dans ce cas de figure.
Et non, ça ne peut pas venir de php 5 vs php 4. Sinon, j'aurais déjà eu ce problème dans les autres vues alors. Et le serveur est configuré avec php5...
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h28   #7
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Allez ne nous fais pas languir plus longtemps, donne nous la fin du message d'erreur.
On ne sait toujours pas quelle ligne de quel fichier est incriminée ..
Au passage, si tu pouvais faire un echo phpversion(); et nous la donner ..
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h35   #8
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
OK Bisûnûrs.
Code :
Parse error:  syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/38/d213646387/htdocs/ldmc/dev/ciroh_c/core/class/Sql.php on line 9
il s'agit de l'appel de la methode de connexion...
Mais si je vire le require config.inc le problème se reporte sur le fichier class suivant :
Dossier.php dès sa première ligne aussi...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
/**
 * Description of dossier
 * gestion des dossiers virtuels : création, suppression, modification, verrouillage
 * @author laurent
 */
class dossier {
    public $_id;
    public function  __construct($nom) {
        $cx = sql::connexion();
        $sql = "INSERT INTO #__dossiers (nom) VALUES ('$nom');";
        $result = sql::query($sql);
        $this->_id = sql::_id();
        sql::deconnexion($cx);
    }
l'erreur affichée devient alors :
Code :
Parse error:  syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/38/d213646387/htdocs/ldmc/dev/ciroh_c/models/Dossier.php on line 8
...
Pourquoi juste sur cette vue ?
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h39   #9
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
version PHP : 5.2.17
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h42   #10
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
"Bizarrement", dans le deuxième cas il s'agit du mot-clef public qui est inhérent à la version 5 de PHP.
On y revient .. Ton serveur n'a pas l'air d'être en PHP5 (ou n'est pas reconnu comme tel). T'es sur WAMP ? T'as pas activé par erreur/hasard une ancienne version de PHP sans t'en rendre compte ou sans t'en souvenir ?

Essaye de remplacer "public" par "var" à la ligne 8 de ton fichier Dossier.php, pour voir s'il bloque à la ligne suivante.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h51   #11
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Je comprend l'embarras. J'ai en fait tout de suite pensé à cette histoire de version.
En fait je suis sur un serveur 1&1 sur mon hébergement dans un dossier de test. Tout mon site perso fonctionne avec ce genre de class. Le site de test fonctionne lui aussi avec ces class et jusqu'à ce que je décide d'afficher cette P. de vue en popup thickbox je n'ai jamais eu ce problème...
Un autre exemple, sur le site suivant : (site où je teste mes idées) www.ld-clic.com/deckmaster
sur la page : http://www.ld-clic.com/deckmaster/p_recapcarte.html
le popup fonctionne, et on est sur le même serveur !!... il y a une légère différence mais sans incidence, le popup affiche la vue detail.php qui est à la racine au lieu d'être dans le dossier vue. Mais pour avoir fait des tests dans ce sens je le re dis c'est sans incidence apparente.
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h53   #12
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Après test en modifiant la ligne 8 effectivement on se reporte en ligne 9. Ce qui tendrait à prouver tes intuitions... Mais alors pourquoi pas tout le site ?!
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 18h04   #13
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
J'ai trouvé ça :
http://videonoob.fr/tutoriel/activer-php5-1and1

Tu as bien activé PHP5 dans ton htaccess ? Si oui, ton fichier de thickbox est bien dans l'arborescence du htaccess ou dans un dossier frère voire parent ?
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 18h47   #14
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Oui, le php5 est activé dans le .htaccess à la racine de l'hébergement. Je l'ai ré activé à la racine du site de test. Je viens de faire un phpversion sur le fichier commenter.php et là...4.4.9 !!!! Pourquoi ? On sait que c'est ça mais pourquoi ?
Pourquoi pas sur le site de test deckmaster ???? il y a là un mystère...
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 18h52   #15
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
La même vue appelée normalement affiche bien une version 5... (hors popup)
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 19h03   #16
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Problème résolu !!
J'ai ajouté dans mon fichier .htaccess à la racine du site test
Code :
AddType x-mapp-php5 .phtml
Puisque mes vues sont en phtml. La raison est que les autres .phtml sont inclues dans un .php (index) donc c'est lui qui fait office de référence. Dans le cas où le phtml seul est appelé il échappe à la règle, il faut donc aussi la définir pour ce type de fichier.

Merci beaucoup de votre aide Bisûnûrs et Stealth35
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h03.


 
 
 
 
Partenaires

Hébergement Web