Include () sur dossier parent ?

Fermé
aurelien__c Messages postés 6 Date d'inscription lundi 3 août 2015 Statut Membre Dernière intervention 3 août 2015 - Modifié par aurelien__c le 3/08/2015 à 02:51
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 - 4 août 2015 à 01:19
Bonjour à tous,

J'ai une question concernant les include() en php.

Je souhaite inclure un fichier présent dans mon dossier php (lui même à la racine du site) [monsite.tld/php/] dans un fichier présent dans un autre sous dossier.. En l'occurrence mon fichier "config.php" doit être inclus dans le sous dossier "sds" (présent à la racine également).

L'idée première aurait été de faire quelque chose d'assez simple :

// dans le fichier "monsite.tld/sds/index.php"

<?php
include ('../php/config.php');
?>

Mais évidemment, cela ne marche pas. Les include ne prennent pas en charge la remontée d'arborescence il me semble ..

Si vous aviez la solution où bien même des pistes, ce serait top.

Merci d'avance !
A voir également:

3 réponses

bik225 Messages postés 387 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 31 août 2017 72
Modifié par bik225 le 3/08/2015 à 02:30
Salut !
Tu pourrais utiliser ceci :

include $_SERVER['DOCUMENT_ROOT']."/php/config/config.php"; 


Tiens moi au courant :)

Je t'ai rendu service? Alors vote positivement.
Tutos informatique -> www.geekoriel.com
0
aurelien__c Messages postés 6 Date d'inscription lundi 3 août 2015 Statut Membre Dernière intervention 3 août 2015
Modifié par aurelien__c le 3/08/2015 à 02:47
Merci pour cette ligne ! :)

Je vois une première avancée ..

J'ai donc maintenant ces lignes en haut de mon index :

include $_SERVER['DOCUMENT_ROOT']."/php/config.php"; 
include $_SERVER['DOCUMENT_ROOT']."/php/fonction.php"; 
include $_SERVER['DOCUMENT_ROOT']."/php/header.php"; 


L'arborescence semble bonne (il m'affiche du contenu, ce qui n'était pas le cas avant) ..

Cependant je pense qu'il n'intègre pas mes fichiers CSS présent dans le header.php ..

Une solution ? :)
0
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
3 août 2015 à 07:36
Bonjour
sans voir le code qui pose problème. . Impossible de te répondre
0
bik225 Messages postés 387 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 31 août 2017 72
3 août 2015 à 12:02
Jordane a raison, tu peux nous montrer ton code ?
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
3 août 2015 à 14:45
Bonjour,

