Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme avec un code

5 réponses
Avatar
Albenic
Bonjour à tous,

Je gère un parc de machines dans un lycée et suite à des demandes de
professeurs, j'ai installé sur le serveur web un cahier de textes écrit
en php. L'année dernière l'installation s'est bien déroulée et tout à
bien fonctionné, mais cette année suite à une mise à jour pour gérer les
nouveaux formats de fichiers contenant les données des élèves et des
professeurs cela ne fonctionne plus. J'ai fait la mise à jour nécessaire
et lorsque j'essaye d'importer le fichier contenant toutes les données
élèves, j'ai droit au message d'erreur suivant :

Parse error : parse error, unexpected T_STRING, expecting T_OLD_FUNCTION
or T_FUNCTION or T_VAR or '}' in
/home/www/html/lycee/moutiers/cdt/espace_perso/inc/fonction_sconet.php
on line 3


Je préfère être honnête : en php je n'y connais rien mais j'ai tout de
même regardé le fichier en cause et lu sur différents sites d'où cela
pouvait provenir mais je n'ai rien trouvé et je ne vois pas où peut-être
le problème en ligne 3.
Voici le code du fichier fonction_sconet.php :

<?
class fic_sconet {
public $lgfic;
public $contenu;
public $lg_entete;
public $lg_reccord;
public $nb_champ;
public $nb_reccords;
public $reccord_courant;
public $nom_champ;
public $affect;
public $change_carac;


//Constructeur
function fic_dbf() {
$lgfic=0;
$contenu = array() ;
$lg_entete=0;
$lg_reccord=0;
$nb_champ=0;
$reccord_courant = 0;
$affect = 0;
}

// init de la classe
//
function init_fic_sconet($nom_fic) {
//echo "**$nom_fic";
$this->lgfic=0;
if($fd = fopen($nom_fic, "rb")) {
// echo "<br> dans le if<br>";
$this->lgfic =filesize ($nom_fic);
// echo "<br> lg fic : $this->lgfic<br>";
//echo fgets($fd, 4096);
$this->contenu[] = fgets($fd, 4096);
$i=0;
while (!feof($fd)) {

$this->contenu[] = fgets($fd, 4096);
//echo $this->contenu[$i]."<br>";
$i++;
}
$this->nb_reccords = $i;
/*
$this->contenu = fread($fd, filesize ($nom_fic));
fclose($fd);
$data = substr($this->contenu,8,2);
echo "<br>$data";
$this->lg_entete=0; //ord($data[0])+(ord($data[1])<<8);
// $data = substr($this->contenu,10,2);
$this->lg_reccord=0;//ord($data[0])+(ord($data[1])<<8);
// $data = substr($this->contenu,4,4);
$this->nb_reccords=$i;
//ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);
$table_champ = explode($this->contenu[0]);


$this->nb_champ = count($this->contenu) -1; //($this->lg_entete -34)/32;
*/

}
//@$this->change_carac = $liste_car;
//echo "fin du init";
return ($this->lgfic);
}

function nb_reccords_sconet() {
return ($this->nb_reccords);
}

function lg_fichier_sconet() {
return ($this->lgfic);
}

function lg_reccord_sconet() {
return 0; //$this->lg_reccord;
}

function lg_entete_sconet() {
return 0; //$this->lg_entete;
}

function nb_champ_sconet() {
return ($this->nb_champ);
}
/*
function carac_champ_dbf($num) {
// $tab;
if ($num < $this->nb_champ) {
$position = 32 + ($num*32);
$ligne = substr($this->contenu,$position,32);
// nom du champ
$tab["nom"] = substr($ligne,0,11);
$pos = strpos($tab["nom"],chr(0));
if ($pos === FALSE) {// nota trois ===
$pos=11;
}
$tab["nom"] = substr($tab["nom"],0,$pos);
//forme du champ
$tab["forme"] = substr($ligne,11,1);
// adresse du champ
$data= substr($ligne,12,4);

$tab["adresse"]=ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);

//largeur du champ
$tab["largeur"] = ord(substr($ligne,16,1));
//largeur decimal du champ
$tab["decimal"] = ord(substr($ligne,17,1));
}
return $tab;
}
*/
// affectation d'un tableau qui contient le nom des champs
// on utilise en lecture $tab[nom_du_champ] directement
/*
function affect_champ_dbf() {
for ($i=0; $i < $this->nb_champ; $i++) {
$val = $this->carac_champ_dbf($i);
$this->nom_champ[$i]["nom"]=$val["nom"];
$this->nom_champ[$i]["forme"]=$val["forme"];
$this->nom_champ[$i]["adresse"]=$val["adresse"];
$this->nom_champ[$i]["largeur"]=$val["largeur"];
$this->nom_champ[$i]["decimal"]=$val["decimal"];
if ($i) {
$this->nom_champ[$i]["index"]=$this->nom_champ[$i-1]["index"] +
$this->nom_champ[$i-1]["largeur"];
}
else {
$this->nom_champ[$i]["index"]=0;
}
}
$this->affect = 1;
}
*/

function lect_reccord_sconet($num) {

$tab_caract = array(
chr(128)=>"Ç",
chr(129)=>"ü",
chr(130)=>"é",
chr(131)=>"â",
chr(132)=>"ä",
chr(133)=>"à",
chr(134)=>"å",
chr(135)=>"ç",
chr(136)=>"ê",
chr(137)=>"ë",
chr(138)=>"è",
chr(139)=>"ï",
chr(140)=>"î",
chr(141)=>"ì",
chr(142)=>"Ä",
chr(143)=>"Å",
chr(144)=>"É",
chr(145)=>"æ",
chr(146)=>"Æ",
chr(147)=>"ô",
chr(148)=>"ö",
chr(149)=>"ò",
chr(150)=>"û",
chr(151)=>"ù");

$ligne="";
// if (!$this->affect) {
// $this->affect_champ_dbf();
// }
if ($num < $this->nb_reccords) {
$ligne = $this->contenu[$num];
$ret = explode(";",$ligne);
// $position = $this->lg_entete + ( $this->lg_reccord * $num);
// $ligne = substr($this->contenu,$position,$this->lg_reccord);
// for ($i=0; $i < $this->nb_champ; $i++) {
// $contenu =
substr($ligne,$this->nom_champ[$i]["index"]+1,$this->nom_champ[$i]["largeur"]);
// echo "<br>contenu = $contenu";
// $contenu = trim(strtr($contenu, $tab_caract));
// $ret[$this->nom_champ[$i]["nom"]] = $contenu;
// echo "<br>contenu = $contenu";
// }
}
return($ret);
}
/*
function liste_champ_dbf() {
return ($this->nom_champ);
}
*/

} // fin déclaration de la classe



