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 :

PHP5 & simplexml


Sujet :

Langage PHP

  1. #41
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    /!\ Si vous en êtes à inclure plusieurs fichiers XML pour une même page, il faudrait peut être se demander s'il y a lieu de séparer vos données de traduction en différents fichiers. Et il faudrait, de préférence, également veiller à ne pas avoir plusieurs fois la même traduction dans vos différents fichiers.
    comme j'avais dit avant, c'est pour eviter d'appeler des gros fichiers dont une grande partie ne servira a rien!
    je ne vais pas trop me casser la tete, j'ai finalement tout mis dans un seul fichier en.xml ou fr.xml, on est bientot en 2010 et j'estime que tout le monde a au moins une bonne adsl ce qui ne devrait pas gener au niveau du chargement du fichier xml

    Qu'il y a potentiellement une faille déjà suivant la réutilisation de vos paramètres GET (ici lang) car vous pourriez permettre à quelqu'un d'utiliser/afficher un fichier non prévu. Il faudrait introduire une vérification à ce niveau (ie que c'est un bien code et qu'on ne tente pas de remonter/utiliser votre arborescence ou à vous faire utiliser une source externe).

    L'usage de la méthode GET n'est pas adéquat : vous allez vous forcer à la retransmettre entre vos scripts sinon l'utilisateur va la perdre. Il faut en forcer la persistance (cookie et/ou session) lorsque l'une d'elle a été choisie. Eventuellement se baser sur les informations émises par le client (entête HTTP HTTP_ACCEPT_LANGUAGE) pour tenter de définir automatiquement une langue par défaut adaptée.
    merci pour le conseil, voila j'ai revu le script, qu'en pense tu? je suis sur qu'il y a encore des amelioration cote securite et code!!
    j'ai pense a HTTP_ACCEPT_LANGUAGE mais ca posera qlq problemes. par example pour les Finlandais c'est "fi" mais si j'ai pas une traduction fi, quoi faire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(!empty($_COOKIE['lang']) && is_file("inc/lang/".$_COOKIE['lang'].".xml")) $sxml = simplexml_load_file("inc/lang/".$_COOKIE['lang'].".xml");
    else
    {
    	// if we choose a language
    	if(!empty($_GET['lang'])) $lang = (is_file("inc/lang/".$_GET['lang'].".xml")) ? $_GET['lang'] : "en"; // english by default if no translated file found
    	else $lang = "en"; // language by default
     
    	$exp = time() + 3600 * 24 * 365;
    	setcookie("lang", $lang, $exp, "/new/");
     
    	$sxml = simplexml_load_file("inc/lang/".$lang.".xml");
    }
    Je ne suis pas sûr d'avoir compris votre méthode, mais il serait bien plus simple de représenter cette hiérarchie de la même manière (tableau imbriqué ici). De ce genre : ...
    c'est un peu ce principe que j'utilise mais votre code est meilleur j'utiliserai ce que vous m'avez filé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'presentation' => array(
            'a' => 'a.php',
            'b' => 'b.php',
        )
    j'ai pense que ca sert a rien de mettre le lien puisque c'est le meme que msgid sauf qu'il y a ".php" en plus, je rajouterai alors ".php" a l'aide du php. est ce une bonne idee?

    y a t il une difference entre array('a') et array("a") ??

  2. #42
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    je viens de me rendre compte qu'avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $menu = array(
        'accueil' => array( # msgid => entrées du sous-menu
            'boutique' => 'x.php', # msgid => lien
            'contact' => 'y.php',
            'newsletter' => 'z.php',
        ),
        'presentation' => array(
            'a' => 'a.php',
            'b' => 'b.php',
        )
    );
    je ne peux pas specipfier une url le menu principal (accueil, presentation), est ce que la solution la plus simple est de creer un autre tableau comme ci-apres?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $menu_lien = array('index.php', 'presentation/a.php');
    une autre petite question qui me travaille un peu:
    comme vous avez pu remarque j'ai 6 rubriques de menu (http://www.iifiir.org/new/index-home.php) je dois donc logiquement creer 6 dossiers, mais etant donné que la rubrique "accueil" et la page "page d'accueil" s'affichent par defaut, devrais garder toutes les pages de la rubrique "accueil" a la racine? ou plutot mettre un index.php a la racine qui redirige vers le dossier "accueil/accueil.php" ??

    Merci mille fois

  3. #43
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    comme j'avais dit avant, c'est pour eviter d'appeler des gros fichiers dont une grande partie ne servira a rien!
    je ne vais pas trop me casser la tete, j'ai finalement tout mis dans un seul fichier en.xml ou fr.xml, on est bientot en 2010 et j'estime que tout le monde a au moins une bonne adsl ce qui ne devrait pas gener au niveau du chargement du fichier xml
    Euh, c'est votre serveur (PHP) qui charge le fichier XML, pas le client.

    Citation Envoyé par redah75 Voir le message
    merci pour le conseil, voila j'ai revu le script, qu'en pense tu? je suis sur qu'il y a encore des amelioration cote securite et code!!
    C'est plus ou moins la même chose avec COOKIE, puisque le client peut les forger (comme toute entête HTTP).

    Citation Envoyé par redah75 Voir le message
    j'ai pense a HTTP_ACCEPT_LANGUAGE mais ca posera qlq problemes. par example pour les Finlandais c'est "fi" mais si j'ai pas une traduction fi, quoi faire?
    Il faut trouver un moyen de déterminer si la langue existe. Un simple is_[dir|file] ?
    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
    function acceptFromHttp() { # En PHP 5.3, il existe la fonction locale_accept_from_http()
        if (preg_match_all('/([[:alpha:]]{1,8}(?:-[[:alpha:]]{1,8})?)(?:;q=(1|0.\d))?/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches, PREG_SET_ORDER)) {
            $lrq = array();
            $qlr = array();
            foreach ($matches as $m) {
                if (isset($m[2])) {
                    $lrq[$m[1]] = $m[2];
                    $qlr[$m[2]] = $m[1];
                } else {
                    $lrq[$m[1]] = 1;
                    $qlr[1] = $m[1];
                }
            }
            $code = preg_split('/[^[:alpha:]]/', $qlr[max($lrq)], 2);
            return array_shift($code);
        } else {
            return FALSE;
        }
    }
     
    function checkCode($langue) {
        return preg_match('/^[[:alpha:]]+$/D', $langue) && is_file('inc/lang/' . $langue . '.xml');
    }
     
    if (isset($_REQUEST['langue'])) { # le changement de langue par le visiteur doit être prioritaire
        if (checkCode($_REQUEST['langue'])) {
            $langue = $_REQUEST['langue'];
            setcookie('langue', $langue, time() + 31536000);
        }
    } else {
        if (!isset($_COOKIE['langue'])) {
            $langue = acceptFromHttp();
            if (checkCode($langue)) {
                setcookie('langue', $langue, time() + 31536000);
            } else {
                $langue = 'en';
            }
        } else {
            $langue = 'en';
        }
    }
     
    $sxml = simplexml_load_file('inc/lang/' . $langue . '.xml');
    (non testé, c'est juste à titre représentatif)

    Citation Envoyé par redah75 Voir le message
    y a t il une difference entre array('a') et array("a") ??
    Apostrophes ou guillemets : lesquels choisir ?

    Citation Envoyé par redah75 Voir le message
    je viens de me rendre compte qu'avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $menu = array(
        'accueil' => array( # msgid => entrées du sous-menu
            'boutique' => 'x.php', # msgid => lien
            'contact' => 'y.php',
            'newsletter' => 'z.php',
        ),
        'presentation' => array(
            'a' => 'a.php',
            'b' => 'b.php',
        )
    );
    je ne peux pas specipfier une url le menu principal (accueil, presentation), est ce que la solution la plus simple est de creer un autre tableau comme ci-apres?
    Il suffit d'organiser le tableau différemment. Ça ne sert à rien de créer des tableaux satellites.

    Citation Envoyé par redah75 Voir le message
    comme vous avez pu remarque j'ai 6 rubriques de menu (http://www.iifiir.org/new/index-home.php) je dois donc logiquement creer 6 dossiers, mais etant donné que la rubrique "accueil" et la page "page d'accueil" s'affichent par defaut, devrais garder toutes les pages de la rubrique "accueil" a la racine? ou plutot mettre un index.php a la racine qui redirige vers le dossier "accueil/accueil.php" ??
    Pas sûr d'avoir compris, mais en quoi serait-il nécessaire de créer des sous-dossiers ? C'est purement une question d'organisation (apparence des URL et éventuellement de maintenance) et si changement de chemin il y a, il va ensuite falloir s'adapter avec PHP (inclusions notamment). Mais avec Apache, vous pouvez mettre en place une réécriture d'URL pour faire pointer une URL virtuelle (google friendly) sur une réelle.

  4. #44
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Euh, c'est votre serveur (PHP) qui charge le fichier XML, pas le client.
    hehe, je croyais que la connection internet du client jouait un role aussi!!

    C'est plus ou moins la même chose avec COOKIE, puisque le client peut les forger (comme toute entête HTTP).
    oh lala, je sens que je ne m'en sortirai jamais!!
    mais je me dis que dans tous les cas, meme si la variable COOKIE est trafiquée, je verifie bien si ca corresspond a un fichier de traduction, sinon je force $lang à "en"
    mais je vais etudier ton script demain

    Apostrophes ou guillemets : lesquels choisir ?
    je me rappelle avoir lu ce tuto, mais il y a encore qlq ambiguités:
    apparement $a = "a" ou 'a' c'est la meme chose
    il parle de $toto = "<a href=\"#\" class=\"test\" onclick=\"rien();\">$i</a>"; mais pas de $toto = "<a href='#' class='test' onclick='rien();'>$i</a>"; du coup, je vois pas trop la difference entre $toto = '<a href="#" class="test" onclick="rien();">'.$i.'</a>'; et $toto = "<a href='#' class='test' onclick='rien();'>$i</a>"; !!

    l suffit d'organiser le tableau différemment. Ça ne sert à rien de créer des tableaux satellites.
    mais comment???
    j'utilise un tableau comme ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $menu = array(
        'accueil' => array( # msgid => entrées du sous-menu
            'boutique'  # msgid => lien
            'contact',
            'newsletter'
        ),
        'presentation' => array(
            'a',
            'b'
        )
    );
    je ne vois pas trop comment je peux reorganiser le tableau mis a part en creer un autre qui correspond au tableau $menu et qui contient les liens...

    j'ai supprimé les liens du tableau sous-menu car j'ai estimé que ca ne sert a rien, puisque le lien est le meme que msgid sauf qu'il y a ".php" en plus, je rajouterai alors ".php" a l'aide du php. est ce une bonne idee?

    Pas sûr d'avoir compris, mais en quoi serait-il nécessaire de créer des sous-dossiers ? C'est purement une question d'organisation (apparence des URL et éventuellement de maintenance) et si changement de chemin il y a, il va ensuite falloir s'adapter avec PHP (inclusions notamment). Mais avec Apache, vous pouvez mettre en place une réécriture d'URL pour faire pointer une URL virtuelle (google friendly) sur une réelle.
    dans chaque rubrique (Accueil, conferences, ...) j'ai a peu pres 6 pages. vous ne pensez pas que ca serait mieux de creer un dossier par rubrique?
    je vais utiliser l'URL Rewriting mais principalement pour les langues: site.com/en/page.php au lieu de site.com/page.php?lang=en

    si vous me dites qu'il faut creer un dossier par rubrique, le probleme est que la page d'accueil va etre place dans un dossier, donc elle ne s'affichera pas par defaut puisqu'elle ne sera pas a la racine

  5. #45
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    hehe, je croyais que la connection internet du client jouait un role aussi!!
    Ben, non, le serveur renverra uniquement le code HTML généré par le script PHP. Ça ne dépendra donc que de la taille de ce que vous générez et de toutes les ressources liées à cette page (images, javascript, ...).

    Citation Envoyé par redah75 Voir le message
    je me rappelle avoir lu ce tuto, mais il y a encore qlq ambiguités:
    apparement $a = "a" ou 'a' c'est la meme chose
    il parle de $toto = "<a href=\"#\" class=\"test\" onclick=\"rien();\">$i</a>"; mais pas de $toto = "<a href='#' class='test' onclick='rien();'>$i</a>"; du coup, je vois pas trop la difference entre $toto = '<a href="#" class="test" onclick="rien();">'.$i.'</a>'; et $toto = "<a href='#' class='test' onclick='rien();'>$i</a>"; !!
    C'est relativement simple : dans une chaîne délimitée par des ", les variables sont interpolées (ie remplacées par leurs valeurs) et que les caractères échappés (tels \t, \n, ...) sont reconnus alors qu'avec des ' ce n'est pas le cas.

    Essayez, ce genre de code (en regardant la source) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $a = 3;
    echo '$a vaut :\n3';
    echo '<hr />';
    echo "\$a vaut :\n$a";
    (voir aussi la doc)

    Citation Envoyé par redah75 Voir le message
    dans chaque rubrique (Accueil, conferences, ...) j'ai a peu pres 6 pages. vous ne pensez pas que ca serait mieux de creer un dossier par rubrique?
    je vais utiliser l'URL Rewriting mais principalement pour les langues: site.com/en/page.php au lieu de site.com/page.php?lang=en

    si vous me dites qu'il faut creer un dossier par rubrique, le probleme est que la page d'accueil va etre place dans un dossier, donc elle ne s'affichera pas par defaut puisqu'elle ne sera pas a la racine
    ... donc cette séparation n'est pas justifiée. Et gare à la réécriture pour gérer la langue en la réémettant à chaque requête, vous pouvez introduire une boucle infinie et il faudra veiller à ne pas aller contre le choix de l'utilisateur.

    Pour le tableau :
    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
    $menu = array(
        array(
            'accueil' => 'x.php',
            array(
                'boutique'
                'contact',
                'newsletter',
            )
        ),
        array(
            'presentation' => 'y.php',
            array(
                'a',
                'b',
            )
        )
    );

  6. #46
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    ... donc cette séparation n'est pas justifiée. Et gare à la réécriture pour gérer la langue en la réémettant à chaque requête, vous pouvez introduire une boucle infinie et il faudra veiller à ne pas aller contre le choix de l'utilisateur.
    vous personnellement ca ne vous ennuie pas d'avoir une 50ene de fichiers web dans un seul dossier qui est la racine (www)?

    Pour le tableau :
    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
    $menu = array(
        array(
            'accueil' => 'x.php',
            array(
                'boutique'
                'contact',
                'newsletter',
            )
        ),
        array(
            'presentation' => 'y.php',
            array(
                'a',
                'b',
            )
        )
    );
    hehe là on obtient des "tableaux satellites" que vous vouliez eviter

    pour afficher le menu, est il mieux de mettre le code html ou xhtml dans un fichier .php puis l'inclure a l'endroit precis du menu. ou plutot mettre le code html dans une fonction et puis appeler la fonction où on veut afficher le menu ??

  7. #47
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    vous personnellement ca ne vous ennuie pas d'avoir une 50ene de fichiers web dans un seul dossier qui est la racine (www)?
    Ah, oui, 50. C'est simplement une question d'organisation avec ce que ça implique (URL et gestion des chemins en HTML/PHP), comme je l'ai dit plus tôt.

    Citation Envoyé par redah75 Voir le message
    hehe là on obtient des "tableaux satellites" que vous vouliez eviter
    Non, parce qu'il n'y en a qu'un à gérer et non plusieurs comme vous le proposiez.

    Citation Envoyé par redah75 Voir le message
    pour afficher le menu, est il mieux de mettre le code html ou xhtml dans un fichier .php puis l'inclure a l'endroit precis du menu. ou plutot mettre le code html dans une fonction et puis appeler la fonction où on veut afficher le menu ??
    Je pencherais plutôt pour la fonction, elle permettra d'isoler cette partie du code.

  8. #48
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Ah, oui, 50. C'est simplement une question d'organisation avec ce que ça implique (URL et gestion des chemins en HTML/PHP), comme je l'ai dit plus tôt.
    umm, j'ai pas bien compris votre reponse, je peux donc avoir plus de 50 fichiers a la racine???

    Je pencherais plutôt pour la fonction, elle permettra d'isoler cette partie du code.
    là encore j'ai pas bien compris!! que voulez vous dire par "isoler cette partie du code"?

    une autre petite question nouvelle
    j'ai un dossier qui contient que des fichiers dinclusion et des sous dossiers. afin d'interdire l'acces a ce dossier est il mieux de:
    - placer un index.php dans chaque dossier avec une redirection header() ?
    - un .htaccess dans le dossier en question?
    - un .htaccess dans le dossier racine qui contiendra la redirection, et le code pour l'URL rewriting... ?

    Merci

  9. #49
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    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
    function acceptFromHttp() { # En PHP 5.3, il existe la fonction locale_accept_from_http()
        if (preg_match_all('/([[:alpha:]]{1,8}(?:-[[:alpha:]]{1,8})?)(?:;q=(1|0.\d))?/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches, PREG_SET_ORDER)) {
            $lrq = array();
            $qlr = array();
            foreach ($matches as $m) {
                if (isset($m[2])) {
                    $lrq[$m[1]] = $m[2];
                    $qlr[$m[2]] = $m[1];
                } else {
                    $lrq[$m[1]] = 1;
                    $qlr[1] = $m[1];
                }
            }
            $code = preg_split('/[^[:alpha:]]/', $qlr[max($lrq)], 2);
            return array_shift($code);
        } else {
            return FALSE;
        }
    }
     
    function checkCode($langue) {
        return preg_match('/^[[:alpha:]]+$/D', $langue) && is_file('inc/lang/' . $langue . '.xml');
    }
     
    if (isset($_REQUEST['langue'])) { # le changement de langue par le visiteur doit être prioritaire
        if (checkCode($_REQUEST['langue'])) {
            $langue = $_REQUEST['langue'];
            setcookie('langue', $langue, time() + 31536000);
        }
    } else {
        if (!isset($_COOKIE['langue'])) {
            $langue = acceptFromHttp();
            if (checkCode($langue)) {
                setcookie('langue', $langue, time() + 31536000);
            } else {
                $langue = 'en';
            }
        } else {
            $langue = 'en';
        }
    }
     
    $sxml = simplexml_load_file('inc/lang/' . $langue . '.xml');
    je suis entrain d'adapter et simplifier ce code et je me pose qlq questions:

    1- pourquoi utiliser acceptFromHttp mais pas uniquement $_SERVER['HTTP_ACCEPT_LANGUAGE'] pour ne pas compliquer les choses?
    je viens de verifier la version PHP et on est en 5.2.5 (

    2- preg_match('/^[[:alpha:]]+$/D', $langue): le D correspond a quoi?
    pourquoi ne pas mettre simplement "^[:alpha:]{2}$" ??

    3- pourquoi vous utilisez $_REQUEST['langue'] et non pas $_GET['langue'] ?

    Merci

  10. #50
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    umm, j'ai pas bien compris votre reponse, je peux donc avoir plus de 50 fichiers a la racine???
    Les limites sont celles de votre système de fichiers.

    Citation Envoyé par redah75 Voir le message
    là encore j'ai pas bien compris!! que voulez vous dire par "isoler cette partie du code"?
    Qu'avec une simple inclusion, les variables que vous utiliseriez pour générer votre menu resteraient inutilement en mémoire donc que vous pourriez éventuellement les réutiliser sans le vouloir voir en écraser d'autres qui sont "déclarées" avant.

    Citation Envoyé par redah75 Voir le message
    j'ai un dossier qui contient que des fichiers dinclusion et des sous dossiers. afin d'interdire l'acces a ce dossier est il mieux de:
    1) placer un index.php dans chaque dossier avec une redirection header() ?
    2) un .htaccess dans le dossier en question?
    3) un .htaccess dans le dossier racine qui contiendra la redirection, et le code pour l'URL rewriting... ?
    1) en quoi ça en empêche l'appel ? Donc non.
    2) Oui avec :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Deny from all
    #Satisfy All
    3) Pourquoi du rewriting ici si le but justement est qu'ils ne soient jamais appelés ? (bien qu'on puisse un peu tout faire avec la réécriture avec Apache et une version >= 2.0)
    Mais le mieux, c'est de placer tout ce qui est "librairie", en dehors du DocumentRoot.

    Citation Envoyé par redah75 Voir le message
    1- pourquoi utiliser acceptFromHttp mais pas uniquement $_SERVER['HTTP_ACCEPT_LANGUAGE'] pour ne pas compliquer les choses?
    je viens de verifier la version PHP et on est en 5.2.5 (
    Vous avez regardé la valeur de cette entête ? Ainsi que sa spécification ? (RFC HTTP 1.1)

    Citation Envoyé par redah75 Voir le message
    2- preg_match('/^[[:alpha:]]+$/D', $langue): le D correspond a quoi?
    pourquoi ne pas mettre simplement "^[:alpha:]{2}$" ??
    Citation Envoyé par Documentation de PHP
    D (PCRE_DOLLAR_ENDONLY)
    Avec cette option, le métacaractère $ ne sera valable qu'à la fin de la chaîne sujet. Sans cette option, $ est aussi valable avant une nouvelle ligne, si cette dernière est le dernier caractère de la chaîne. Cette option est ignorée si l'option m est activée.
    D'une votre masque est incorrect, me semble-t-il, avec PCRE (les classes nommées doivent être doublement encadrées), de deux, les codes ne sont pas forcément composés que de deux lettres (enfin, tout dépend comment on nomme ses locales - il n'y a pas que l'alpha-2). Mais ce n'est qu'un détail, le but réel de l'expression régulière est de ne pas permettre la navigation dans votre arborescence.

    Citation Envoyé par redah75 Voir le message
    3- pourquoi vous utilisez $_REQUEST['langue'] et non pas $_GET['langue'] ?
    C'était pour inclure la méthode POST mais vu qu'elle inclut COOKIE, c'est une mauvaise idée, en effet.

  11. #51
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Les limites sont celles de votre système de fichiers.
    OK, merci, je vais reflechir un peu a ca! chaque solution a ses avantages et inconvenients...
    si par example j'ai le dossier "presentation" qui contient 3 fichiers: a.php, b.php et c.php et que quelqu'un va a l'adresse suivante: monsite.com/presentation, la liste des 3 fichiers sera affichée puisqu'il y a pas de index.php, comment contourner ce probleme?

    Qu'avec une simple inclusion, les variables que vous utiliseriez pour générer votre menu resteraient inutilement en mémoire donc que vous pourriez éventuellement les réutiliser sans le vouloir voir en écraser d'autres qui sont "déclarées" avant.
    d'accord, merci beaucoup pour l'explication

    3) Pourquoi du rewriting ici si le but justement est qu'ils ne soient jamais appelés ? (bien qu'on puisse un peu tout faire avec la réécriture avec Apache et une version >= 2.0)
    ici je parlais du URL rewriting pour transformer site.com/fichier.php?lang=fr en site.com/fr/fichier.php
    je voulais donc dire que je mets un seul fichier .htaccess a la racine du site web qui contiendra a la fois les recritures des url, l'interdiction d'acces a un dossier...
    mais je pense que la solution 2) reste la meilleure, non?

    Mais le mieux, c'est de placer tout ce qui est "librairie", en dehors du DocumentRoot.
    ah bon? voici l'arborescence que j'ai actuellement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    www
    -->img // dossier contient les images
    -->inc // dossier contient tous les fichiers qui seront inclus (jquery, css, jscript.js, menu.php, ...)
    fichiers web (index.php, ...)
    faut il revoir cette structure?

    Vous avez regardé la valeur de cette entête ? Ainsi que sa spécification ? (RFC HTTP 1.1)
    oui j'ai vu une liste sur ce site: http://www.henri-ruch.ch/ASP/info_vi...ttp_langue.asp
    j'ai revu ton code et mis celui la:
    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
    function checkCode($lang) {
        return preg_match('/^[[:alpha:]]+$/D', $lang) && is_file('inc/lang/'.$lang.'.xml');
    }
     
    if(isset($_REQUEST['lang'])) # le changement de langue par le visiteur doit être prioritaire
    {
    	$lang = (checkCode($_REQUEST['lang'])) ? $_REQUEST['lang'] : 'en';
     
    	setcookie('lang', $lang, time() + 31536000, '/new/'); // 1 year
    }
    else
    {
    	if(isset($_COOKIE['lang'])) $lang = (checkCode($_COOKIE['lang'])) ? $_COOKIE['lang'] : 'en';
    	else
    	{
    		list($lang, $country) = explode('-', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    		if(checkCode($lang)) setcookie('lang', $lang, time() + 31536000, '/new/');
    		else $lang = 'en';
    	}
    }
     
    $sxml = simplexml_load_file('inc/lang/'.$lang.'.xml');
    j'ai enleve la fonction acceptFromHttp() pour reduire et allege le code, j'estime que c'est pas la peine d'aller trop loin, si la langue n'est trouvé, on affecte "en" par defaut!
    j'espere que c'est bon cette fois ci

  12. #52
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    si par example j'ai le dossier "presentation" qui contient 3 fichiers: a.php, b.php et c.php et que quelqu'un va a l'adresse suivante: monsite.com/presentation, la liste des 3 fichiers sera affichée puisqu'il y a pas de index.php, comment contourner ce probleme?
    C'est possible par réécriture ou une simple redéfinition de DirectoryIndex. C'est probablement le plus "simple" et "propre".

    Citation Envoyé par redah75 Voir le message
    ici je parlais du URL rewriting pour transformer site.com/fichier.php?lang=fr en site.com/fr/fichier.php
    je voulais donc dire que je mets un seul fichier .htaccess a la racine du site web qui contiendra a la fois les recritures des url, l'interdiction d'acces a un dossier...
    Il y a plusieurs solutions ici :
    • tout gérer par réécriture depuis un fichier .htaccess situé à la racine : vos vraies règles de réécriture et celles d'interdiction :
      Code X : Sélectionner tout - Visualiser dans une fenêtre à part
      RewriteRule ^inc/ - [F,L]
    • deux fichiers .htaccess : les règles de réécriture à la racine et l'interdiction dans le sous-répertoire même (cf ce que j'ai donné dans mon précédent post)

    La seconde étant moins dépendante du module de réécriture.

    Citation Envoyé par redah75 Voir le message
    ah bon? voici l'arborescence que j'ai actuellement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    www
    -->img // dossier contient les images
    -->inc // dossier contient tous les fichiers qui seront inclus (jquery, css, jscript.js, menu.php, ...)
    fichiers web (index.php, ...)
    faut il revoir cette structure?
    Idéalement, il faudrait une structure comme celle-ci :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    inc/
    www/ # Qui correspond au DocumentRoot
        img/
    Mais tous les hébergeurs ne le permettent pas (beaucoup vous chrootent en FTP directement sur votre DocumentRoot ). A défaut, pas le choix, il faut forcément passer par un htaccess comme proposé juste au-dessus.

    [J'ai peut être mal lu la spécification HTTP 1.1 mais il ne me semble pas indiqué que les langues soient spécifiées selon un quelconque ordre (d'où le paramètre q). Bien qu'en général elles le soient par ordre décroissant.]

  13. #53
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    'est possible par réécriture ou une simple redéfinition de DirectoryIndex. C'est probablement le plus "simple" et "propre".
    oui, je vais le faire avec une redefinition du DirectoryIndex. c'est ce que j'avais en tete mais je me disais qu'il y a peut etre d'autres meilleurs moyen.
    mais la question reste, est ce que je dois mettre un .htaccess dans chaque repertoire ou depuis un .htaccess a la racine (www) je peux dire que tel repertoire a tel DirectoryIndex ?
    j'ai vu qu'on peut mettre Options -Indexes a la racine, je pense qu'avec ca l'utilisateur sera rejeté meme si un index.php/htm existe mais qu'il n'a pas ete specifié dans l'url. qu'en pensez vous?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^inc/ - [F,L]
    ok, je vais tester

    Idéalement, il faudrait une structure comme celle-ci :
    Code X :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    inc/
    www/ # Qui correspond au DocumentRoot
        img/
    je suis chez ovh et je pense pas qu'ils permettent ou approuvent de mettre d'autres dossiers au meme niveau que le www. c'est pas grave, je garde mon arborescence

    [J'ai peut être mal lu la spécification HTTP 1.1 mais il ne me semble pas indiqué que les langues soient spécifiées selon un quelconque ordre (d'où le paramètre q). Bien qu'en général elles le soient par ordre décroissant.]
    j'en déduis que le code que je vous ai envoyé est bon, ou ai je mal compris??
    ca veut dire quoi le D de /^[[:alpha:]]+$/D

  14. #54
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    mais la question reste, est ce que je dois mettre un .htaccess dans chaque repertoire ou depuis un .htaccess a la racine (www) je peux dire que tel repertoire a tel DirectoryIndex ?
    Un par répertoire sinon n'a aucun sens de redéfinir un DirectoryIndex. Autant, sinon, utiliser une valeur par défaut (index.php).

    Citation Envoyé par redah75 Voir le message
    j'ai vu qu'on peut mettre Options -Indexes a la racine, je pense qu'avec ca l'utilisateur sera rejeté meme si un index.php/htm existe mais qu'il n'a pas ete specifié dans l'url. qu'en pensez vous?
    Vous ne supprimez que le listing du répertoire par Apache lorsqu'il n'y a pas de fichier d'index. Vous n'interdiriez en aucun cas quelqu'un de consulter vos fichiers (je parle en général, pas spécifiquement de scripts PHP) !

    Citation Envoyé par redah75 Voir le message
    j'en déduis que le code que je vous ai envoyé est bon, ou ai je mal compris??
    Pas dans tous les cas, si on veut être rigoureux (la première dans l'entête n'est pas nécessairement la préférée).

    Citation Envoyé par redah75 Voir le message
    ca veut dire quoi le D de /^[[:alpha:]]+$/D
    J'ai cité la documentation plus haut à ce sujet (#50).

  15. #55
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    merci pour ces precisions...

    je continuerai le travail lundi et j'espere en finir avec mes questions

    en attendant, je vous souhaite un excellent week end.

    je ne vous remercierai jamais assez pour tout ce que vous m'avez apporté!!

  16. #56
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonjour,
    j'ai un peu avancé et j'aimerais juste avoir votre avis sur certain points si ca ne vous ennuie pas!

    1- voici ce que j'ai fait pour le script de detection de la langue:
    fichier language.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
    <?php
    function check_lang($lang)
    {
    	return preg_match('/^[[:alpha:]]+$/D', $lang) && is_file($_SERVER['DOCUMENT_ROOT'].'/new/inc/lang/'.$lang.'.xml');
    }
     
    if(isset($_GET['lang'])) // if the user changes the language
    {
    	$lang = (check_lang($_GET['lang'])) ? $_GET['lang'] : 'en';
    	setcookie('lang', $lang, time() + 31536000, '/new/'); // 1 year
    }
    else
    {
    	if(isset($_COOKIE['lang'])) $lang = (check_lang($_COOKIE['lang'])) ? $_COOKIE['lang'] : 'en';
    	else
    	{
    		list($lang, $country) = explode('-', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    		if(check_lang($lang)) setcookie('lang', $lang, time() + 31536000, '/new/');
    		else $lang = 'en';
    	}
    }
     
    $sxml = simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/new/inc/lang/'.$lang.'.xml');
    et puis tout au debut de chaque page, je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    include_once '../inc/language.php';
    include_once '../inc/header.php';
    ?>
    je parlais dans le 2e point du header.php
    mes questions sont les suivantes:
    - est ce que l'integration est bonne ou voyez vous une autre facon de le faire?
    - est il conseille de mettre un $_SERVER['DOCUMENT_ROOT'] pour les include_once?

    2- pour gere le menu; le header en general y compris le champs de texte pour la recherche (http://www.iifiir.org/new/home/index.php), voici ce que je fais:
    fichier header.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
    <?php
     
    function display_header($sxml)
    {
    	$page_active = basename($_SERVER['PHP_SELF']); // current page
    	$folder_active = str_replace("-", "_", array_pop(explode("/", dirname($_SERVER['PHP_SELF'])))); // current folder
     
    	/******* constuction of the menu and sub-menu *********/
    	$menu = array(
    		'home' => array( // element id => sub-menu element array
    			'index',
    			'contact_us',
    			'site_map',
    			'faq'
    		),
    		'about_us' => array(
    			'mission',
    			'statutory_bodies',
    			'member_countries',
    			'iir_members',
    			'commissions',
    			'working_parties'
    		),
    		...
    	);
     
    	$header = "<img src='/new/img/logo_printable.png' id='logo_printable' width='513' height='60' alt='".$sxml->name_short." - ".$sxml->name."'>\n";
    	$header .= "<ul id='lang'>\n";
    	$header .= "	<li><h2>".$sxml->french_fr."</h2></li>\n";
    	$header .= "	<li><h3><a href='javascript:;' title='".$sxml->english_site."' class='link_green'>".$sxml->english_en."</a></h3></li>\n";
    	$header .= "</ul>\n";
     
    	$header .= "<div id='menu1'>";
    	$header .= "<ul id='menu_main'>\n";
    		foreach($menu as $k => $val)
    		{
    			$cls = ($k == $folder_active) ? "class='active'" : "";
    			$header .= "	<li $cls><a href='/new/".str_replace("_", "-", $k)."/".str_replace("_", "-", $val[0]).".php'>".$sxml->$k."</a></li>\n";
    		}		
    	$header .= "</ul>\n";
     
    	$header .= "<div class='header_search'><form name='form_search' action='' method='post'><input name='kw' type='text' maxlength='30' value='".$sxml->quick_search."' class='search'></form></div>\n";
    	$header .= "</div>\n";
     
    	$header .= "<div id='menu2'>";
    	$header .= "<ul id='menu_sub'>\n";	
    		foreach($menu[$folder_active] as $val)
    		{
    			$header .= "	<li><a href='/new/".str_replace("_", "-", $k)."/".str_replace("_", "-", $val).".php'>".$sxml->$val."</a></li>\n";
    		}	
    	$header .= "</ul>\n";
    	$header .= "</div>\n";
     
    	return $header;
    }
    puis dans chaque page j'inclus le fichier header.php comme decrit dans la question 1 et puis a l'endroit où le header doit apparaitre, je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="header"><?php echo display_header($sxml); ?></div>
    - est ce que ca vous parait bon ou encore une fois, il y a une meilleure facon de le faire?
    - vous allez surement vous demander pourquoi jutilise le str_replace() c'est parce que mes dossiers et pages web contiennent le "-" et les variables PHP le "_", il parait que le tiret "-" est mieux reconnu pour le referencement, confirmez vous ceci?

    3- je placerai le contenu de la colonne droite dans un fichier externe. est il mieux de mettre le meme code dans le fichier externe et puis apres je procede a une simple includion ma page web a l'endroit où je veux afficher cette colonne droite? ou plutot mettre le code dans une variable php et puis faire un simple echo. exemple:
    fichier colonne-droite.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $colonne_droite = "<div>contenu de la colonne droite.....</div>"
    puis dans chaque page web:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include_once '../inc/language.php';
    ...
    <div>echo $colonne_droite;</div>
    Merci infiniment

  17. #57
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    - est ce que l'integration est bonne ou voyez vous une autre facon de le faire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($lang, $country) = explode('-', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    Que ce code est loin d'être optimal mais bon, avec la définition d'une langue par défaut, ce n'est pas grave.

    Citation Envoyé par redah75 Voir le message
    - est il conseille de mettre un $_SERVER['DOCUMENT_ROOT'] pour les include_once?
    Déconseillé, n'étant pas valable en toute circonstance. A moins d'être assuré d'avoir toujours la main sur son environnement (de développement à production).

    Citation Envoyé par redah75 Voir le message
    - vous allez surement vous demander pourquoi jutilise le str_replace() c'est parce que mes dossiers et pages web contiennent le "-" et les variables PHP le "_", il parait que le tiret "-" est mieux reconnu pour le referencement, confirmez vous ceci?
    Oui.

    Citation Envoyé par redah75 Voir le message
    3- je placerai le contenu de la colonne droite dans un fichier externe. est il mieux de mettre le meme code dans le fichier externe et puis apres je procede a une simple includion ma page web a l'endroit où je veux afficher cette colonne droite? ou plutot mettre le code dans une variable php et puis faire un simple echo. exemple:
    fichier colonne-droite.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $colonne_droite = "<div>contenu de la colonne droite.....</div>"
    puis dans chaque page web:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include_once '../inc/language.php';
    ...
    <div>echo $colonne_droite;</div>
    Une inclusion, je dirais.

    Pour le code, ça a l'air correct.

  18. #58
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Déconseillé, n'étant pas valable en toute circonstance. A moins d'être assuré d'avoir toujours la main sur son environnement (de développement à production).
    OK merci, je vais lire ce post demain!

    Une inclusion, je dirais.
    puisque pour la colonne droite c'est mieux de faire une inclusion, est ce que pour le header son affichage reste mieux avec la fonction display_header($sxml) ??

    une derniere question svp, on en a deja parle mais là c'est plus concret!!
    j'ai creer 6 sous-dossiers dans le dossier www. chacun de ces 6 dossiers correspond aux rubriques du site web:
    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
    www
    	home
    		index.php (page d accueil)
    		contact.php
    		faq.php
    	presentation
    		mission.php
    		organes-statutaires.php
    		...
    	conferences
    		agenda.php
    		...
    	publications
    		boutique.php
    		...
    	partenaires
    		...
    	img (toutes les images)
    	inc (tous les fichiers d inclusion)
    deja, est ce que vous approuvez cette organisation? je sais que vous m'avez dit qu'il serai mieux de placcer le dossier "inc" en dehors du "www" mais ca risque de posser probleme avec l'hebergeur...

    sinon j'ai 2 problemes:
    1- je n'ai pas de fichier index dans la racine (www) est ce que je cree un index.php, ou un .htaccess? ou deplacer tous les fichiers contenus dans le dossier "home" a la racine??

    2- je n'ai pas de fichiers index pour les autres sous-dossiers (presentation, conferences, ...), dois-je placer dans chaque dossier un index.php avec une redirection header(Location??

    Merci merci merci mille fois.

  19. #59
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par redah75 Voir le message
    puisque pour la colonne droite c'est mieux de faire une inclusion, est ce que pour le header son affichage reste mieux avec la fonction display_header($sxml) ??
    Selon moi, oui. Mais il n'y a jamais qu'une façon de faire : la meilleure dépend du but recherché (performances, facilité à maintenir notamment).

    Citation Envoyé par redah75 Voir le message
    1- je n'ai pas de fichier index dans la racine (www) est ce que je cree un index.php, ou un .htaccess? ou deplacer tous les fichiers contenus dans le dossier "home" a la racine??
    Ça ne change rien ou presque. Il faut voir par rapport à ses redirections/réécriture (si on en met une en place). On peut faire un peu n'importe quoi avec les .htaccess (le meilleur comme le pire), ce qui importe c'est l'URL finale (visible) et, ça, c'est à vous de décider.

    Citation Envoyé par redah75 Voir le message
    2- je n'ai pas de fichiers index pour les autres sous-dossiers (presentation, conferences, ...), dois-je placer dans chaque dossier un index.php avec une redirection header(Location??
    Une redirection par index.php, ça ne sert pas à grand chose et c'est des fichiers en plus à maintenir (d'autant plus que c'est visible côté client).

  20. #60
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Vous me repondez a 23h35, vous repondez aux messages si tard que ca???
    eh ben, je vous en remercie enormement!!

    Selon moi, oui. Mais il n'y a jamais qu'une façon de faire : la meilleure dépend du but recherché (performances, facilité à maintenir notamment).
    justement c'est par rapport au perf, securite et maintenance que j'ai pose la question. dans mon cas, quelles sont les avantages de le faire via la fonction display_header($sxml)???
    suis-je oblige de passe $sxml en parametre??

    Ça ne change rien ou presque. Il faut voir par rapport à ses redirections/réécriture (si on en met une en place). On peut faire un peu n'importe quoi avec les .htaccess (le meilleur comme le pire), ce qui importe c'est l'URL finale (visible) et, ça, c'est à vous de décider.
    a ma place, que feriez vous?

    Une redirection par index.php, ça ne sert pas à grand chose et c'est des fichiers en plus à maintenir (d'autant plus que c'est visible côté client).
    quelle solution alors me preconisez vous?

    bonne nuit

Discussions similaires

  1. [SimpleXML] Configuration de php5 pour le XML
    Par hom dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/07/2006, 20h52
  2. [PHP5/simpleXML] Gros Fichiers
    Par vanilla dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 26/06/2006, 20h40
  3. [SimpleXML] Problème PHP5/XML pour des affichages particuliers
    Par vanilla dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 20/04/2006, 14h22
  4. Réponses: 3
    Dernier message: 23/08/2004, 18h49

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