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. #61
    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
    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)???
    C'est un bon début pour rester dans du PHP de base (sans aller jusqu'à POO/MVC/templates par exemple).

    Citation Envoyé par redah75 Voir le message
    suis-je oblige de passe $sxml en parametre??
    Obligé, non (cf les premiers posts où j'évoquais global/$GLOBALS) mais c'est plus clair ainsi et moins propice à erreurs.

    Citation Envoyé par redah75 Voir le message
    a ma place, que feriez vous?
    Je ne peux pas répondre à votre place. Quelle URL voulez-vous utiliser/montrer à vos utilisateurs ? (/x.php ou /home/x.php)
    • Si vous faites une redirection : /home/ (après redirection de /)
    • Si vous les déplacez : /
    • [Par réécriture : / (vu, mais /home/ réellement servi)]

    [Mais une réécriture n'a de sens que si vos liens y sont conformes (sinon niveau référencement vos pages pourront être vues comme étant en duplicate content)]

    Citation Envoyé par redah75 Voir le message
    quelle solution alors me preconisez vous?
    Par htaccess, plutôt, donc (et vous pourrez utiliser redirection comme réécriture).

  2. #62
    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).
    umm, le dirname(__FILE__) a l'air interessant mais ca risque de poser qlq problemes de chemin, je maintiens l'utilisation de $_SERVER['DOCUMENT_ROOT'] qui me parait mieux a gerer...

    Obligé, non (cf les premiers posts où j'évoquais global/$GLOBALS) mais c'est plus clair ainsi et moins propice à erreurs.
    OK merci

    Je ne peux pas répondre à votre place. Quelle URL voulez-vous utiliser/montrer à vos utilisateurs ? (/x.php ou /home/x.php)
    -Si vous faites une redirection : /home/ (après redirection de /)
    -Si vous les déplacez : /
    -[Par réécriture : / (vu, mais /home/ réellement servi)]
    [Mais une réécriture n'a de sens que si vos liens y sont conformes (sinon niveau référencement vos pages pourront être vues comme étant en duplicate content)]
    j'utiliserai ou monterai /home/x.php comme URL, il se peut que par lasuite lorsque j'aurai une 3e ou 4e langue que je propose le choix de la langue depuis index.php a la racine (www)
    j'avoue ne pas bien comprendre les options que vous m'avez citees!!

    Par htaccess, plutôt, donc (et vous pourrez utiliser redirection comme réécriture).
    donc, si j'ai bien compris et aussi pour recapituler:
    je mets un .htaccess a la racine du site pour rediriger vers /home/index.php (page d'accueil du site)
    et encore d'autres .htaccess dans chaque sous-dossier (presentaton, conferences, ...)
    ou sinon UN SEUL .htaccess a la racine qui gerera tout?
    "Redirect /presentation /presentation/mission.php" est ce qu'il faut mettre dans le .htaccess? je la sens pas trop cette ligne de code ) ou plutot tou simplement DirectoryIndex mission.php ??

  3. #63
    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
    Un seul htaccess, le but c'est de se simplifier la vie, pas le contraire.

    Pour votre redirection, ça va surement boucler là. Ce serait plutôt :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RedirectMatch permanent ^/$ /home/
    RedirectMatch permanent ^/presentation/$ /presentation/mission.php
    RedirectMatch permanent ^/conferences/$ /conferences/agenda.php
    # ...
    (non testé)

  4. #64
    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
    Cool, merci beaucoup, je vais tester tout de suite et vous tiendrai au courant

    entre temps j'ai rencontré un petit souci concernant la protection du dossier "inc"
    - j'ai place comme vous m'avez dit précédemment "RewriteRule ^inc/ - [F,L]" a la racine du site mais ca ne marche pas. j'ai tjrs acces au dossier
    - avec "Deny from all" ca marche masi il bloque l'acces au fichier css et dont la page web ne s'affiche pas correctement.
    - avec "Options -Indexes" ca marche presque bien, sauf que si on connait le chemin d'un fichier de traduction, on peut y acceder directement (site.com/inc/lang.fr.xml)
    que dois je faire???
    quelque soit la solution que vous me donnerez, est il possible de rediriger vers une page au lieu d'afficher le message d'erreur 403 Forbiden?

    Merci

  5. #65
    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
    RedirectMatch permanent ^/$ /home/
    RedirectMatch permanent ^/presentation/$ /presentation/mission.php
    RedirectMatch permanent ^/conferences/$ /conferences/agenda.php
    # ...
    ca ne marche pas du tout!! (
    j'ai aussi teste avec des RedirectPermanent mais aucun resultat!!

    est ce que c'est normal que meme un simple redirection ne fonctionne pas?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RedirectPermanent /about-us/ http://www.iifiir.org/new/about-us/mission.php
    sinon pour tester si le .htaccess est bien pris en charge, j'ai mis DirectoryIndex mission.php et c'a l'air de bien marcher. a la rigueur j'opterai bien pour cette solution mais je prefere avoir le moins possible de .htaccess et tout gerer depuis la racine comme vous avez dit!

  6. #66
    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
    Pour le inc/, oui, vous pouvez mettre en place une redirection.

    Pour les redirections, étant donné que vous semblez travailler sur des sous-URL temporaires (/new/), il faut adapter tous les chemins en conséquence. Sinon ça ne fonctionnera pas, il n'y aura jamais correspondance (ça aurait été mieux de travailler dans un environnement plus isolé - un VH à part au moins - dont le basculement aurait été bien plus rapide).

  7. #67
    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
    Pour le inc/, oui, vous pouvez mettre en place une redirection.
    et comment faire restreindre l'acces a ce repertoire tout en epargnant le sous-repertoire css??

    Pour les redirections, étant donné que vous semblez travailler sur des sous-URL temporaires (/new/), il faut adapter tous les chemins en conséquence. Sinon ça ne fonctionnera pas, il n'y aura jamais correspondance (ça aurait été mieux de travailler dans un environnement plus isolé - un VH à part au moins - dont le basculement aurait été bien plus rapide).
    je pensais pas que le dossier /new/ allait etre une gêne. je me suis dit qu'une fois le site fini, je supprimerai de maniere automatique les "/new" de toutes les pages web...
    que devrais je faire alors pour cette histoire de redirection?

    est il possible qu'apartir d'un .htaccess a la racine de dire:
    le dossier x a pour DirectoryIndex a.php ??

  8. #68
    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
    Julp, Je m'excuse, je retire ce que j'ai dit. les redirections edirectMatch permanent ^/presentation/$ /presentation/mission.php marchent super bien, je devais juste rajouter "/new"... merci merci
    toute petite precision, puisque les redirections fonctionne super bien, lorsqu'on clique par exemple sur "présentation" ds le menu, devrais-je mettre le lien complet: "presentation/mission.php" ou plutot envoyer uniquement vers "presentation" et laisser le .htaccess finir le boulot?

    il me reste donc que le probleme du dossier "inc"!
    comment alors faire pour restreindre l'acces a ce repertoire tout en epargnant le sous-repertoire css??

    Merciiiiiiiii

  9. #69
    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
    et comment faire restreindre l'acces a ce repertoire tout en epargnant le sous-repertoire css??
    Quelque chose comme :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    RedirectMatch permanent ^inc/[^/]*$ ...
    Mais il aurait mieux valu organiser ça autrement (des css placées avec ses librairies PHP, ça n'a rien de logique : les scripts ayant vocation à être inclus n'ont pas à être accessible, tout le contraire d'une CSS).

    Citation Envoyé par redah75 Voir le message
    que devrais je faire alors pour cette histoire de redirection?
    Rajouter /new/ partout.

    Citation Envoyé par redah75 Voir le message
    est il possible qu'apartir d'un .htaccess a la racine de dire:
    le dossier x a pour DirectoryIndex a.php ??
    Non.

  10. #70
    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
    Mais il aurait mieux valu organiser ça autrement (des css placées avec ses librairies PHP, ça n'a rien de logique : les scripts ayant vocation à être inclus n'ont pas à être accessible, tout le contraire d'une CSS).
    oui, vous avez raison.
    Voila, j'ai finalement tout reorganiser:
    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
    www
    	home
    		index.php (page d accueil)
    		...
    	presentation
    		mission.php
    		...
    	...
    	img (toutes les images)
    	inc
    		lib
    			.htaccess (Deny from all)
    			header.php
    			con-db.php
    			language.php
    			lang (dossier avec les fichiers de traduction  xml)
    		css
    		jquery
    		jscript.js
    	.htaccess
    	error403.php
    	error404.php
    voici le .htaccess que j'ai mis a la racine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Options -Indexes
     
    #RedirectMatch permanent ^/$ /home/
    RedirectMatch permanent ^/new/about-us/$ /new/about-us/mission.php
    RedirectMatch permanent ^/new/conferences/$ /new/conferences/agenda.php
    RedirectMatch permanent ^/new/publications/$ /new/publications/store.php
    RedirectMatch permanent ^/new/partners/$ /new/partners/partner-organizations.php
    RedirectMatch permanent ^/new/become-member/$ /new/become-member/presentation.php
     
    ErrorDocument 403 /new/error403.php
    ErrorDocument 404 /new/error404.php
    et puis tout a l'air de fonctionner parfaitement grace a votre immense aide
    la nouvelle organisation et le contenu du .htaccess vous paraissent bien??

    j'ai 2 toutes petites questions:
    1- quel droits me recommandez vous attribuer aux .htaccess?
    2-
    toute petite precision, puisque les redirections fonctionne super bien, lorsqu'on clique par exemple sur "présentation" ds le menu, devrais-je mettre le lien complet: "presentation/mission.php" ou plutot envoyer uniquement vers "presentation" et laisser le .htaccess finir le boulot?
    MErci beaucoup

  11. #71
    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
    C'est mieux.

    1. 0644
    2. plutôt la forme complète mais ce ne serait important que dans le cas d'une réécriture. Ici, pas réellement, étant donné qu'il y a redirection (permanente, qui plus est, donc le client la garde normalement en cache)

  12. #72
    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
    Parfait, merci infiniment. je pense avoir fini avec les questions. j'ai appris tellement de choses, Merci

    Je vais avancer et vous tiendrai au courant...
    Bien cordialement

  13. #73
    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
    de retour encore, vous devriez en avoir marre de moi )

    j'essaye juste de mettre en place les reecritures pour avoir site.com/fr/presentation/mission.php pour tout le site francais ou au lieu de site.com/presentation/mission.php?lang=fr au moment où l'utilisateur change la langue. sachant que $lang est stocke dans un cookie
    je me base sur ce tuto mais j'ai un peu de mal a l'adapter. http://g-rossolini.developpez.com/tu...h%E9orie#LII-1

    une idee pour ca?

  14. #74
    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
    La réécriture fait l'inverse (l'URL virtuelle site.com/fr/presentation/mission.php va aboutir, en interne, sur site.com/presentation/mission.php?lang=fr).

    Le .htaccess va vite devenir une usine à gaz à ce rythme.

    La forme de base serait la suivante :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteRule ^([^/]+)/([^/]+/[^/]+)$ /$2?lang=$1 [L]
    # (les masques sont hyper larges, au besoin, les restreindre)
    # RewriteRule ^([a-z]{2}/([a-z]+/[a-z]+\.php)$ /$2?lang=$1 [L]
    Il faut ajouter l'option QSA si vos pages attendent des paramètres GET à retransmettre. Et si le paramètre lang est réintroduit ça risque de conduire à des effets indésirables (boucle infinie notamment).

    On peut "jouer" avec le cookie en réécriture mais en quoi serait-ce à Apache de le traiter si PHP se charge de sa gestion ?

    (mais il y a un forum Apache où la question serait plus à sa place)

  15. #75
    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 d'essayer ce que vous m'avez donné mais ca n'a pas marché!!

    je vais poser la question dans le forum Apache.

    Le .htaccess va vite devenir une usine à gaz à ce rythme.
    quelle est la limite de cpacite d'un fichier .htaccess?

    On peut "jouer" avec le cookie en réécriture mais en quoi serait-ce à Apache de le traiter si PHP se charge de sa gestion ?
    je ne vois pas trop comment faire ceci!!

  16. #76
    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
    Pour tester la réécriture, dans /new/.htaccess, ajouter :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteBase /new/
    RewriteRule ^a/$ a.php [R]
    Si vous demandez /new/a/ vous devez tomber sur /new/a.php (avec une erreur 404). Si vous obtenez autre chose (erreur 500 ou 403), c'est que la réécriture est à (faire) activer.

    Citation Envoyé par redah75 Voir le message
    quelle est la limite de cpacite d'un fichier .htaccess?
    Bonne question mais je ne faisais pas référence à sa capacité mais à la votre à maintenir son contenu.

    Citation Envoyé par redah75 Voir le message
    je ne vois pas trop comment faire ceci!!
    Dans quel but ? Mais les cookies ne sont ni plus ni moins que des entêtes HTTP. On peut donc travailler dessus :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_COOKIE} \blang=([^;]+)
    RewriteRule ^([a-z]+/[a-z]+\.php)$ /%1/$1 [R]
    (^^ c'est juste pour l'exemple)

    Couchez, dans votre post sur le forum Apache, ce que vous voulez précisément faire. Quelqu'un vous dira si c'est possible ou non et comment.

  17. #77
    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
    Pour tester la réécriture, dans /new/.htaccess, ajouter :
    Merci, je vais faire des tests demain.

    Bonne question mais je ne faisais pas référence à sa capacité mais à la votre à maintenir son contenu.
    j'ai pose cette question car je sais que j'aurai encore d'autres chose a rajouter tel que le forcage de certaines pages d'etre en SSL (https), a moins que vous connessiez un meilleur moyen de le faire!!

    Couchez, dans votre post sur le forum Apache, ce que vous voulez précisément faire. Quelqu'un vous dira si c'est possible ou non et comment.
    j'ai debuter une discussion a ce sujet, voici le lien si ca vous interesse:
    http://www.developpez.net/forums/d85...e-multilingue/

  18. #78
    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
    j'ai pose cette question car je sais que j'aurai encore d'autres chose a rajouter tel que le forcage de certaines pages d'etre en SSL (https), a moins que vous connessiez un meilleur moyen de le faire!!
    Comment rendre certains documents accessibles uniquement par le protocole HTTPS ?

  19. #79
    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
    Pour tester la réécriture, dans /new/.htaccess, ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteBase /new/
    RewriteRule ^a/$ a.php [R]
    ca marche bien et j'ai bien l'erreur 404: http://www.iifiir.org/new/a/

    Comment rendre certains documents accessibles uniquement par le protocole HTTPS ?
    merci pour ce lien dont vous etes l'auteur )
    je connaissais la solution 2 et 3 mais la 1!
    là encore une fois trop de choix tue le choix! j'avais trouvé sur internet ce bout de code a mettre dans le htaccess:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine On 
    RewriteCond %{SERVER_PORT} 80 
    RewriteCond %{REQUEST_URI} somefolder 
    RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]
    il est legerement different du votre, quelle est le difference?

    etant donné que le SSL ne concernera pas forcement TOUT un dossier mais uniquement certaines pages, quelle methode est conseillé a utiliser??

    perso, je dirai la 3e solution de votre tuto, mais est elle aussi performante et rapide que si c'est avec un htaccess??

  20. #80
    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
    aucune reponse???

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