/* à conserver

//retour les code ASCII d'une chaine
function ascii_encode($string) {
for ($i=0; $i < strlen($string); $i++) {
$encoded .= '&'.ord(substr($string,$i)).';';
}
return $encoded;
}
//transfert d'un BDF dans la la viariable $contenu
// retourne la taille du fichier
function lecture_dbf($nom_fic)
{
$this->$lgfic=0;
if($fd = @fopen($nom_fic, "rb")) {
$this->lgfic =filesize ($nom_fic);
$this->contenu = fread($fd, filesize ($filename));
}
fclose($fd);
}

*/

?>

Par avance merci si quelqu'un peut me dépanner, Benoît GUY.

5 réponses

Avatar
newdb
Albenic wrote:
j'ai droit au message d'erreur suivant :
Parse error : parse error, unexpected T_STRING, expecting T_OLD_FUNCTION
or T_FUNCTION or T_VAR or '}' in
/home/www/html/lycee/moutiers/cdt/espace_perso/inc/fonction_sconet.php
on line 3

Voici le code du fichier fonction_sconet.php :
<?
class fic_sconet {
public $lgfic;
public $contenu;
[... etc ...]

fclose($fd);
}

*/

?>


"...expecting '}' in fonction_sconet.php on line 3 "


ton écriture de classe 'fic_sconet' n'est pas fermée.
il manque une '}' en fin, juste avant '?>'

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="

