Partage
  • Partager sur Facebook
  • Partager sur Twitter

des bugs qui n'apparaissent que sous easyphp

et pas une fois le site envoyé chez l'hébergeur.

Sujet résolu
    26 novembre 2005 à 16:06:02

    Bonjour,

    J'ai un problême qui n'est pas très important puisqu'il ne s'affiche que sous Easyphp mais que j'aimerai bien résoudre.

    Voici le code source des trois pages concernés :

    Page index.php


    <?php
    include('News/bdd.php') ;
    // Connexion à MySQL
    mysql_connect($adresse, $login, $mdp);
    mysql_select_db($bdd);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Bienvenue sur Matlog</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                           <link rel="stylesheet" media="screen" type="text/css" title="Design par deffaut" href="style/style.css" />
                    <!-- keywords: Informatique, logiciel, hardware, matériel, ordinateurs, Matlog, Internet, Gratuit, GPL, Disque dur, Carte-Graphique, Proceseur, Cd-rom, Disque dur -->

    <meta name="title" content="matlog"/>
    <meta name="author" content="et1103"/>
    <meta name="owner" content="et1103@gmail.com"/>
    <meta name="subject" content="logiciel matériel informatique ordinateurs"/>
    <meta name="rating" content="internet"/>
    <meta name="description" content="aide logiciel et matériel, tout est sur matlog"/>
    <meta name="abstract" content="aide logiciel et matériel, tout est sur matlog"/>
    <meta name="keywords" content="informatique, logiciel, hardware, matériel, ordinateurs, matlog, internet, gratuit, gpl, disque dur, carte-graphique, proceseur, cd-rom, disque dur"/>
    <meta name="generator" content="www.jexiste.org"/>
    <meta name="language" content="fr"/>
    <meta name="robots" content="all"/>
    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
    _uacct = "UA-130669-1";
    urchinTracker();
    </script>
      </head>
            <body>

            <table id="grostableau" >
                             <tr>
                            <td colspan="2" ><p id="bannière" > <a href="index.php"><img src="images/banniere.png" alt="banniere" /> </a></p></td>
                            </tr>   
                            <tr>
                                    <td colspan="2" style="text-align:center">

                                   
    <div class="enblanc">
    <?
    // -------ON VEUT AFFICHER LE NOMBRE DE CONNECTE
    // ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
    // Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur
    $retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
    $donnees = mysql_fetch_array($retour);

    if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
    {
        mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');
    }
    else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
    {
        mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
    }

    // -------
    // ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes

    // On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
    $timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
    mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);

    // -------
    // ETAPE 3 : on compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
    $retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
    $donnees = mysql_fetch_array($retour);
    if ($donnees['nbre_entrees'] == 1)
            {
            $visiteur = 'personne' ;
            }
            else
            {
            $visiteur = 'personnes' ;
            }

    // Ouf ! On n'a plus qu'à afficher le nombre de connectés !
    echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' ' . $visiteur . ' sur le site.</p>';
    ?>      <?
    $monfichier = fopen('compteur.txt', 'r+');

    $pages_vues = fgets($monfichier); // On lit la première ligne (nombre de pages vues)
    $pages_vues++; // On augmente de 1 ce nombre de pages vues
    fseek($monfichier, 0); // On remet le curseur au début du fichier
    fputs($monfichier, $pages_vues); // On écrit le nouveau nombre de pages vues

    fclose($monfichier);

    echo '<p>pages vue sur le site :' . $pages_vues . '</p>';
    ?>                      </td>
                            </tr>
                            <tr><td colspan="2">

    </td>
    </tr>
    </div>
                            <tr>
                            <td id="hautgauche">Article : </td>
                            <td id="menuprincipal">
                            <table class="menuprincipal">
                            <tr>
                            <?PHP //on va créer la fonction pour changer la couleur de fond en fonction de la page.
                            function couleur($page, $lien)
                            {
                            if ( $page == $lien)
                            {
                             $couleur = 'style="background-color:rgb(105, 152, 231)"';
                            }
                            elseif($_GET['page']== NULL)
                            {$couleur='style="background-color:rgb(105, 152, 231)"';
                            }
                            echo($couleur);
                            }?><div id="boutonmenuprincipal">
                                    <td <?  couleur($_GET['page'], 'accueil');?>><a href="index.php?page=accueil"  > accueil </a> </td>
                                    <td <?  couleur($_GET['page'], 'logiciel');?>><a href="index.php?page=logiciel" > Logiciel </a> </td>
                                    <td <?  couleur($_GET['page'], 'materiel');?>><a href="index.php?page=materiel" > Matériel </a> </td>
                                    <td <?  couleur($_GET['page'], 'blog');?>> <a href="index.php?page=blog" > Blog </a> </td>
                                    <td><a href="phpbb/index.php" > Forum </a> </td>
                                    <td <?    couleur($_GET['page'], 'divers');?>><a href="index.php?page=divers" > Divers </a> </td>
                                    </div>
                            </tr>
                            </table>
                            </td>
                            </tr>
                           
                            <tr id="corpetmenu">
                                   
                                    <td id="petitmenu">
                                    <?PHP
                                    include('petitmenu.php');?> <br/> <br/> <br/>
                                            </td>
                                    <td id="corp">

                                             <div class="pub"><!-- BEGIN CODE NetAffiliation : http://www.netaffiliation.com/ -->
    <iframe src="http://action.metaffiliation.com/emplacement.php?emp=6108I7713a743bfd174fe" width="468" height="60" scrolling="no" frameborder="0"></iframe>
    <!-- END CODE NetAffiliation --></div>
                                    <?php include('news.php') ?>
                                    </td>
                            </tr>
                    </table>
            </body>
    </html>
    <? mysql_close();?>



    Page petitmenu.php


    <?php
    if( isset($_GET['page']))
    {       if($_GET['page'] == logiciel)
            {
            $petitmenu = mysql_query("SELECT id, titre FROM news WHERE type='logiciel' AND place='article'");
            }
            elseif($_GET['page'] == materiel)
            {
            $petitmenu = mysql_query("SELECT id, titre FROM news WHERE type='materiel' AND place='article'");
            }
            elseif($_GET['page'] == blog)
            {
            $petitmenu = mysql_query("SELECT id, titre FROM news WHERE type='blog' AND place='article'");
            }
            elseif($_GET['page'] == divers)
            {
            $petitmenu = mysql_query("SELECT id, titre FROM news WHERE type='divers' AND place='article'");
            }
            elseif($_GET['page'] == accueil)
            {
            $petitmenu = mysql_query("SELECT id, titre FROM news WHERE type='accueil' AND place='article'");
            }
    }
    else
    {
    $petitmenu = mysql_query("SELECT id, titre FROM news WHERE type='accueil' AND place='article'");
    }
            while ($petitmenu1 = mysql_fetch_array($petitmenu) )
            {
            if(isset($_GET['page']))//on écrit les liens vers les articles
            {
            echo '<a href="index.php?page=' . $_GET['page'] . '&amp;article=' . $petitmenu1['id'] . '">' . stripslashes($petitmenu1['titre']) . '</a>';
            echo'<br/>';
            }
            else
            {
                    echo '<a href="index.php?page=accueil&amp;article=' . $petitmenu1['id'] . '">' . stripslashes($petitmenu1['titre']) . '</a>';
            echo'<br/>';
            }
    }
    //on affiche les liens sur le petit menu


    page news.php


    <?

    if(isset($_GET['article']))
    {
            $retour = mysql_query('SELECT * FROM news WHERE id="' . $_GET['article'] . '"');
    }
    elseif(isset($_GET['page'])) //c'est la page d'accueil de la section
    {
            if($_GET['page'] ==  accueil)
            {
            $accueil = TRUE;
    $retour = mysql_query('SELECT * FROM news WHERE type="accueil" AND place="presentation" OR place="news" ORDER BY place desc, timestamp desc ')
            }
            else{
            $page = $_GET['page']
            $retour = mysql_query('SELECT * FROM news WHERE type="' . $page . '"    AND place="presentation" OR type="' . $page .'" AND place="news" ORDER BY place desc, timestamp desc ');
    }}
    else //c'est la page d'accueil
    {
    $accueil = TRUE;
    $retour = mysql_query('SELECT * FROM news WHERE type="accueil" AND place="presentation" OR place="news" ORDER BY place desc, timestamp desc ');
    }
    while ($donnees = mysql_fetch_array($retour))
    {
    ?>

    <div class="news">
       
            <? if ($donnees['place']== news )
                     {
                            ?>
                            <h3> <?
                            echo $donnees['titre']; ?>
            <em>le <? echo date('d/m/Y H\hi', $donnees['timestamp']); if($accueil==TRUE){ echo $donnees['type'];}?></em>
        </h3>
        <?}?>
        <p>
        <?
        // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
        $contenu = nl2br(stripslashes($donnees['contenu']));
        echo $contenu;
       ?>
        </p>
    </div>
    <?
    } // Fin de la boucle des news
    ?>


    LEs messages d'erreurs sont du type :

    Citation

    Notice: Undefined index: page in e:\mes documents\site web\www\matlog\index.php on line 117



    ou encore

    Citation

    Notice: Use of undefined constant news - assumed 'news' in e:\mes documents\site web\www\matlog\news.php on line 29



    ou encore

    Citation


    Notice: Use of undefined constant logiciel - assumed 'logiciel' in e:\mes documents\site web\www\matlog\petitmenu.php on line 3




    Merci à ceux qui ont eu le courage de lire jusqu'au bout :)

    @+

    p.s. Je sais utiliser les tableau pour son site c'est pas bien. C'est d'ailleurs pour Remedier à ce pb que je veux l'utiliser en local et tester differents styles :)
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2005 à 16:09:52

      Citation

      Notice: Undefined index: page in e:\mes documents\site web\www\matlog\index.php on line 117


      ca veux dire que l'index "page" du tabelau n'existe pas
      ex :
      echo $tableau['page'];

      Citation

      Notice: Use of undefined constant news - assumed 'news' in e:\mes documents\site web\www\matlog\news.php on line 29



      tu as du mettres quelquechose comme "if($page== news)" au lieu de "if($page=='news')"

      Citation


      Notice: Use of undefined constant logiciel - assumed 'logiciel' in e:\mes documents\site web\www\matlog\petitmenu.php on line 3



      cf : au dessus
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2005 à 16:10:21

        Sans avoir regardé un pet de ton code et juste en voyant les erreurs, je peux te dire que ne sont pas des bugs comme tu dis, mais juste que la gestion des erreurs de ton hébergeur est foireuse, en gros il ne les affiche pas toutes.
        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2005 à 16:12:59

          999888 > Reflechis. Pourquoi un hebergeur mettrais dans sa config d'afficher toutes les erreurs ? Ce n'est pas très bon pour les clients....
          Les erreurs du type notice sont des erreur pour les developpeur, et rien d'autre :p
          • Partager sur Facebook
          • Partager sur Twitter
          Mon profil Github - Zeste de Savoir, pour la beauté du zeste
            26 novembre 2005 à 16:18:42

            Citation : Talus

            999888 > Reflechis. Pourquoi un hebergeur mettrais dans sa config d'afficher toutes les erreurs ? Ce n'est pas très bon pour les clients....
            Les erreurs du type notice sont des erreur pour les developpeur, et rien d'autre :p


            Et puis? Ma réponse est toute réfléchie, c'est au programmeur de faire un site correct avant de le balancer sur le web, surtout pour des erreurs de type notice, je veux pas dire mais bon, c'est vraiment l'erreur banale n°1 en plus.
            Pour reprendre ta citation:

            Citation : Talus

            Programmer, c'est une chose. Bien Programmer, c'en est une autre.


            Et puis une erreur "pour les développeurs" n'a pas beaucoup de sens selon moi, il n'y a pas d'erreurs pour les visiteurs non plus.
            • Partager sur Facebook
            • Partager sur Twitter
              26 novembre 2005 à 16:25:12

              Je suis tout à fait d'accord avec 999888.

              Les notices sont des erreurs et les erreurs sont à bannir.

              Coder un script qui fonctionne n'est pas la même chose que coder un script propre et sans erreur.

              Amicalement

              T@kniX
              • Partager sur Facebook
              • Partager sur Twitter
                26 novembre 2005 à 16:29:08

                Je n'ai jamais dit qu'elles n'etaient pas à corriger.
                En général, ce genre d'erreurs, sur tous les types d'hebergeurs, c'est l'erreur qui est enlevée (car banale, et ne perturbe pas le script). Un remede pour voir apparaitre ces erreurs, c'est de modifier le niveau error_reporting, ou de modifier la config. 2 méthodes :
                <?php
                ini_set('error_reporting',E_ALL);
                ini_set('display_errors',1);

                //ou
                error_reporting(E_ALL); /* Ou mettre les codes acceptés, m'en souvient plus)*/
                ?>
                • Partager sur Facebook
                • Partager sur Twitter
                Mon profil Github - Zeste de Savoir, pour la beauté du zeste
                  26 novembre 2005 à 16:38:24

                  Salut,

                  quelqu'un peut me dire le code complet pour afficher les erreurs chez mon hébergeur aussi. Comme ça vous pourriez m'aider :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 novembre 2005 à 16:40:16

                    Citation : et1103

                    Salut,

                    quelqu'un peut me dire le code complet pour afficher les erreurs chez mon hébergeur aussi. Comme ça vous pourriez m'aider :)


                    Tu fais comme a dit Talus. :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 novembre 2005 à 16:48:07

                      ä paramment mon hébergeur n'aime pas bien qu'on essaie d'afficher les erreurs :

                      car j'ai ça :

                      Citation



                      Warning: ini_set() has been disabled for security reasons in /home/.filer2/matlog/www/index.php on line 2

                      Warning: ini_set() has been disabled for security reasons in /home/.filer2/matlog/www/index.php on line 3



                      Edit,

                      Bon merci, j'ai réussi à trouver la solution à la plus part des bug mais il me reste encore un que je ne comprend pas.

                      Voici le bout de code conserné :

                                              <?PHP //on va créer la fonction pour changer la couleur de fond en fonction de la page.
                                              function couleur($page, $lien)
                                              {
                                              if ( $page == $lien)
                                              {
                                               $couleur = 'style="background-color:rgb(105, 152, 231)"';
                                              }
                                              echo $couleur;
                                              }?><div id="boutonmenuprincipal">
                                              <? if(isset($_GET['page']))
                                              {?>
                                                      <td <?  couleur($_GET['page'], 'accueil');?>><a href="index.php?page=accueil"  > accueil </a> </td>
                                                      <td <?  couleur($_GET['page'], 'logiciel');?>><a href="index.php?page=logiciel" > Logiciel </a> </td>
                                                      <td <?  couleur($_GET['page'], 'materiel');?>><a href="index.php?page=materiel" > Matériel </a> </td>
                                                      <td <?  couleur($_GET['page'], 'blog');?>> <a href="index.php?page=blog" > Blog </a> </td>
                                                      <td><a href="phpbb/index.php" > Forum </a> </td>
                                                      <td <?    couleur($_GET['page'], 'divers');?>><a href="index.php?page=divers" > Divers </a> </td>
                                                      <?}else // c'est la page d'accueil
                                                      {?>
                                                      <td><a href="index.php?page=accueil"  > accueil </a> </td>
                                                      <td><a href="index.php?page=logiciel" > Logiciel </a> </td>
                                                      <td><a href="index.php?page=materiel" > Matériel </a> </td>
                                                      <td> <a href="index.php?page=blog" > Blog </a> </td>
                                                      <td><a href="phpbb/index.php" > Forum </a> </td>
                                                      <td><a href="index.php?page=divers" > Divers </a> </td>
                                                      <?php
                                                      }
                                                      //fin de l'instruction if?>


                      Le message d'erreur est le suivant :

                      Citation


                      Notice: Undefined variable: couleur in e:\mes documents\site web\www\matlog\index.php on line 115

                      • Partager sur Facebook
                      • Partager sur Twitter
                        26 novembre 2005 à 16:55:42

                        Citation : et1103

                        ä paramment mon hébergeur n'aime pas bien qu'on essaie d'afficher les erreurs :

                        car j'ai ça :

                        Citation



                        Warning: ini_set() has been disabled for security reasons in /home/.filer2/matlog/www/index.php on line 2

                        Warning: ini_set() has been disabled for security reasons in /home/.filer2/matlog/www/index.php on line 3


                        C'est pas ça, c'est qu'il a désactivé la fonction ini_set, ce qui peut se comprendre car elle permet de modifier la configuration du serveur, et c'est vrai après tout, autant désactiver totalement une fonction plutôt que de définir ce qui peut être autorisé, non? :euh:
                        Donc essaye avec error_reporting, des fois que. :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 novembre 2005 à 16:59:49

                          Bonjour,

                          merci j'aichangé et ça fonctionne (l'affichage des bugs sur la page de mon hebergeur)

                          vous pouvez aller voir sur http://maglog.jexiste.fr

                          @+

                          EDIT
                          Vous devinerez jamais :D J'ai réussi tout seul à corriger le bug qu'il restait!

                          Merci pour vos expiquations :)
                          • Partager sur Facebook
                          • Partager sur Twitter

                          des bugs qui n'apparaissent que sous easyphp

                          × 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