Parse error
Résolu
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour
J'ai voulu mettre mon site en ligne mais je rencontre cette erreur.
cette erreur corresponds à:
Pourtant en local aucune erreur j'ai mis exactement les même fichiers sur mon serveur.
Pouvez-vous s'ils vous plait me donner votre avis, car là vraiment je ne comprends pas.
Merci
J'ai voulu mettre mon site en ligne mais je rencontre cette erreur.
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in
cette erreur corresponds à:
spl_autoload_register(function($class) { require_once 'classes/' . $class . '.php'; });
Pourtant en local aucune erreur j'ai mis exactement les même fichiers sur mon serveur.
Pouvez-vous s'ils vous plait me donner votre avis, car là vraiment je ne comprends pas.
Merci
10 réponses
Je pense que ta fonction manque d'un nom ou devrait être déclarée à côté.
Mais je n'ai jamais vu cette syntaxe.
Et en plus, le message d'erreur n'est pas complet.
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
Mais je n'ai jamais vu cette syntaxe.
Et en plus, le message d'erreur n'est pas complet.
J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
Bonjour
quelle version de php as tu sur le serveur ?
Car cette syntaxe ne marche qu'à partir de php 5.3.
Voir la doc:
https://www.php.net/manual/fr/function.spl-autoload-register.php
quelle version de php as tu sur le serveur ?
Car cette syntaxe ne marche qu'à partir de php 5.3.
Voir la doc:
https://www.php.net/manual/fr/function.spl-autoload-register.php
Bonjour
Si mon message j'ai juste ça en fait.
j'ai la version
-- Version de PHP : 5.3.8
sinon j'ai une douzaine de class il faut que je fasse des includes pour chaque fichier c'est kon.
Si mon message j'ai juste ça en fait.
j'ai la version
-- Version de PHP : 5.3.8
sinon j'ai une douzaine de class il faut que je fasse des includes pour chaque fichier c'est kon.
j'ai mis ça à la palce et ça à l'air de fonctionner
dis moi ce que tu en pense?
Merci
function my_autoloader($class) { include 'classes/' . $class . '.php'; }
dis moi ce que tu en pense?
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
encore moi maintenant j'ai cette erreur avec mon fichier security.php
pourtant il existe bien.
pourtant il existe bien.
Fatal error: Class 'Security' not found in
Alors voilà un truc bizarre en fait tout mes fichiers class ne sont pas inclu
mais avec ce script
mais avec ce script
function my_autoloader($class) { include 'classes/' . $class . '.php'; }
Le code complet c'est :
Concernant ton message d'erreur
... il serait bien de nous donner le message d'erreur COMPLET .!
IN ... WHAT ??
Normalement le message d'erreur t'indique le fichier + le n° de ligne où s'est produit l'erreur...... sans ça.... difficile pour nous de t'aider.
Erreur qui se trouve surement sur un
Mais bon... le souci est sûrement du au fait que tu n'avais pas mis la syntaxe complète de l'autoloader (telle que je l'ai indiqué ci-dessus...)
Cordialement,
Jordane
function my_autoloader($class) { require_once 'classes/' . $class . '.php'; } spl_autoload_register('my_autoloader');
Concernant ton message d'erreur
j'ai cette erreur avec mon fichier security.php
... il serait bien de nous donner le message d'erreur COMPLET .!
Fatal error: Class 'Security' not found in
IN ... WHAT ??
Normalement le message d'erreur t'indique le fichier + le n° de ligne où s'est produit l'erreur...... sans ça.... difficile pour nous de t'aider.
Erreur qui se trouve surement sur un
...= new Security();
Mais bon... le souci est sûrement du au fait que tu n'avais pas mis la syntaxe complète de l'autoloader (telle que je l'ai indiqué ci-dessus...)
Cordialement,
Jordane
je te remercie je vais tous reprendre demain car là je n'en peu plus en local tout baigne et sur le serveur je ne peux même plus me connecter.
J'essaierai de reprendre tous ça demain à tête reposée.
Merci en attendant.
J'essaierai de reprendre tous ça demain à tête reposée.
Merci en attendant.
Bonjour jordane45,
De nouveau sur mon soucis qui est très mais alors très bizarre.
Sur mon serveur distant j'ai importé mes tables, avec FileZilla tous mes fichiers.
Impossible de me connecter à distant par contre en local aucun soucis, donc déjà il y a quelque chose qui me bloque à propos de mon serveur par rapport à mes class.
Déjà avec la fonction que tu m'a donné à propos de mes class il n'y a plus d'erreur.
Par contre lorsque je me connecte ça me bloque au niveau d'une condition...je te met la methode à la fin du post cela concerne la methode banni()
alors si je supprime cette condition cela me met une erreur concernant la redirection
Ensuite je met cette redirection en javascript cela me redirige bien et ça fonctionne très bien.
Alors pourquoi cette condition ne fonctionne t-elle pas à distant ?
Je sais ça parait très bizarre mais là je suis vraiment dépourvu d'idée pour résoudre ce bazarre, peux tu essayer de prendre un peu de temps s'il te plait, en local tout baigne c'est dingue
mon fichier init.php ou il y a la fonction my_autoloader
attention start_session() il est sur mon fichier index.php également l'include pour accéder au fichier init.php
Merci.
De nouveau sur mon soucis qui est très mais alors très bizarre.
Sur mon serveur distant j'ai importé mes tables, avec FileZilla tous mes fichiers.
Impossible de me connecter à distant par contre en local aucun soucis, donc déjà il y a quelque chose qui me bloque à propos de mon serveur par rapport à mes class.
Déjà avec la fonction que tu m'a donné à propos de mes class il n'y a plus d'erreur.
Par contre lorsque je me connecte ça me bloque au niveau d'une condition...je te met la methode à la fin du post cela concerne la methode banni()
$erreur = "Ton compte a été supprimé";
alors si je supprime cette condition cela me met une erreur concernant la redirection
Warning: Cannot modify header information - headers already sent by (output started at /home/cliquede/www/include/init.php:5) in /home/cliquede/www/page_accueil/connexion.php on line 18
Ensuite je met cette redirection en javascript cela me redirige bien et ça fonctionne très bien.
Alors pourquoi cette condition ne fonctionne t-elle pas à distant ?
Je sais ça parait très bizarre mais là je suis vraiment dépourvu d'idée pour résoudre ce bazarre, peux tu essayer de prendre un peu de temps s'il te plait, en local tout baigne c'est dingue
<?php class Connexion_class { private $pseudo; private $password; private $actif; private $bdd; public function __construct($pseudo, $password, $actif) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->actif = $actif; $this->bdd = bdd(); } private function ChampsVide() { return(empty($this->pseudo) || empty($this->password)) ? true : false; } private function PseudoExist() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return ($result) ? $result['password'] : false; } private function Banni() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return($result['actif'] == 0) ? true : false; } private function Session() { $sql = "SELECT * FROM tb_gestion_admin INNER JOIN tb_adherent ON tb_adherent.id_adherent = tb_gestion_admin.rid_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); $_SESSION['id_adherent'] = $result['id_adherent']; $_SESSION['prenom'] = $result['prenom']; $_SESSION['pseudo'] = $this->pseudo; $_SESSION['aucune_gestion'] = $result['aucune_gestion']; $_SESSION['membre'] = $result['membre']; $_SESSION['sortie'] = $result['sortie']; $_SESSION['cours'] = $result['cours']; $_SESSION['calendrier'] = $result['calendrier']; } public function VerifConnexion() { if($this->ChampsVide()) { $erreur = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { if(!$this->Banni()) { $erreur = 'success'; $this->Session(); } else { $erreur = "Ton compte a été supprimé"; } } else { $erreur = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } } else { $erreur = "Ce compte n'existe pas"; } return $erreur; } } ?>
mon fichier init.php ou il y a la fonction my_autoloader
<?php include('connexion/config.php'); ?> <?php $bdd = bdd(); ?> <?php include('fonctions/fonction.php'); ?> <?php function my_autoloader($class) { require_once 'classes/' . $class . '.php'; } spl_autoload_register('my_autoloader'); ?>
attention start_session() il est sur mon fichier index.php également l'include pour accéder au fichier init.php
Merci.
Bonjour,
Ceci est une autre question..... qui devrait être posée... dans une nouvelle discussion.
(le fait de ne poser qu'une question par discussion, permet aux autres internautes de pouvoir effectuer des recherches sur le forum... dans le cas où ils rencontreraient le même souci.)
Quoi qu'il en soit.....
Ton message d'erreur indique que le souci se situe sur ta page connexion.php à la ligne 18....
Donc.. c'est ce code là qu'il aurait fallu nous montrer.
Ensuite... ce message d'erreur est connu...(des tonnes de discussions foisonnent sur le net à ce sujet.... ) ... il se produit lorsque tu as déjà affiché (via des ECHO) des choses AVANT de faire le Header Location en PHP.
Donc oui... dans ce cas il vaut mieux le faire en Javascript!
Alors pourquoi tous ces soucis et ces messages d'erreur ??? .... tout simplement par ce que la configuration d'apache/php sur le serveur est très certainement (c'est même quasi sûr...) différentes de celle présente sur ton pc.
NB (aucun rapport avec tes soucis... mais c'est mieux): Pour le démarrage des Session.. je t'invite à utiliser ce code
Cela évitera qu'un jour... tu es des messages t'indiquant une erreur sur le fait que les SESSIONS sont déjà démarrées...(ce code vérifie avant de lancer le session_start qu'il n'a pas déjà été lancé )
Cordialement,
Jordane
Ceci est une autre question..... qui devrait être posée... dans une nouvelle discussion.
(le fait de ne poser qu'une question par discussion, permet aux autres internautes de pouvoir effectuer des recherches sur le forum... dans le cas où ils rencontreraient le même souci.)
Quoi qu'il en soit.....
Ton message d'erreur indique que le souci se situe sur ta page connexion.php à la ligne 18....
Donc.. c'est ce code là qu'il aurait fallu nous montrer.
Ensuite... ce message d'erreur est connu...(des tonnes de discussions foisonnent sur le net à ce sujet.... ) ... il se produit lorsque tu as déjà affiché (via des ECHO) des choses AVANT de faire le Header Location en PHP.
Donc oui... dans ce cas il vaut mieux le faire en Javascript!
Alors pourquoi tous ces soucis et ces messages d'erreur ??? .... tout simplement par ce que la configuration d'apache/php sur le serveur est très certainement (c'est même quasi sûr...) différentes de celle présente sur ton pc.
NB (aucun rapport avec tes soucis... mais c'est mieux): Pour le démarrage des Session.. je t'invite à utiliser ce code
if(session_id() == '') { session_start(); }
Cela évitera qu'un jour... tu es des messages t'indiquant une erreur sur le fait que les SESSIONS sont déjà démarrées...(ce code vérifie avant de lancer le session_start qu'il n'a pas déjà été lancé )
Cordialement,
Jordane