Si si, les includes prennent tout-à-fait en compte les remontées de niveau !
Le problème doit venir d'ailleurs, il faudrait que tu nous donnes :
1 - Le message d'erreur (utilise REQUIRE plutôt que INCLUDE pour qu'ils s'affichent)
2 - Ton arborescence (n'oublie pas, si tu développes sur du windows mais publie sur du linux, que les noms sont sensibles à la casse chez les manchots)
3 - Éventuellement ton code source

Xavier
0
aurelien__c Messages postés 6 Date d'inscription lundi 3 août 2015 Statut Membre Dernière intervention 3 août 2015
3 août 2015 à 17:47
Bonjour,

Alors,

- je n'ai aucun message d'erreur (*joie*) - juste une page blanche si je mets un require plutôt qu'un include

-pour la partie serveur, c'est du apache, je ne devrais normalement pas avoir de probleme de ce côté là.



- Le fichier "haut.php" (présent dans /php/)


<?php 

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

    <head>

    <?php


    

    if(isset($titre) && trim($titre) != '')

    $titre = $titre.' : '.TITRESITE;

    

    else

    $titre = TITRESITE;

    


    ?>

        <title><?php echo $titre; ?></title>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

        <meta name="language" content="fr" />

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <!-- Web Fonts  -->
        <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800%7CShadows+Into+Light" rel="stylesheet" type="text/css">

        <!-- Vendor CSS -->
        <link rel="stylesheet" href="vendor/bootstrap/bootstrap.css">
        <link rel="stylesheet" href="vendor/fontawesome/css/font-awesome.css">
        <link rel="stylesheet" href="vendor/owlcarousel/owl.carousel.min.css" media="screen">
        <link rel="stylesheet" href="vendor/owlcarousel/owl.theme.default.min.css" media="screen">
        <link rel="stylesheet" href="vendor/magnific-popup/magnific-popup.css" media="screen">

        <!-- Theme CSS -->
        <link rel="stylesheet" href="css/theme.css">
        <link rel="stylesheet" href="css/theme-elements.css">
        <link rel="stylesheet" href="css/theme-blog.css">
        <link rel="stylesheet" href="css/theme-shop.css">
        <link rel="stylesheet" href="css/theme-animate.css">

        <!-- Current Page CSS -->
        <link rel="stylesheet" href="vendor/rs-plugin/css/settings.css" media="screen">
        <link rel="stylesheet" href="vendor/circle-flip-slideshow/css/component.css" media="screen">

        <!-- Skin CSS -->
        <link rel="stylesheet" href="css/skins/default.css">

        <!-- Theme Custom CSS -->
        <link rel="stylesheet" href="css/custom.css">

        <!-- Head Libs -->
        <script src="vendor/modernizr/modernizr.js"></script>

        </head>



//Suivi du body  (mais effacé là pour gagner de la place.)

 <body>

        
        



Pour le fichier "index.php" du sous dossiers sds :

<?php


session_start();

header('Content-type: text/html; charset=utf-8');

require $_SERVER['DOCUMENT_ROOT']."/php/config.php"; 
require $_SERVER['DOCUMENT_ROOT']."/php/fonction.php"; 
require $_SERVER['DOCUMENT_ROOT']."/php/haut.php"; 

//connectMaBase()

//actualiser_session(); 

$titre = 'Mon compte'; 

/* 

if(isset($_SESSION['membre_id']))
{
	header('Location: '.ROOTPATH.'/index.php');
	exit();
} */




?>



// Le contenu de la page est présent à cet endroit là mais effacé
// pour alléger le message 


		
<?php
        if (isset ($_POST['submit'])){

            $membre_email=$_POST['membre_email'];
            $membre_nom=$_POST['membre_nom'];
            $membre_prenom=$_POST['membre_prenom'];
            $membre_codepostal=$_POST['membre_codepostal'];
            $membre_telephone=$_POST['membre_telephone'];
            $membre_datenaissance=$_POST['membre_datenaissance'];
            $membre_mdp=$_POST['membre_mdp'];
            $today = date("y-m-d");
            connectMaBase();
 

            $sql = 'INSERT INTO membres VALUES("","'.$membre_email.'","'.$membre_nom.'","'.$membre_prenom.'","'.$membre_codepostal.'","'.$membre_telephone.'","'.$membre_datenaissance.'","'.$membre_mdp.'","'.$today.'")'; 
 
      
            mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 

            mysql_close();
        }


        ?>


                <?php

require $_SERVER['DOCUMENT_ROOT']."/php/bas.php"; 
    

        ?>





Si vous avez une idée, je suis preneur.

Merci encore à tous !

Aurélien
0
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
Modifié par jordane45 le 4/08/2015 à 01:19
Bonsoir

Déjà .. tu peux remplacer le code :

    if(isset($titre) && trim($titre) != '')

    $titre = $titre.' : '.TITRESITE;
    else
    $titre = TITRESITE;


par :
$titre = !empty($titre) ? $titre.' : '.TITRESITE : TITRESITE;


Ensuite.... dans ton fichier index.php ... tu inclus ta page : "haut.php" ...; AVANT d'avoir défini ta variable $titre ... ce n'est pas logique....

et enfin.. pour tes imports de css et scripts JS ... tu peux leur mettre le chemin complet depuis la racine
c'est à dire par exemple :

 <link rel="stylesheet" href="<?php echo $_SERVER['DOCUMENT_ROOT'];?>/css/theme.css">




N'hésites pas non plus à ajouter l'instruction php suivante :
error_reporting(E_ALL);

Tout au début de tes pages .... cela permet d'afficher les erreurs PHP.


NB: Penses également à utiliser les outils de deboguage de ton navigateur internet ( perso.. j'utiliser le plugin FireBug pour Firefox ) afin de voir les éventuelles erreurs de code javascript et analyser mon css....
0