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 :

Parse error, include() mis en cause ?


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de zebulon94
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 169
    Points : 212
    Points
    212
    Par défaut Parse error, include() mis en cause ?
    Bonjour,

    Bon j'ai une erreur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Parse error: parse error
    Cette erreur souvent sanctionne les fautes tel que : l'oubli de ";" l'oubli de " ou l'ouble de refermer un if par exemple.
    seulement la je vois le problème et je n'arrive pas à la corriger.

    l'erreur viendrais du if de haut.php pour afficher la page si l'utilisateur est confirmé ... je pense que ceci peut venir des include() mais ne vois pas comment la corriger.

    Voici les 3 pages de code ...

    haut.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
    <?php
    session_start();
    $_SESSION["mdp"]=isset($_SESSION["mdp"])?$_SESSION["mdp"]:$_POST["mdp"];
    $_SESSION["login"]=isset($_SESSION["login"])?$_SESSION["login"]:$_POST["login"];
    if (($_SESSION['mdp'] == 'pipi') and ($_SESSION['login'] == 'webadmin')){ 
    	include ('./connect_sql.php');
    ?>
    	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    	<html>
    	<head>
    	<title>Adinistration de _____.fr version1 .béta</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    	<!-- Liens vers tout les fichiers CSS, JS ...Etc -->
     
    	<link href="./CSS/style.css" rel="stylesheet" type="text/css" />
    	<script src="./js/rafraichissement.js" type="text/javascript"></script>
     
    	<!-- ****************** Ici commence le bloc du header ****************** -->
    	</head>
    	<body>
    	<div class="global"> <!-- le bloc global contient tout les bloc, il permet de centrer la page -->
     
    	<!-- ****************** Ici commence le bloc du header ****************** -->
     
    	  <div class="leblocheader"> 
    		<div class="entete"><img class="JU" src="./image/site/JU.png" class="arbre" alt="deco"></img></div>
    		<div class="menutitre">
    		<div align="center" >ADMINISTRATION V 1.0 BETA</div>
    		</div>	
    		</div>
    	<!-- ****************** Ici fini le bloc du header ****************** -->
     
     
    	<!-- ****************** Ici commence le bloc du menu ****************** -->
    		<div class="leblocmenu"> 
    			<div class="lebloctitre"> 
    			<div class="titre">
    						<!--Navigation-->
    					</div>
    			</div>
    			<div class="lebloccentre">
    				<a class="menu" href="index.php">Accueil</a><br/>
    				<a class="menu" href="news.php">Gestion des news</a><br/>
    				<a class="menu" href="photos.php">Gestions des photos</a><br/>
    				<a class="menu" href="compos.php">Gestions des vidéos</a><br/>
    				<a class="menu" href="videos.php">Gestions des musiques</a><br/>
    				<a class="menu" href="deco.php">Se déconnecter</a><br/>
     
     
    			</div>
    			<div class="topmenu" >
    			</div>
    		</div>
    	<!-- ****************** Ici fini le bloc du menu ****************** -->
     
    	<!-- ****************** Ici commence le bloc du contenu ****************** -->
    		<div class="centre">
    bas.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
    	<div class="bas_central">
    				<div class="mention">
    					<hr/>
    					<a class="amention" href="contact.php">Contact</a> - 
    					<a class="amention" href="mentions.php">Mentions légales</a> -
    					© Damien Lebas - tous droit réservé  <br/>
    					www.ju_project.fr version 1.0 béta
    				</div>
    			</div>
    	</div>
    	<!-- ****************** Ici fini le bloc du contenu ****************** -->
     
    	</div> <!-- le bloc global contient tout les bloc, il permet de centrer la page -->
    	</body>
    	</html>
    <?php
    	mysql_close($link);
    }
    else{ 
    	?>
    	<html>
    		<head>
    			<title>Adinistration de _____.fr version1 .béta</title>
    			<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    			<link href="./CSS/style.css" rel="stylesheet" type="text/css" />
    		</head>
    	    <body>
    			<div style="border:balck 1px solid; background-color:#ffffff; margin-top:25%;" align="center">
    				<h3>Administration du site</h3>
    				<p>Vous tentez de pénétrer dans une zone réservé à l'équipe du site
    				   dans le cas ou aucun mot de passe et user vous ont été fournis,
    				   merci de quitter cette page ou d'en demander l'accès au près du 
    				  WebMaster .</p>
    				<div id="auth">
    					<form action="index.php" method="post">
    						<input type="text" name="login" value="utilisateur"/> 
    						<input type="text" name="mdp" value="password"/> 
    						<input type="submit" value="Se Connecter" />
    					</form>	
    					<a href="../index.php">Quitter cette page</a>
    				</div>
    			</div>
    	   </body>
     
    	</html>
    <?php
    }
    ?>
    enfin : 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
    23
    24
    25
    <?php 
    include('./haut.php'); 
    ?>
     
    		<div class="titre_central"> 
    			<div class="titre-body">
    			Accueil
    			</div>
    		</div>
     
    		<div class="contenu">
    			<fieldset><legend>Aide d'utilisation</legend>
    					<p>Bienvenue sur le site JU-Project.fr</p>
    					<p>Ce tout nouveau site, est présent pour faire découvrir un artiste.</p>
    					<p>Toutes remarques que vous pourriez-faire est bonne à prendre,</p>
    					<p>adressez les nous dans la rubrique contact, ou directement en </p>
    					<p>cliquant sur ce <a href="./contact.php"> lien </a></p>
    			</fieldset>
    		</div>
     
     
     
    <?php 
    include('./bas.php'); 
    ?>
    Merci de toute l'attention porté à ce post

    D.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Bonjour,

    Tu ne peux pas ouvrir un if (...) { (haut.php)dans un fichier et le refermer dans un autre } else ..(bas.php).

  3. #3
    Membre actif Avatar de zebulon94
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 169
    Points : 212
    Points
    212
    Par défaut
    Pourtant j'ai le souvenir de l'avoir déjà. Mais est ce que tu aurais une solution à me proposer ?


    D.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Citation Envoyé par zebulon94 Voir le message
    Pourtant j'ai le souvenir de l'avoir déjà.
    Impossible.


    Une solution : Fermer ton if dans haut.php ...
    Soit tu mets tout dans ton index.php, tu peux aussi faire une redirection sur un autre fichier, la validation de ton formulaire de connexion se fait sur une autre page, etc ... en faites tu as beaucoup de solution

  5. #5
    Membre actif Avatar de zebulon94
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 169
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par psylox Voir le message
    Une solution : Fermer ton if dans haut.php ...
    Soit tu mets tout dans ton index.php, tu peux aussi faire une redirection sur un autre fichier, la validation de ton formulaire de connexion se fait sur une autre page, etc ... en faites tu as beaucoup de solution
    l'architecture des includes me tient à coeur car en phase de dev il est aisé de faire une modif s'appliquant à toute les pages. à par de tout intégrer dans une même page je ne vois pas comment faire pour bloqué l'affichage du site si mes variables de session sont incorrect ....?

    Merci de ta réponse

    D.

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Effectivement, les include() sont une bonne chose MAIS tu les utilise mal...

    voici par exemple comment faire :

    Code header_webmin.php : 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
    	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    	<html>
    	<head>
    	<title>Adinistration de _____.fr version1 .béta</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    	<!-- Liens vers tout les fichiers CSS, JS ...Etc -->
     
    	<link href="./CSS/style.css" rel="stylesheet" type="text/css" />
    	<script src="./js/rafraichissement.js" type="text/javascript"></script>
     
    	<!-- ****************** Ici commence le bloc du header ****************** -->
    	</head>
    	<body>
    	<div class="global"> <!-- le bloc global contient tout les bloc, il permet de centrer la page -->
     
    	<!-- ****************** Ici commence le bloc du header ****************** -->
     
    	  <div class="leblocheader"> 
    		<div class="entete"><img class="JU" src="./image/site/JU.png" class="arbre" alt="deco"></img></div>
    		<div class="menutitre">
    		<div align="center" >ADMINISTRATION V 1.0 BETA</div>
    		</div>	
    		</div>
    	<!-- ****************** Ici fini le bloc du header ****************** -->
     
     
    	<!-- ****************** Ici commence le bloc du menu ****************** -->
    		<div class="leblocmenu"> 
    			<div class="lebloctitre"> 
    			<div class="titre">
    						<!--Navigation-->
    					</div>
    			</div>
    			<div class="lebloccentre">
    				<a class="menu" href="index.php">Accueil</a><br/>
    				<a class="menu" href="news.php">Gestion des news</a><br/>
    				<a class="menu" href="photos.php">Gestions des photos</a><br/>
    				<a class="menu" href="compos.php">Gestions des vidéos</a><br/>
    				<a class="menu" href="videos.php">Gestions des musiques</a><br/>
    				<a class="menu" href="deco.php">Se déconnecter</a><br/>
     
     
    			</div>
    			<div class="topmenu" >
    			</div>
    		</div>
    	<!-- ****************** Ici fini le bloc du menu ****************** -->
     
    	<!-- ****************** Ici commence le bloc du contenu ****************** -->
    		<div class="centre">
    Code index.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
    $_SESSION["mdp"]=isset($_SESSION["mdp"])?$_SESSION["mdp"]:$_POST["mdp"];
    $_SESSION["login"]=isset($_SESSION["login"])?$_SESSION["login"]:$_POST["login"];
    if (($_SESSION['mdp'] == 'pipi') and ($_SESSION['login'] == 'webadmin')){ 
           include("header_webmin.php");
    } else {
           include("header_guest.php");
    }
    // le reste du code de l'index ici

    voici comment les utiliser correctement (dans ton cas) bien qu'habituellement, on passe par 2 index.php différents (dans des dossiers différents)

  7. #7
    Membre actif Avatar de zebulon94
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 169
    Points : 212
    Points
    212
    Par défaut
    En quoi cela va empécher un user non souhaité de ne pas voir le contenue des mes pages admin ?

    "header_guest.php" ?
    D.

  8. #8
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par zebulon94 Voir le message
    En quoi cela va empécher un user non souhaité de ne pas voir le contenue des mes pages admin ?

    "header_guest.php" ?
    D.
    oui et non ^^

    En réalité, il faut distinguer les include(), quoi qu'il en soit la détection de l'utilisateur doit se faire principalement dans l'index.php pour savoir où il peut aller. c'est pour ça que dans ce bout de code la vérification des sessions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($_SESSION['mdp'] == 'pipi') and ($_SESSION['login'] == 'webadmin')){
    se trouve dans index.php. Une fois cette vérification faite, on lui dit :
    SI OUI => tu peux include les fichier du webmin
    SI NON => tu inclus autre chose (ou alors simplement écrire une phrase)


    Avec une simple phrase d'erreur :
    Code index.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $_SESSION["mdp"]=isset($_SESSION["mdp"])?$_SESSION["mdp"]:$_POST["mdp"];
    $_SESSION["login"]=isset($_SESSION["login"])?$_SESSION["login"]:$_POST["login"];
    if (($_SESSION['mdp'] == 'pipi') and ($_SESSION['login'] == 'webadmin')){ 
           include("webmin.php");
    } else {
           echo "<p>Vous n'avez pas accès à cette partie du site</p>";
    }
    ?>

    EDIT : pour protéger plusieurs pages, il vaut mieux les mettres dans un sous-dossier et/ou y appliquer un code de ce genre (un peu sale mais qui fonctionne bien)
    Code verification.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $_SESSION["mdp"]=isset($_SESSION["mdp"])?$_SESSION["mdp"]:$_POST["mdp"];
    $_SESSION["login"]=isset($_SESSION["login"])?$_SESSION["login"]:$_POST["login"];
    if (($_SESSION['mdp'] != 'pipi') || ($_SESSION['login'] != 'webadmin')){ 
        die("Vous n'avez pas accès à cette partie du site");
    }

    il suffit ensuite d'écrire en haut de chaque fichier à protéger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("verification.php");
    NB : ce fichier ne doit pas être inclus dans les include()

    exemple avec "maPage.php":
    Code maPage.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    session_start(); // important sinon ça marchera jms :)
    include("verification.php");
    // ici je peux mettre mon code :)
    echo "coucou t'es un admin vachement cool twa dis donc !";

  9. #9
    Membre actif Avatar de zebulon94
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 169
    Points : 212
    Points
    212
    Par défaut
    Ok j'ai bien pris note des conseils et je les ai appliqué. Je corrige un problème que je viens de rencontrer. Effectivement si l'utilisateur à déjà essayé de se connecter et qu'il à mis un mauvais mot de passe ou user , il lui est impossible de se connecter même si à la 2ème tentative il rentre les bonnes valeurs.

    Car les variables de session serons créer et garderons les valeurs périmés.
    (Si tu veux m'aider sa sera avec plaisir)

    Une fois le problème résolu je met tout le code pour que tu me donne ton avis et pour que sa serve à quelqu'un s'il le souhaite

    Merci de ton aide

    D.

  10. #10
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Ce code n'est pas complet mais devrait te donner de bonnes pistes pour ton problème.

    NB : Ici j'ai fait une simple vérification => $login == "unLogin", en général on vérifie évidemment par rapport à une base de données

    Code verification.php : 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
    <?php
    $statusLogin = array();
    if (isset($_POST['login']) && isset($_POST['pwd'])) {
    	// Le formulaire d'authentification a été soumis
     
    	// Gestion des erreurs du formulaire de login
    	// Exemple :
    	if (empty($_POST['login'])) {
    		$statusLogin['error'][] = "Veuillez entrer un mot de passe";
    	} else {
    		if ($_POST['login'] != "unLogin") {
    			$statusLogin['error'][] = "Login incorrect";
    		}
    	}
     
    	// Si tout est OK, on
    	if (count($statusLogin['error']) == 0) {
    		$_SESSION['login'] = $_POST['login'];
    		$_SESSION['pwd'] = $_POST['pwd'];
    	}
    } else {
    	if (empty($_SESSION['login']) || empty($_SESSION['pwd'])) {
    		die("Vous n'avez pas accès à cette partie");
    	}
    }
    ?>


    EDIT : petites transformations et utilisation d'une DB
    Code verification.php : 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
    <?php
    $statusLogin = array();
    if (isset($_POST['login']) && isset($_POST['pwd'])) {
    	// Le formulaire d'authentification a été soumis
     
    	// Gestion des erreurs du formulaire de login
    	// Exemple :
    	if (empty($_POST['login'])) {
    		$statusLogin['error'] = "Veuillez entrer un login";
    	} elseif (empty($_POST['pwd'])) {
    		$statusLogin['error'] = "Veuillez entrer un mot de passe";
    	} else {
    		$sql = "SELECT COUNT(login) FROM latable WHERE login = '".mysql_real_escape_string($_POST['login'])."' AND pwd = '".mysql_real_escape_string($_POST['pwd'])."'";
    		$q = mysql_query($sql);
    		if (mysql_num_rows($q) <= 0) { 
    			$statusLogin['error'] = "Login incorrect";
    			$_SESSION['login'] = ""; // Normalement inutile
    			$_SESSION['pwd'] = ""; // Normalement inutile
    		} else {
    			// Utilisateur OK
    			$_SESSION['login'] = $_POST['login'];
    			$_SESSION['pwd'] = $_POST['pwd'];
    		}
    	}
    } else {
    	// Si on essaye d'accéder directement à la page sans passer par le form d'auth
    	if (empty($_SESSION['login']) || empty($_SESSION['pwd'])) {
    		die("Vous n'avez pas accès à cette partie");
    	}
    }
    ?>

    NB : pour la gestion des erreurs, il suffit d'afficher "$statusLogin"

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

Discussions similaires

  1. Parse error a cause des antislashs
    Par camcam8782 dans le forum Langage
    Réponses: 1
    Dernier message: 29/04/2012, 02h19
  2. [POO] parse error introuvable include/require
    Par highman dans le forum Langage
    Réponses: 5
    Dernier message: 22/10/2006, 15h31
  3. Parse error à cause d'un tag <?xml
    Par genova dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2006, 17h00
  4. Parse error
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 02/02/2005, 10h55

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