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 :

Moteur de recherche interne


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut Moteur de recherche interne
    Bonjour à tous,

    Voilà, je veux intégrer un petit moteur de recherche interne à mon site Intranet, j'ai crée la base de données avec une table : Moteur(id, description, mots), avec une indexation manuelle des pages...
    ensuite, le formulaire suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <FORM action="moteur.php" method="post" target="_blank">
    <P>Saisissez :<input type="text" name="mot" value="" size=15 /> 
      <INPUT TYPE="submit" NAME="Envoi"VALUE="Chercher">
    </FORM>
    Ensuite le code suivant pour moteur.php:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <html>
    <head>
    <title>Résultat de la recherche</title>
    <STYLE type=text/css>
    A:link{ COLOR: #c0c0c0;TEXT-DECORATION: none }
    A:visited{ COLOR: #ffffff;TEXT-DECORATION: none } 
    A:hover { COLOR: #00ff00;TEXT-DECORATION: none }
    </STYLE>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body text="#FFFFFF" bgcolor="#000000" link="#9999FF" vlink="#6699FF" alink="#FFFF00">
    <font face="Verdana" size=2>
    <form action="moteur.php3" method="post">
    <?php include("config.inc.php");?>
    <?php
    $db_link = mysql_connect("$sql_serveur","$sql_user","$sql_passwd");
    $mot=strtolower($mot);
    $mots=split(" ",$mot);
    $nombre_mots=count($mots);
    $z=1;
    $texte=" contenant le mot <font color=00ff00>$mots[0]</font>";
    $phrase="'%$mots[0]%'";
    while($z<$nombre_mots)
    {
    $phrase.=" ".$et_ou." mots like '%$mots[$z]%'";
    $texte.=" ";
    if($et_ou=="and"){$texte.="et";}else{$texte.="ou";}
    $texte.=" &quot;$mots[$z]&quot;";
    $z++;
    }
    if($debut==""){$debut=0;}
    $debut=$page*$limit;
    $requete=mysql_db_query("$sql_bdd","select count(*) from moteur where mots like $phrase order by id",$db_link);
    $nb_total=mysql_result($requete,0,"count(*)");
    $requete=mysql_db_query("$sql_bdd","select * from moteur where mots like $phrase limit $debut,$limit",$db_link);
    $num=mysql_num_rows($requete);
    if ($num==0) {echo "Désolé, aucune page de ce site ne contient $mot...";}
    else if ($mot=="") {echo "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !";}
    else if (strlen($mot)<2) {echo "Veuillez saisir au moins 2 caractères.";}
    else {
    echo "$nb_total r&eacute;ponse";
    if ($nb_total>1) {echo "s";}
    echo "$texte";
    $i=0;
    while($i<$num)
    {
    $description=mysql_result($requete,$i,"description");
    echo "<br><br></b>$description<br><font size=1></font>\n";
    $i++;
    }
    echo "<br><br>";
    if ($page>0)
    {
    $precedent=$page-1;
    print  "<img src=images/fleche3.gif align=middle border=0><img src=fleche3.gif align=middle border=0> <a href=\"$script_name?page=$precedent&mot=$mot\">page précédente</a>&nbsp;\n";
    }
    $i=0;$j=1;
    if($nb_total>$limit)
    {
    while($i<($nb_total/$limit))
    {
    if($i!=$page){echo "<a href=\"$script_name?page=$i&mot=$mot\">$j</a>&nbsp;";}
    else {echo "<font color=00ff00>$j</font>&nbsp;";}
    $i++;$j++;
    }
    }
    if($debut+$limit<$nb_total)
    {
    $suivant=$page+1;
    echo "<a href=\"$script_name?page=$suivant&mot=$mot\">page suivante</a> <img src=fleche.gif align=middle border=0><img src=images/fleche.gif align=middle border=0> ";
    }
    }
    mysql_close($db_link);
    ?>
    </font>
    </form>
    </body>
    </html>
    le problème c'est qu'en tapant un mot(ou plusieurs d'ailleurs) pourtant indexés dans la table, le message d'erreur suivant s'affiche:
    Notice: Undefined variable: mot in C:\Program Files (x86)\EasyPHP 3.0\www\moteur.php on line 18
    Notice: Undefined variable: debut in C:\Program Files (x86)\EasyPHP 3.0\www\moteur.php on line 32
    Notice: Undefined variable: page in C:\Program Files (x86)\EasyPHP 3.0\www\moteur.php on line 33
    Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'CHERCHER' !
    je n'ai pas compris d'où provient l'erreur???

    Merci de m'aider

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Par défaut
    Salut,

    Ces erreurs viennent du fait que vous n'avez pas déclaré certaines variables, comme dit le message. Pour récupérer la valeur de l'input mot (et probablement des variables debut et page de l'URL), la configuration du serveur impose apparemment de passer par les variables $_POST et $_GET.

  3. #3
    Membre éclairé Avatar de souminet
    Inscrit en
    Novembre 2006
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 351
    Par défaut
    Citation Envoyé par goomazio Voir le message
    Salut,

    Ces erreurs viennent du fait que vous n'avez pas déclaré certaines variables, comme dit le message. Pour récupérer la valeur de l'input mot (et probablement des variables debut et page de l'URL), la configuration du serveur impose apparemment de passer par les variables $_POST et $_GET.
    Merci, mais en clair , comment faire pour y remedier ??? quelles sont les instructions qui manquent ???

  4. #4
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Ton formulaire utilise la method 'post'.

    Tu dois donc récupérer les valeurs saisie avec $_POST['mot'] et pas $mot.

Discussions similaires

  1. Moteur de recherche interne sans pubs
    Par oc_alex86 dans le forum Services
    Réponses: 5
    Dernier message: 29/01/2008, 04h10
  2. Moteur de recherche interne
    Par wasim dans le forum Services
    Réponses: 2
    Dernier message: 23/09/2007, 01h02
  3. [Tableaux] Moteur de recherche interne
    Par mchev dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2007, 01h20
  4. Moteur de recherche interne avec zope/python
    Par tunix dans le forum Zope
    Réponses: 3
    Dernier message: 01/05/2006, 15h45
  5. Un moteur de recherche interne
    Par kibodio dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/02/2005, 18h47

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