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

PHP & Base de données Discussion :

Include php n'accepte que des antislash [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut Include php n'accepte que des antislash
    Bonjour

    J'ai une application en php qui marche très bien sous windows.
    Dans cette application les includes sont de la forme
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include("../fonctions/nonfonction")

    Je veux déployer cette application sur un serveur sous mandriva mais les clients seront sous windows.
    Le problème les includes ne marche pas il faut que je les change comme ca

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include("..\fonctions\nonfonction")

    ce qui matériellement pose problème. Et je ne sais même pas sil les clients vont fonctionner après changement.

    Merci

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Tout d'abord les chemins sous Linux (interpréteur PHP ou pas) sont de la forme [...]/monfichier. Le serveur Apache sous Linux se fiche royalement des clients pour retrouver ses fichiers de fonction. Un client n’envoie qu'une requête HTTP et reçoit un résultat sous la forme de contenu (HTML, XML, etc), donc le chemin d'accès au fichiers de fonctions ce sont des traitements qui se passent uniquement au niveau serveur.

    Ensuite second problème : les \ sont interprétés comme caractères d'échappements, il faut donc écrire \\ mais là n'est pas le problème.

    De plus, même sous Windows, dans les versions récentes de PHP, l'arborescence Unix est correctement prise en compte de mémoire, mais à nouveau, là n'est pas le problème.

    Peut être faudrait-il plus détailler davantage ton problème

    Cordialement,
    Idriss

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Bonjour.
    Peut être faudrait-il plus détailler davantage ton problème

    Cordialement,
    Idriss
    Merci de la contribution.

    Pour être claire je croyait l'avoir été mais bon.

    Disons que j'ai un dossier fonction dans lequel j'ai plusieurs fichiers.

    Dans mon index.php (e dans d'autres fichier php) je fais appel à certains fichiers dans le dossier fonction. l'appel se fait comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("fonctions/fichier.php")
    le problème sous mandriva le / doit être remplacer par un \ pour que mes pages s'affichent. c'est à dire que quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("fonctions\fichier.php")
    le résultat est correct. Par contre si je laisse tel quel j'ai rien

    Voila le problème.

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Donc en gros si je te suis sous Mandriva :

    - les \ ça fonctionne parfaitement
    - les / ça ne fonctionne pas

    On est bien d'accord ?

    Avec \ :

    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
    [idriss@hp-dv6:~]$ cat funcdir/functions.php 
    <?php
        function myHello(){
            echo "Hello world !";
        }
    ?>
    [idriss@hp-dv6:~]$ cat test1.php 
    #!/usr/bin/php
     
    <?php
        include ("funcdir\functions.php");
        myHello();
    ?>
    [idriss@hp-dv6:~]$ ./test1.php
     
    PHP Warning:  include(funcdir
                                 unctions.php): failed to open stream: No such file or directory in /home/idriss/test1.php on line 4
    PHP Stack trace:
    PHP   1. {main}() /home/idriss/test1.php:0
    PHP Warning:  include(): Failed opening 'funcdir
                                                    unctions.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/idriss/test1.php on line 4
    PHP Stack trace:
    PHP   1. {main}() /home/idriss/test1.php:0
    PHP Fatal error:  Call to undefined function myHello() in /home/idriss/test1.php on line 5
    PHP Stack trace:
    PHP   1. {main}() /home/idriss/test1.php:0
    [idriss@hp-dv6:~]$
    => le path n'est pas reconnus et \ est interprété comme caractère d'échappement comme je l'avais dit

    Avec / :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [idriss@hp-dv6:~]$ cat test2.php 
    #!/usr/bin/php
     
    <?php
        include ("funcdir/functions.php");
        myHello();
    ?>
    [idriss@hp-dv6:~]$ ./test2.php 
     
    Hello world !
    [idriss@hp-dv6:~]$
    => Oh miracle

    Mis à part ce "léger" soucis, je ne vois toujours pas le rapport avec les clients ...

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut
    Je suis devant un problème que je n'ai jamais rencontré auparavant.

    je sais que les includes php fonctionnent avec des slash et non des antislash.
    Je rappel que l'application php fonctionne parfaitement sous windows avec les includes de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("fonctions/nomfichier.php")
    c'est quand j'ai voulu le déployer sous mandriva que je problème s'est manifesté.
    Et c'est dans les recherches de solutions que j'ai tester avec un antislash et j'ai eu des résultat correct.

    J'ai regardé dans le fichier php.ini mais j'ai rien trouvé de suspect.

    Est ce qu'il y a pas dans les fichiers de configuration de php ou d'apache quelque chose qu'il faut revoir.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    As-tu des erreurs éventuelles dans les logs d'erreur du serveur apache?

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

Discussions similaires

  1. [RegEx] regex n'acceptant que des additions ou soustractions ?
    Par metos00 dans le forum Langage
    Réponses: 6
    Dernier message: 22/05/2008, 17h45
  2. un wxtextCtrl qui accepte que des chiffres
    Par boubou00 dans le forum wxWidgets
    Réponses: 9
    Dernier message: 27/06/2007, 10h11
  3. Réponses: 1
    Dernier message: 18/04/2007, 13h39
  4. forcer un formulaire à n'accepter que des majuscules
    Par teen6517 dans le forum Langage
    Réponses: 6
    Dernier message: 30/03/2007, 09h14
  5. forcer un TextField à n'accepter que des chiffres
    Par intik dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 01/02/2007, 15h43

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