Avatar
Mickael Wolff

mais cette année suite à une mise à jour pour gérer les
nouveaux formats de fichiers contenant les données des élèves et des
professeurs cela ne fonctionne plus. J'ai fait la mise à jour nécessaire
et lorsque j'essaye d'importer le fichier contenant toutes les données
élèves, j'ai droit au message d'erreur suivant :

Parse error : parse error, unexpected T_STRING, expecting T_OLD_FUNCTION
or T_FUNCTION or T_VAR or '}' in
/home/www/html/lycee/moutiers/cdt/espace_perso/inc/fonction_sconet.php
on line 3


Ça ressemble furieusement à une incompatibilité avec l'application
écrite pour PHP5, et un PHP4 installé.

Faites un fichier phpinfo pour vous en assurer !

Je préfère être honnête : en php je n'y connais rien


Et vous installez une plate-forme basée sur PHP ? Je gagerais que les
cahiers de texte seront modifiés un jour prochain par un élève agile :p

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Avatar
Albenic

mais cette année suite à une mise à jour pour gérer les
nouveaux formats de fichiers contenant les données des élèves et des
professeurs cela ne fonctionne plus. J'ai fait la mise à jour nécessaire
et lorsque j'essaye d'importer le fichier contenant toutes les données
élèves, j'ai droit au message d'erreur suivant :

Parse error : parse error, unexpected T_STRING, expecting T_OLD_FUNCTION
or T_FUNCTION or T_VAR or '}' in
/home/www/html/lycee/moutiers/cdt/espace_perso/inc/fonction_sconet.php
on line 3


Ça ressemble furieusement à une incompatibilité avec l'application
écrite pour PHP5, et un PHP4 installé.



Tout à fait, j'ai eu la même idée hier soir et tester ce matin avec mon
fichier info.php et effectivement, le serveur tourne avec php4 version
4.3.10-22.
Tant pis pour moi.

Faites un fichier phpinfo pour vous en assurer !

Je préfère être honnête : en php je n'y connais rien


Et vous installez une plate-forme basée sur PHP ? Je gagerais que les
cahiers de texte seront modifiés un jour prochain par un élève agile :p



J'ne ai bien conscience mais c'est une demande forte de mes chefs et des
chefs des chefs alors là je n'ai plus qu'à m'incliner...
Plus sérieusement, je ne vois pas l'intérêt pour un élève d'aller
trifouiller dans des fichiers qui ne parlent que ce ce qui a été fait en
classe et du travail à faire pour le lendemain.

Quoi qu'il en soit merci de votre aide, il ne me reste plus qu'à trouver
une autre solution pour un cahier de textes en ligne.


Avatar
Bruno Desthuilliers

(snip)

Ça ressemble furieusement à une incompatibilité avec l'application
écrite pour PHP5, et un PHP4 installé.



Tout à fait, j'ai eu la même idée hier soir et tester ce matin avec mon
fichier info.php et effectivement, le serveur tourne avec php4 version
4.3.10-22.
(snip)


Quoi qu'il en soit merci de votre aide, il ne me reste plus qu'à trouver
une autre solution pour un cahier de textes en ligne.


Oui : installer php5. De toutes facons, php4 est officiellement mort et
enterré (cf php.net).


Avatar
Albenic

(snip)

Ça ressemble furieusement à une incompatibilité avec l'application
écrite pour PHP5, et un PHP4 installé.



Tout à fait, j'ai eu la même idée hier soir et tester ce matin avec
mon fichier info.php et effectivement, le serveur tourne avec php4
version 4.3.10-22.
(snip)


Quoi qu'il en soit merci de votre aide, il ne me reste plus qu'à
trouver une autre solution pour un cahier de textes en ligne.


Oui : installer php5. De toutes facons, php4 est officiellement mort et
enterré (cf php.net).
Certes, je le sais bien mais ce n'est pas moi qui gère le serveur de

l'académie....