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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Msg d'erreur sur script qui fonctionne (!)


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Msg d'erreur sur script qui fonctionne (!)
    Bonsoir,

    J'ai copier-coller une portion de code (Sincèrement je ne sais plus de qui ni d'où: je l'ai copié en prévision d'une utilisation ultérieure...) que j'ai intégrée au script suivant:
    <?php
    require_once('auth.php');
    require_once('config.php');
    ?>

    <html>
    <head>

    <SCRIPT langage="Javascript">
    function ouvre(fichier) {
    ff=window.open(fichier,"popup",
    "width=650,height=850,left=30,top=20") }
    </SCRIPT>
    </head>
    <link rel="stylesheet" media="all" type="text/css" href="../../style.css" />
    <?php
    include('../../includes/header.php');
    include('../../includes/menus.php');
    ?>

    <div class="corp_ctn">
    <center><h1>Espace priv&eacute; de <?php echo $_SESSION['SESS_FIRST_NAME'];?></h1>
    <a href="member-index.php"><font color="blue">Home</font></a> | <a href="logout.php"><font color="blue">Logout</font></a></center>
    <br><br><br>
    <h1><font color="black">Recherche</font></h1>
    <center>
    <?php
    mysql_connect('localhost','root','');
    mysql_select_db('referentiels');
    //On determine l'expression a rechercher

    if(isset($_GET['recherche']))
    {
    $rec = htmlentities($_GET['recherche']);
    }
    else
    {
    $rec = $_GET['recherche']; ligne 38
    }
    //On determine le type de recherche
    if(isset($_GET['type']))
    {
    if($_GET['type']=='un')//Un des mots
    {
    $type = 1;
    }
    elseif($_GET['type']=='tout')//Tout les mots
    {
    $type = 2;
    }
    else//L'expression exacte
    {
    $type = 3;
    }
    }
    else
    {
    $type = 1;//type par defaut: L'expression exacte
    }
    //On determine si on doit surligner les mots dans les resultats
    if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
    {
    $surligner = false;
    }
    else
    {
    $surligner = true;
    }
    //On dertermine les identifiants, les noms et les informations des utilisateur
    $req = 'SELECT id, doc_path, infos FROM docs WHERE ';
    if($type==1)
    {//ayant un des mots dans leurs informations
    $mots = explode(' ',$rec);//En separre lexpression en mots cles
    foreach($mots as $mot)
    {
    $req .= ' doc_path LIKE "%'.$mot.'%" OR';
    }
    $req .= ' 1=0';
    }
    elseif($type==2)
    {//ayant tout des mots dans leurs informations
    $mots = explode(' ',$rec);//En separre lexpression en mots cles
    foreach($mots as $mot)
    {
    $req .= ' doc_path LIKE "%'.$mot.'%" AND';
    }
    $req .= ' 1=1';
    }
    else
    {//ayant l'expression exacte dans leurs informations
    $req .= 'doc_path LIKE "%'.$rec.'%"';
    }
    //Les utilisateur seront ranges par identifiant en ordre croissant
    $req .= ' order by id asc';
    $requete = mysql_query($req);
    //Le formulaire de recherche
    ?>
    <!--<FORM METHOD='get' action='<?php echo $_SERVER['PHP_SELF']?>'>-->
    <FORM METHOD="get" action="">
    <b><font color="green">Expression &agrave; rechercher: </font></b>
    <input type="text" name="recherche" value="<?php echo $rec; ?>" /></br>
    <b><font color="green">Type de recherche:</font></b>
    <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> />
    Un des mots <input type="radio" name="type" value="tout"<?php if($type==2){echo 'checked="checked"';} ?> />
    Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> />
    Expression exacte<br />
    <b><font color="green">Mettre en gras les mots recherch&eacute;s: </font></b><input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
    <input type="submit" value="Rechercher" />
    </form>
    <img src="../../graphics/fleche_B.gif"/>
    <h2>R&eacute;sultats</h2>
    <table>
    <tr>
    <th>Id</th>
    <th>Path</th>
    </tr>
    <?php
    //On affiche les resultats
    while($dnn = mysql_fetch_array($requete))
    {
    ?>
    <tr>
    <td><?php echo $dnn['id']; ?></td>
    <td><?php echo $dnn['doc_path']; ?></td>
    <td><?php
    if($surligner)//Si il faut surligner les mots, on les surligne
    {
    if($type==3)
    {
    echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['infos']);//On surligne l'expression exacte
    }
    else
    {
    echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '&nbsp;&nbsp;<strong>$1</strong>',$dnn['infos']);//On surligne les mots cles de la recherche
    }
    }
    else
    {
    echo '&nbsp;&nbsp;<font color="gray">'.$dnn['infos'];//On ne surligne pas
    }
    ?></td>
    </tr>
    <?php
    }
    ?>
    </table>
    </center>
    J'ai ce message d'erreur chaque fois que la page est lancée:
    Notice: Undefined index: recherche in C:\wamp\www\REF1.2_ter\interface-Praticien\members\find-doc.php on line 38
    -> le message d'erreur ne s'affiche plus après la première recherche.

    Le script fonctionne donc..mais c'est le message d'erreur qui est gênant!

    Merci de m'expliquer!

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Bonsoir

    Le problème vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(isset($_GET['recherche']))
    {
    $rec = htmlentities($_GET['recherche']);
    }
    else
    {
    // Ici $_GET['recherche'] est indéfini
    $rec = $_GET['recherche']; ligne 38
    }
    Fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $rec= isset($_GET['recherche']) ? htmlentities($_GET['recherche']) : '';
    à la place de tout ça et c'est dans la poche.

    Pour expliquer: quand tu tentes d'adresser un indice de tableau non défini au préalable, tu ramasse toujours une erreur de ce genre. $_GET est un tableau et n'échape pas à la règle.
    Tu peux toujours modifier l'error reporting pour ne plus voir ce genre d'erreur mais... oublie je n'ai pas dit ça : voir les erreurs est une bonne chose.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Magique!
    Le message d'erreur ne s'affiche plus.
    Merci Benjamin!

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut probleme de champs vide
    Bonjour,

    Je tente de contourner le problème de mon champs vide, sans y parvenir.
    J'ai récupérer ce script qui me convient bien pour mon site qui comprend 30000 lignes de données.
    La recherche par 3 choix me satisfont.
    Mon problème c'est que lorsque 'recherche' est vide, les 30000 lignes vont s'afficher dans la page d'affichage !
    Je voudrais que si $rec="" soit il prend une valeur par défaut pour éviter d'afficher la table entière, soit il demande à écrire le ou les mots recherchés, avec une préférence pour la dernière solution.
    Mais j'ai beau tester dans tous les sens ce $rec, rien n'y fait, si quelqu'un pouvait me donner une solution, j'en serais reconnaissant.
    Evidemment je ne maîtrise pas du tout la programmation, et je me contente de modifier des scripts, mais la je sèche...

    Sincèrement,

    Michel.

    Citation Envoyé par Benjamin Delespierre Voir le message
    Bonsoir

    Le problème vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(isset($_GET['recherche']))
    {
    $rec = htmlentities($_GET['recherche']);
    }
    else
    {
    // Ici $_GET['recherche'] est indéfini
    $rec = $_GET['recherche']; ligne 38
    }
    Fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $rec= isset($_GET['recherche']) ? htmlentities($_GET['recherche']) : '';
    à la place de tout ça et c'est dans la poche.

    Pour expliquer: quand tu tentes d'adresser un indice de tableau non défini au préalable, tu ramasse toujours une erreur de ce genre. $_GET est un tableau et n'échape pas à la règle.
    Tu peux toujours modifier l'error reporting pour ne plus voir ce genre d'erreur mais... oublie je n'ai pas dit ça : voir les erreurs est une bonne chose.

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

Discussions similaires

  1. Script qui fonctionne sur chrome mais pas firefox
    Par crozet.magenta dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/01/2013, 12h14
  2. Script en erreur 500, mais qui fonctionne !
    Par renaud26 dans le forum Web
    Réponses: 4
    Dernier message: 06/11/2011, 20h30
  3. Un script qui fonctionne sur IE et pas sur FF
    Par zooffy dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 04/12/2010, 17h44
  4. [MySQL] vos avis sur un script qui fonctionne pas
    Par younek dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/12/2008, 16h47
  5. erreur sur script de sauvegarde
    Par zouetchou dans le forum Langage
    Réponses: 5
    Dernier message: 08/12/2005, 08h50

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