Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de variable avec include

    3 décembre 2006 à 16:47:49

    Salut tout monde, voila je suis en train de me remettre un peu au php/mysql donc j'ai commencé a coder mon site et par la même occasion j'héberge mon site sur mon ordinateur, mais j'ai un problème que je n'arrive pas à résoudre.

    Voici les deux erreurs qui sont sur ma page :
    • Notice: Undefined variable: r in f:\serveurweb\scripts\rubriques.php on line 2
    • Notice: Undefined index: r in f:\serveurweb\index.php on line 4


    Il y a quelques temps j'avais un autre site (que j'avais encore coder) mais il était héberger par une société (Lycos) et avec le même système d'include je n'avais pas ce problème, j'imagine donc que le problème viens de chez moi :p

    voici le code source des deux pages en questions :


    <?php
    session_start();
    require("scripts/rubriques.php");
    $r = $_GET['r'];
    $year = date("Y");
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>Test</title>
    <meta name="keywords" content=".">
    <meta name="description" content=".">

    <script language=JavaScript
    src="link.js" type=text/javascript>
    </script>
    </head>

    <body bgcolor="#000000">
    <table width="800px" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
                    <td background="image/haut.jpg" width="800px" height="200px"></td>
            </tr>
            <tr>
                    <td background="image/centre.jpg" width="800px">
                            <table border="0" width="770px" cellpadding="0" cellspacing="0" align="center">
                                    <tr>
                                            <td align="center" valign="top" width="170px">
                                                    <table width="160px" align="left" cellpadding="0" cellspacing="0">
                                                            <tr>
                                                                    <td background="image/menu_navigation.jpg" width="160px" height="70px"></td>
                                                            </tr>
                                                            <tr>
                                                                    <td background="image/menu.jpg" width="160px" align="center">
                                                                            <a href="?r=news" OnMouseOver="window.status='Index'; return true">Index</a><br />
                                                                    </td>
                                                            </tr>
                                                            <tr>
                                                                    <td background="image/menu.jpg" width="160px" align="center">
                                                                            <?php
                                                                            //if(isset($_SESSION["login"]))
                                                                                    //{
                                                                                    //include("espmembre.php");
                                                                            //}
                                                                            //else
                                                                                    //{
                                                                                    //include("connexion.php");
                                                                            //}
                                                                            ?>
                                                                    </td>
                                                            </tr>
                                                            <tr>
                                                                    <td background="image/menu_guilde.jpg" width="160px" height="30px">
                                                                    </td>
                                                            </tr>
                                                            <tr>
                                                                    <td background="image/menu.jpg" width="160px" align="center">
                                                                    </td>
                                                            </tr>
                                                            <tr>
                                                                    <td background="image/menu_contact.jpg" width="160px" height="30px">
                                                                    </td>
                                                            </tr>
                                                            <tr>
                                                                    <td background="image/menu_bas.jpg" width="160px" height="30px" valign="top" align="center">
                                                                            <?php //include("exemple.php"); ?>
                                                                    </td>
                                                            </tr>
                                                    </table>
                                            </td>
                                            <td valign="top" width="600px" >
                                                    <br /><br />
                                                    <?php include("$page"); ?>
                                            </td>
                                    </tr>
                            </table>
                    </td>
            </tr>
            <tr>
                    <td background="image/bas.jpg" width="799px" height="62px" align="center"><br /></td>
            </tr>
    </table>
    </body>
    </html>


    <?
    switch ($r) {
            case "news";
                    $page = "news.php";
                    break;
                   
            default:
            $page = "news.php";
            }
    ?>


    Si vous avez des questions n'hésitez pas :)

    Merci tout le monde.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 décembre 2006 à 16:56:19

      sans aucune garantie, essaye ca :

      <?php
      session_start();
      $r = $_GET['r'];
      include("scripts/rubriques.php");
      $year = date("Y");
      ?>
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2006 à 16:59:31

        <?php
        session_start();
        require("scripts/rubriques.php");
        $r = $_GET['r'];
        $year = date("Y");
        ?>


        En inversant ton require avec la définition de $r ca devrait passser pour la première erreur :
        <?php
        session_start();
        $r = $_GET['r'];
        require("scripts/rubriques.php");
        $year = date("Y");
        ?>


        D'autre part, la 2eme erreur dit que $_GET['r'] n'existe pas. Es-tu sur que ton url est de la forme :
        http://monsite.com/mapage.php?r=unTruc
        ?

        EDIT : doublé :p
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2006 à 17:00:16

          Ha pas mal, maintenant il ne reste plus qu'une erreur ça a changé de ligne :p

          • Notice: Undefined index: r in f:\serveurweb\index.php on line 3



          @Pzuk, et bien en faite cette erreur n'apparait que lorsqu'on arrive sur le site car l'adresse est du type http://www.monsite.com mais si je clique sur un lien mon adresse se transforme comme ceci : http://www.monsite.com/?r=news et la il n'y a plus d'erreur.

          Voici le lien pour vérifier, j'ai lancé apache : http://ashraam.homelinux.com

          Ca avance merci bien déjà :)
          • Partager sur Facebook
          • Partager sur Twitter
            3 décembre 2006 à 17:13:20

            Dans ce cas tu modifies ton code en :
            <?php
            session_start();
            if(isset($_GET['r']) {$r = $_GET['r'];}
            else {$r='';} //tu definis $ r dans tous les cas
            require("scripts/rubriques.php");
            $year = date("Y");
            ?>


            ou une autre solution qui fera que les erreurs de type notice ne s'affichent plus (mais existe toujours ^^ )
            <?php
            session_start();
            ERROR_REPORTING(!E_NOTICE);
            $r = $_GET['r'];
            require("scripts/rubriques.php");
            $year = date("Y");
            ?>


            Pas super sur de la syntaxe pour la seconde methode, qui n'est pas très conseillée soit dit en passant ^^
            • Partager sur Facebook
            • Partager sur Twitter
              3 décembre 2006 à 17:31:14

              Bon dans la 1ere solution je met la variable r='news' comme il est écrit dans rubriques.php mais la j'ai carrement une erreur de parseur :

              • Parse error: parse error in f:\serveurweb\index.php on line 3


              sinon la seconde solution marche mais bon :s


              Merci en tout cas je sais ce que je dois faire au pire des cas ;p
              • Partager sur Facebook
              • Partager sur Twitter
                3 décembre 2006 à 17:40:43

                Bah une parse error c'est jamais très dur a corriger : repostes le bout de code qui foire stp :)
                • Partager sur Facebook
                • Partager sur Twitter

                Problème de variable avec include

                × 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