Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de connexion à la bdd

avec un fichier externe de connexion

Sujet résolu
    20 novembre 2006 à 22:41:39

    Bonsoir a tous, je refond totalement mon site , et je veux remplacer tous les "mysql connect..." par un include qui appelle un fichier "connexion_bdd" qui contient les information de connexion a la bdd, mais voila j'ai un probleme que je ne comprends pas:
           
    <?php
    //page connexion_bdd.php
                            mysql_connect("localhost", "pan", "vel");
                            mysql_select_db("pm0");
    ?>

    Et la une des pages qui appelle connexion_bdd.php
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html><head>
      <title>Liste des news</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <link rel="stylesheet" media="screen" type="text/css" title="indexxav.css" href="/indexxav.css" />
    </head>

    <body>

    <h2><a href="/admin/news/rediger_news.php">Ajouter une news</a></h2></br>
    <em><h2><a href="/index.php">Retour a l'accueil</a></h2></em>
    <?php
    include('
    /connexion_bdd.php');
    //En dessous ya encore plein de php...
     


    Et voici le message d'erreur
    Warning: main() [function.main]: open_basedir restriction in effect. File(/connexion_bdd.php) is not within the allowed path(s): (/mnt/137/sdc/8/e/pspman80) in /mnt/137/sdc/8/e/pspman80/admin/news/liste_news.php on line 13

    Warning: main(/connexion_bdd.php) [function.main]: failed to open stream: Operation not permitted in /mnt/137/sdc/8/e/pspman80/admin/news/liste_news.php on line 13

    Warning: main() [function.include]: Failed opening '/connexion_bdd.php' for inclusion (include_path='/mnt/137/sdc/8/e/pspman80/include:.:/usr/php4/lib/php') in /mnt/137/sdc/8/e/pspman80/admin/news/liste_news.php on line 13

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /mnt/137/sdc/8/e/pspman80/admin/news/liste_news.php on line 61

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/137/sdc/8/e/pspman80/admin/news/liste_news.php on line 62

    • Partager sur Facebook
    • Partager sur Twitter
      20 novembre 2006 à 23:05:59

      include '/file.php' ne fais pas ce que tu attends, et c'est normal que PHP s'excite (ici, '/' n'est pas la racine web).
      Utilise les adresses relatives ;)
      • Partager sur Facebook
      • Partager sur Twitter
        21 novembre 2006 à 21:45:22

        En utilisant les adresses relatives mon probleme est le meme:
        j'ai mi a la place de /connexion_bdd : ../connexion_bdd
        • Partager sur Facebook
        • Partager sur Twitter
          21 novembre 2006 à 21:48:41

          Si le fichier est dans ton répertoire fait
          include 'fichier.php';
          Sinon
          include '../ficher.php';
          • Partager sur Facebook
          • Partager sur Twitter
            21 novembre 2006 à 21:52:03

            le fichier connexion est dans la racine, ensuite cette page est dans un repertoire qui lui meme est un repertoire situé a la racine:
            En gros:

            -->Racine-->dossier admin-->dossier news-->page qui appelle connexion.php
            • Partager sur Facebook
            • Partager sur Twitter
              21 novembre 2006 à 21:52:50

              Pourquoi tu met des / à chaque adresse de fichier ?
              Ca sert à rien.
              • Partager sur Facebook
              • Partager sur Twitter
                21 novembre 2006 à 21:55:29

                j'indique a chemin absolu et non relatif comme ca si je change la page de place , je n'ai rien a modifier, mais la n'est pas mon probleme :s
                Par contre apres avoir fait plusieurs essais, le probleme vient du lien que me suggerez vous car j'ai tout essayé
                • Partager sur Facebook
                • Partager sur Twitter
                  21 novembre 2006 à 22:43:29

                  non, tu te trompe à mon avis.
                  le '/' indique la racine du serveur, pas la racine de ton site. et bien sur tu n'a pas accès à la racine du server.
                  En principe un chemin absolu sur le web ça commence par http://www.site.com/rep/fichier.php
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 novembre 2006 à 22:46:07

                    Peut etre mais dans ce cas pourquoi tous mes autres liens qui commencent par "/" fonctionnent ils?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 novembre 2006 à 18:03:44

                      Il y a une grosse différence entre <a href="/page.php"> et include '/page.php'

                      Dans le premier cas, on se réfère à la racine web : http://host/
                      Dans le second on se réfère à la racine du serveur, c'est à dire '/'

                      Seulement toi ton site est ici : /mnt/137/sdc/8/e/pspman80/
                      Alors include '/connexion_bdd.php' ça marche pas, forcément.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 novembre 2006 à 19:27:52

                        Et donc il faut que j'ajoute a l'url ceci: /mnt/137/sdc/8/e/pspman80/ ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 novembre 2006 à 21:25:35

                          Non.
                          D'une part ça ne va pas forcément plaire à PHP (parce qu'on est pas censé s'occuper de la racine du serveur), d'autre part ce n'est pas du tout portable, et même en restant sur le même serveur si ça chante à Free de faire quelques modifs tous tes scripts tombent à l'eau.
                          Après bon, dans le cas où ça ne gêne pas PHP, on peut construire ça avec le DOCUMENT_ROOT (contenu dans $_SERVER)... mais tu es sûr de ne pas vouloir utiliser les adresses relatives ?
                          Parce que je ne vois vraiment pas l'inconvénient que ça pourrait poser.

                          Pour un lien bien sûr que oui, dans le cas de l'URL Rewriting et des répertoires virtuels.
                          Mais sinon... Bof.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            23 novembre 2006 à 7:46:37

                            Je veux bien utiliser les adresses relatives, ya pas de probleme, propose moi une solution car j'ai tout essayé, donc comme dit plus haut le fichier qui appel est dans un dossier qui lui meme esr dans un dossier qui se situe a la racine.
                            Merci d'avance
                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 novembre 2006 à 10:19:41

                              include '../../connexion_bdd.php'; ?
                              Enfin regarde un peu le fonctionnement des adresses relatives si ce n'est pas ça, parce que tu arrives _forcément_ à accéder à _tous_ les fichiers de cette manière.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 novembre 2006 à 11:23:30

                                Alors perso je fais cela :

                                J'ai comme toi un chemin du style toto/titi/0/lalala/www et je m'en fou d'ailleurs dans notre cas

                                J'ai ensuite mon index.php qui est dans le www
                                Puis j'ai un répertoire config qui contient le fichier config.inc.php

                                Depuis mon index.php je fais include ('./config/config.inc.php');

                                Et chez moi cela fonctionne a toi de voir et de tester ma situation.
                                Essaye aussi de mettre les deux fichiers l'appelant et l'appelé au même niveau pour regarder le résultat
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  23 novembre 2006 à 19:05:03

                                  Merci donc c'etait bien la methode proposée par Elentar, je pensais l'avoir testée mais a priori non!
                                  Merci de votre aide
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Probleme de connexion à la bdd

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown