problème moteur de recherche - lapagemagique

Eléphanteau du PHP | 30 Messages

24 févr. 2006, 15:05

Hello tout le monde ! Je viens d'arriver sur ce forum et j'ai déjà une question ^^

Je dois réaliser pour une école une plate-forme sur laquelle les enseignants pourront aller poster le cours en ligne et les élèves les consulter.

Mon problème est le suivant : je désirerais intégrer un moteur de rechercher à ma plate-forme (dans le même style que celui de ce forum). J'ai alors été cherché un script sur le net car je n'ai pas assez de connaissance moi-même pour le faire. J'ai trouvé celui de lapagemagique, qui me semblait bon. Cependant je ne sais pas trop comment m'y prendre et la page me génère des erreurs dont je ne trouve pas les causes. Si quelqu'un pourrait m'aider ca serait sympa !

Mais existe-t-il pas un code déjà fait permettant de chercher directement dans toute (ou presque) la base de données puis synthétisant les résultats sur une page ?

Merci d'avance !

Voila le code. Désolé s'il y a des erreurs stupides :oops:
<?
//on vérifie la session
include("verif_session.php");
//connection
include("conn.php");
//on récupère la variable $lapagemagique10
if (isset($HTTP_POST_VARS['lapagemagique10']))
{
	$lapagemagique10 = $HTTP_POST_VARS['lapagemagique10'];
}
//on récupère la variable $lapagemagique35
if (isset($HTTP_POST_VARS['lapagemagique35']))
{
	$lapagemagique35 = $HTTP_POST_VARS['lapagemagique35'];
}
?>
<html>
<head>
<title>moteur de recherche</title>
<style type=text/css>
a:link{color:000000;
text-decoration:none;
font-family:verdana,tahoma,arial;
font-size:8pt}
a:visited{color:333333;
text-decoration:none;
font-family:verdana,tahoma,arial;
font-size:8pt}
a:hover{color:000000;
text-decoration:underline;
font-family:verdana,tahoma,arial;
font-size:8pt}
body,td,input{
font-family:verdana,tahoma,arial;
font-size:8pt}
.lapagemagique46{
font-family:verdana,tahoma,arial;
font-size:16pt;
font-weight:bold;
color:#86aed7}
.lapagemagique45{
color:ffffff;
font-weight:bold;
background-color:#86aed7}
</style>
</head>
<body>
<table width=60% align=center cellpadding=5 cellspacing=0
style='border-style:solid;border-width:1;border-color:444444'>
<tr><td>
<?
//configuration du script
# nombre maximum de mots dans une phrase pour une recherche
$lapagemagique1=10;
# nombre de résultats à afficher par page
$lapagemagique2=10;
# extensions des pages dans lesquels se feront la recherche, à vous d'en ajouter ou d'en supprimer !
$lapagemagique3=array("html","htm","php","php3","phtml","txt","doc","xml");
# nom des répertoires dans lesquels s'effectura la recherche
$lapagemagique4="./,Plate-forme/,Dossiers_professeurs/sousrepertoire1/";
# Nombre maximum de caractères à afficher pour la description de la page
$lapagemagique5=2000;
# Nombre maximum de caractères à afficher pour les autres mots compris dans la page
$lapagemagique6=2000;
if (!isset($lapagemagique7)) { $lapagemagique7=0; }
if (!isset($lapagemagique8)) { $lapagemagique8=0; }
if (!isset($lapagemagique9)) { $lapagemagique9=0; }
if (!isset($lapagemagique10)) { $lapagemagique10=0; }
$lapagemagique10=trim(stripslashes($lapagemagique10));
if ($lapagemagique7==0) {$lapagemagique10=strtolower($lapagemagique10); }
$lapagemagique10=ereg_replace(","," ",$lapagemagique10);
# effacement des virgules lors de la recherche
$lapagemagique12=array(); $lapagemagique11=array();
$lapagemagique12=explode(" ",$lapagemagique10);
# effacement des espaces lors de la recherche
foreach ($lapagemagique12 as $lapagemagique13){
if (($lapagemagique13!="") && (count($lapagemagique11)<=($lapagemagique1-1)) && (!in_array($lapagemagique13,$lapagemagique11)))
{ array_push($lapagemagique11,$lapagemagique13); }}
$lapagemagique10=implode(" ",$lapagemagique11);?>
<form action="<? //echo $PHP_SELF; ?>" method=post>
<table width=100% cellpadding=5 cellspacing=0 border=0 bgcolor=86aed7>
<tr><td>
<? echo "<input type=text name='lapagemagique10' style='width:167'";
$browser=$HTTP_USER_AGENT;
if (1*strpos(strtolower($browser),"msie")>0) { echo "25"; } else { echo "14"; }
echo "\" value=\"".$lapagemagique10."\"><br><br>";
# lignes de séparations entre le champ de recherche et le bouton de recherche
?>
<input type=submit value=Rechercher style='width:167'></td>
<td><font color=ffffff><b>Majuscules et minuscules</b><br>
<input type="radio" name="lapagemagique7" value="1"
<? if ($lapagemagique7==1) echo "checked"; ?>>différencier<br>
<input type="radio" name="lapagemagique7" value="0"
<? if ($lapagemagique7==0) echo "checked"; ?>>ne pas différencier
</td><td><b><font color=ffffff>Type de recherche</b><br>
<input type="radio" name="lapagemagique8" value="1"
<? if ($lapagemagique8==1) echo "checked"; ?>>mots complets<br>
<input type="radio" name="lapagemagique8" value="0"
<? if ($lapagemagique8==0) echo "checked"; ?>>portions de mots
</td></tr></table></form>
<? if ($lapagemagique10!="")
{ lapagemagique14();lapagemagique15(); }
function lapagemagique14(){
global $lapagemagique11,
$lapagemagique7,$lapagemagique8,$lapagemagique28nummer,
$lapagemagique21,$lapagemagique5,$lapagemagique6;
global $lapagemagique3,$lapagemagique4;$lapagemagique17=0;
$lapagemagique21=array();$lapagemagique18=array();
$lapagemagique18=explode(",",$lapagemagique4);
foreach ($lapagemagique18 as $lapagemagique19){
$lapagemagique20=opendir($lapagemagique19);
while ($lapagemagique22=readdir($lapagemagique20)){
$name=$lapagemagique19.$lapagemagique22;
$lapagemagique23=explode(".",$lapagemagique22);
if (in_array($lapagemagique23[1],$lapagemagique3)){
$lapagemagique24=0;
$lapagemagique25=0;
$lapagemagique26=array();
$lapagemagique28=fopen($name,"r");
while (!feof($lapagemagique28)){
$lapagemagique30=fgetss($lapagemagique28,10000,"");
if ($lapagemagique7==0)
{$lapagemagique30=strtolower($lapagemagique30);}
$lapagemagique32=explode(" ",$lapagemagique30);
foreach ($lapagemagique32 as $lapagemagique34){
foreach ($lapagemagique11 as $lapagemagique33){
if ($lapagemagique8==0){
if (strstr($lapagemagique34,$lapagemagique33)){
if (!in_array($lapagemagique33,$lapagemagique26))
{ array_push($lapagemagique26,$lapagemagique33); }
$lapagemagique24++;
$lapagemagique21["lapagemagique36"][$lapagemagique17]++;
if ($lapagemagique24==1){
$lapagemagique21["lapagemagique28_url"][$lapagemagique17]=$name;
$lapagemagique27=strpos($lapagemagique30,$lapagemagique34);
$lapagemagique29=strlen($lapagemagique34);
$lapagemagique39=strlen($lapagemagique30);
if ($lapagemagique39>$lapagemagique5){
$lapagemagique31=$lapagemagique27-(($lapagemagique5-$lapagemagique29)/2);
$lapagemagique38=$lapagemagique31+$lapagemagique5;
if ($lapagemagique31<0)
{ $lapagemagique38=$lapagemagique38-$lapagemagique31;
$lapagemagique31=0; }
if ($lapagemagique38>$lapagemagique39)
{ $lapagemagique38=$lapagemagique39; }
}else{$lapagemagique31=0; $lapagemagique38=$lapagemagique39; }
$position=substr($lapagemagique30,
$lapagemagique31,
$lapagemagique38-$lapagemagique31);
$position=ereg_replace($lapagemagique34,"
<font class=lapagemagique45>".$lapagemagique34."</font>",$position);
$position="...".$position."...";
$lapagemagique21["lapagemagique37"][$lapagemagique17]=$position;
}else if ($lapagemagique24==2)
{ $lapagemagique44=ereg_replace(",","",$lapagemagique44);
$lapagemagique35=$lapagemagique44; }
else if ($lapagemagique24>2){
if (strlen($lapagemagique35)<$lapagemagique6)
{ if ($lapagemagique35=="") { $lapagemagique49="";
}else{$lapagemagique49=", "; }
$lapagemagique34=ereg_replace(", ","",$lapagemagique34);
$lapagemagique35.=$lapagemagique49.$lapagemagique34; }
else { if ($lapagemagique25!=1)
{$lapagemagique35=$lapagemagique35." ...";
$lapagemagique25=1;} }}}}
else{if ($lapagemagique34==$lapagemagique33){
if (!in_array($lapagemagique33,$lapagemagique26))
{ array_push($lapagemagique26,$lapagemagique33); }
$lapagemagique24++;
$lapagemagique21["lapagemagique36"][$lapagemagique17]++;
if ($lapagemagique24==1){
$lapagemagique21["lapagemagique28_url"][$lapagemagique17]=$name;
$lapagemagique27=strpos($lapagemagique30,$lapagemagique34);
$lapagemagique29=strlen($lapagemagique34);
$lapagemagique39=strlen($lapagemagique30);
if ($lapagemagique39>$lapagemagique5){
$lapagemagique31=$lapagemagique27-(($lapagemagique5-$lapagemagique29)/2);
$lapagemagique38=$lapagemagique31+$lapagemagique5;
if ($lapagemagique31<0)
{ $lapagemagique38=$lapagemagique38-$lapagemagique31; $lapagemagique31=0; }
if ($lapagemagique38>$lapagemagique39) { $lapagemagique38=$lapagemagique39; }
}else{ $lapagemagique31=0; $lapagemagique38=$lapagemagique39; }
$position=substr($lapagemagique30,$lapagemagique31,$lapagemagique38-$lapagemagique31);
$position=" ".$position." ";
$position=ereg_replace(" ".$lapagemagique34." ","
<span class=lapagemagique45>".$lapagemagique34."</span> ",$position);
$position="...".$position."...";
$lapagemagique21["lapagemagique37"][$lapagemagique17]=$position;
}else if ($lapagemagique24==2)
{ $lapagemagique44=ereg_replace(",","",$lapagemagique44);
$lapagemagique35=$lapagemagique44;
}else if ($lapagemagique24>2){
if (strlen($lapagemagique35)<$lapagemagique6)
{ if ($lapagemagique35=="") { $lapagemagique49="";
}else { $lapagemagique49=", ";
} $lapagemagique34=ereg_replace(", ","",$lapagemagique34);
$lapagemagique35.=$lapagemagique49.$lapagemagique34;
}else { if ($lapagemagique25!=1)
{$lapagemagique35=$lapagemagique35." ..."; $lapagemagique25=1;} }
}}}}}}
fclose($lapagemagique28);
$lapagemagique21["lapagemagique32"][$lapagemagique17]=count($lapagemagique26);
$lapagemagique21["lapagemagique35"][$lapagemagique17]=$lapagemagique35;
if (count($lapagemagique26)>0)
{ $lapagemagique17++; }}}
closedir($lapagemagique20);}}
function lapagemagique15(){
global $lapagemagique21,
$lapagemagique17,$PHP_SELF,$lapagemagique9,$SERVER_NAME,$lapagemagique2,$lapagemagique11,
$lapagemagique10,$lapagemagique7,$lapagemagique8;
echo "<table width=100% border=0><tr><td>\nRésultat de la recherche<br>\n";
$lapagemagique21_lapagemagique24=count($lapagemagique21["lapagemagique28_url"]);
if ($lapagemagique21_lapagemagique24==0) {
echo "<br><br>Aucun résultat pour votre recherche !<br><br></td></tr></table>\n"; }
else{@array_multisort($lapagemagique21["lapagemagique32"],
SORT_DESC,$lapagemagique21["lapagemagique36"],SORT_DESC,
$lapagemagique21["lapagemagique28_url"],
$lapagemagique21["lapagemagique37"],$lapagemagique21["lapagemagique35"]);
$lapagemagique10=ereg_replace(" ",", ",$lapagemagique10);
if (count($lapagemagique11)>1){echo "Vous recherchiez les termes suivants : ";
}else{echo "Vous recherchiez le terme suivant : ";}
echo "<font class=lapagemagique45>$lapagemagique10</font><br><br>\n";
$lapagemagique40=$lapagemagique9*$lapagemagique2+1;
$lapagemagique41=$lapagemagique40+$lapagemagique2-1;
if ($lapagemagique41>$lapagemagique21_lapagemagique24)
{ $lapagemagique41=$lapagemagique21_lapagemagique24; }
echo "Page $lapagemagique40-$lapagemagique41 sur un total de
$lapagemagique21_lapagemagique24 page(s), résultats de la recherche
classés par pertinence<br><br>
</td></tr></table>\n";
for ($lapagemagique48=0;$lapagemagique48<$lapagemagique2;$lapagemagique48++){
$calculer=$lapagemagique9*$lapagemagique2+$lapagemagique48;
$lapagemagique47=$calculer+1;
if ($lapagemagique47<=$lapagemagique41)
{echo "<table width=100% cellpadding=0 cellspacing=0
style='border-style:solid;border-width:1;border-color:666666'>\n";
$lapagemagique43=1;
$lapagemagique21["lapagemagique28_url"]
[$calculer]=ereg_replace("\./","",$lapagemagique21["lapagemagique28_url"][$calculer]);
$lapagemagique28=fopen($lapagemagique21["lapagemagique28_url"][$calculer],"r");
while ($lapagemagique43<7){
$lapagemagique30=fgetss($lapagemagique28,1000,"");
$lapagemagique30=trim($lapagemagique30);
if ($lapagemagique30!=""){
echo "<tr><td height=16 colspan=2>
<span class=lapagemagique46>".$lapagemagique47.".</span>
<a href=".$lapagemagique21["lapagemagique28_url"][$calculer].">
".$lapagemagique30."</a><br>";break;}
$lapagemagique43++;}fclose($lapagemagique28);
if ($lapagemagique21["lapagemagique32"][$calculer]==1)
{ $lapagemagique32="</font>occurence<font color=5E94ca>";
}else{$lapagemagique32="</font>occurences<font color=5E94ca>";}
if ($lapagemagique21["lapagemagique36"][$calculer]==1)
{ $lapagemagique36="</font>mot dans le texte<font color=5E94ca>";
}else{$lapagemagique36="</font>mots dans le texte"; }
echo"\n";
echo $lapagemagique21["lapagemagique37"][$calculer]."<br>\n";
echo "<br>Mots identiques compris dans le texte de la page : <b><font color=5E94ca>
".$lapagemagique21["lapagemagique35"][$calculer]."</b><br>"
.$lapagemagique21["lapagemagique32"][$calculer].
"&nbsp;".$lapagemagique32." |
".$lapagemagique21["lapagemagique36"][$calculer]."&nbsp;".$lapagemagique36."</td>\n";
echo "<tr><td valign=top><br><a href=http://".$SERVER_NAME."/"
.$lapagemagique21["lapagemagique28_url"][$calculer]." target=_blank>\n";
# le repertoire courant est ici moteur : donc http://localhost/moteur
echo "http://".$SERVER_NAME."/"
.$lapagemagique21["lapagemagique28_url"][$calculer]."</a></td>\n";
echo "</td></tr></table><br>\n";}}}
if ($lapagemagique21_lapagemagique24>0){ echo "Page :<font color=5E94ca>\n"; }
$j=ceil($lapagemagique21_lapagemagique24/$lapagemagique2)-1;
for ($calculer=0;$calculer<=$j;$calculer++){
$lapagemagique42=$calculer+1;
if (($lapagemagique9+1)!=$lapagemagique42)
{echo "<a href=$PHP_SELF?lapagemagique10=$lapagemagique10&lapagemagique9=
".$calculer."&lapagemagique7=".$lapagemagique7."&lapagemagique8=".$lapagemagique8.">"; }
echo $lapagemagique42;
if (($lapagemagique9+1)!=$lapagemagique42){echo "</a>";}
echo "&nbsp;";}
if ($lapagemagique21_lapagemagique24>0){echo "\n"; }}?>
</td></tr></table>
</body>
</html> 

Mammouth du PHP | 19672 Messages

24 févr. 2006, 15:20

:shock: tu arrives à lire ce fouillis :?: :?: :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 30 Messages

24 févr. 2006, 15:51

Moi, pas trop non. ^^
Mais je ne suis pas assez expérimenté pour créer mon propre moteur de recherche. Alors si quelqu'un pourrais m'en proposer un pas trop complexe à mettre en place, ca serait sympa.

Mammouth du PHP | 19672 Messages

24 févr. 2006, 15:57

Tu aurais au minimum pu essayer de rendre ce code lisible, comme ceci par exemple:
<?php
//on vérifie la session
include("verif_session.php");
//connection
include("conn.php");
//on récupère la variable $lapagemagique10
if (isset($_POST['lapagemagique10']))
{
    $lapagemagique10 = $_POST['lapagemagique10'];
}
//on récupère la variable $lapagemagique35
if (isset($_POST['lapagemagique35']))
{
    $lapagemagique35 = $_POST['lapagemagique35'];
}
?>
<html>
<head>
<title>moteur de recherche</title>
<style type="text/css">
a:link{
    color:000000;
    text-decoration:none;
    font-family:verdana,tahoma,arial;
    font-size:8pt
}
a:visited{
    color:333333;
    text-decoration:none;
    font-family:verdana,tahoma,arial;
    font-size:8pt
}
a:hover{
    color:000000;
    text-decoration:underline;
    font-family:verdana,tahoma,arial;
    font-size:8pt
}
body,td,input{
    font-family:verdana,tahoma,arial;
    font-size:8pt
}
.lapagemagique46{
    font-family:verdana,tahoma,arial;
    font-size:16pt;
    font-weight:bold;
    color:#86aed7
}
.lapagemagique45{
    color:ffffff;
    font-weight:bold;
    background-color:#86aed7
}
</style>
</head>
<body>
<table width=60% align=center cellpadding=5 cellspacing=0
style='border-style:solid;border-width:1;border-color:444444'>
<tr><td>
<?php
//configuration du script
# nombre maximum de mots dans une phrase pour une recherche
$lapagemagique1=10;
# nombre de résultats à afficher par page
$lapagemagique2=10;
# extensions des pages dans lesquels se feront la recherche, à vous d'en ajouter ou d'en supprimer !
$lapagemagique3=array("html","htm","php","php3","phtml","txt","doc","xml");
# nom des répertoires dans lesquels s'effectura la recherche
$lapagemagique4="./,Plate-forme/,Dossiers_professeurs/sousrepertoire1/";
# Nombre maximum de caractères à afficher pour la description de la page
$lapagemagique5=2000;
# Nombre maximum de caractères à afficher pour les autres mots compris dans la page
$lapagemagique6=2000;
if (!isset($lapagemagique7)) { $lapagemagique7=0; }
if (!isset($lapagemagique8)) { $lapagemagique8=0; }
if (!isset($lapagemagique9)) { $lapagemagique9=0; }
if (!isset($lapagemagique10)) { $lapagemagique10=0; }
$lapagemagique10=trim(stripslashes($lapagemagique10));
if ($lapagemagique7==0) {$lapagemagique10=strtolower($lapagemagique10); }
$lapagemagique10=ereg_replace(","," ",$lapagemagique10);
# effacement des virgules lors de la recherche
$lapagemagique12=array(); $lapagemagique11=array();
$lapagemagique12=explode(" ",$lapagemagique10);
# effacement des espaces lors de la recherche
foreach ($lapagemagique12 as $lapagemagique13){
    if (($lapagemagique13!="") && (count($lapagemagique11)<=($lapagemagique1-1)) && (!in_array($lapagemagique13,$lapagemagique11)))
    { array_push($lapagemagique11,$lapagemagique13); }}
$lapagemagique10=implode(" ",$lapagemagique11);?>
<form action="<?php //echo $PHP_SELF; ?>" method=post>
<table width=100% cellpadding=5 cellspacing=0 border=0 bgcolor=86aed7>
<tr><td>
<?php echo "<input type=text name='lapagemagique10' style='width:167'";
$browser=$HTTP_USER_AGENT;
if (1*strpos(strtolower($browser),"msie")>0) { echo "25"; } else { echo "14"; }
echo "\" value=\"".$lapagemagique10."\"><br><br>";
# lignes de séparations entre le champ de recherche et le bouton de recherche
?>
<input type=submit value=Rechercher style='width:167'></td>
<td><font color=ffffff><b>Majuscules et minuscules</b><br>
<input type="radio" name="lapagemagique7" value="1"
<?php if ($lapagemagique7==1) echo "checked"; ?>>différencier<br>
<input type="radio" name="lapagemagique7" value="0"
<?php if ($lapagemagique7==0) echo "checked"; ?>>ne pas différencier
</td><td><b><font color=ffffff>Type de recherche</b><br>
<input type="radio" name="lapagemagique8" value="1"
<?php if ($lapagemagique8==1) echo "checked"; ?>>mots complets<br>
<input type="radio" name="lapagemagique8" value="0"
<?php if ($lapagemagique8==0) echo "checked"; ?>>portions de mots
</td></tr></table></form>
<?php if ($lapagemagique10!="")
{
    lapagemagique14();lapagemagique15();
}
function lapagemagique14()
{
    global $lapagemagique11,
    $lapagemagique7,$lapagemagique8,$lapagemagique28nummer,
    $lapagemagique21,$lapagemagique5,$lapagemagique6;
    global $lapagemagique3,$lapagemagique4;$lapagemagique17=0;
    $lapagemagique21=array();$lapagemagique18=array();
    $lapagemagique18=explode(",",$lapagemagique4);
    foreach ($lapagemagique18 as $lapagemagique19)
    {
        $lapagemagique20=opendir($lapagemagique19);
        while ($lapagemagique22=readdir($lapagemagique20))
        {
            $name=$lapagemagique19.$lapagemagique22;
            $lapagemagique23=explode(".",$lapagemagique22);
            if (in_array($lapagemagique23[1],$lapagemagique3))
            {
                $lapagemagique24=0;
                $lapagemagique25=0;
                $lapagemagique26=array();
                $lapagemagique28=fopen($name,"r");
                while (!feof($lapagemagique28))
                {
                    $lapagemagique30=fgetss($lapagemagique28,10000,"");
                    if ($lapagemagique7==0)
                    {
                        $lapagemagique30=strtolower($lapagemagique30);
                    }
                    $lapagemagique32=explode(" ",$lapagemagique30);
                    foreach ($lapagemagique32 as $lapagemagique34)
                    {
                        foreach ($lapagemagique11 as $lapagemagique33)
                        {
                            if ($lapagemagique8==0)
                            {
                                if (strstr($lapagemagique34,$lapagemagique33))
                                {
                                    if (!in_array($lapagemagique33,$lapagemagique26))
                                    {
                                        array_push($lapagemagique26,$lapagemagique33);
                                    }
                                    $lapagemagique24++;
                                    $lapagemagique21["lapagemagique36"][$lapagemagique17]++;
                                    if ($lapagemagique24==1)
                                    {
                                        $lapagemagique21["lapagemagique28_url"][$lapagemagique17]=$name;
                                        $lapagemagique27=strpos($lapagemagique30,$lapagemagique34);
                                        $lapagemagique29=strlen($lapagemagique34);
                                        $lapagemagique39=strlen($lapagemagique30);
                                        if ($lapagemagique39>$lapagemagique5)
                                        {
                                            $lapagemagique31=$lapagemagique27-(($lapagemagique5-$lapagemagique29)/2);
                                            $lapagemagique38=$lapagemagique31+$lapagemagique5;
                                            if ($lapagemagique31<0)
                                            {
                                                $lapagemagique38=$lapagemagique38-$lapagemagique31;
                                                $lapagemagique31=0;
                                            }
                                            if ($lapagemagique38>$lapagemagique39)
                                            {
                                                $lapagemagique38=$lapagemagique39;
                                            }
                                        }
                                        else
                                        {
                                            $lapagemagique31=0;
                                            $lapagemagique38=$lapagemagique39;
                                        }
                                        $position=substr($lapagemagique30,
                                        $lapagemagique31,
                                        $lapagemagique38-$lapagemagique31);
                                        $position=ereg_replace($lapagemagique34,"<font class=lapagemagique45>".$lapagemagique34."</font>",$position);
                                        $position="...".$position."...";
                                        $lapagemagique21["lapagemagique37"][$lapagemagique17]=$position;
                                    }
                                    elseif ($lapagemagique24==2)
                                    {
                                        $lapagemagique44=ereg_replace(",","",$lapagemagique44);
                                        $lapagemagique35=$lapagemagique44;
                                    }
                                    elseif ($lapagemagique24>2)
                                    {
                                        if (strlen($lapagemagique35)<$lapagemagique6)
                                        {
                                            if ($lapagemagique35=="")
                                            {
                                                $lapagemagique49="";
                                            }
                                            else
                                            {
                                                $lapagemagique49=", ";
                                            }
                                            $lapagemagique34=ereg_replace(", ","",$lapagemagique34);
                                            $lapagemagique35.=$lapagemagique49.$lapagemagique34;
                                        }
                                        else
                                        {
                                            if ($lapagemagique25!=1)
                                            {
                                                $lapagemagique35=$lapagemagique35." ...";
                                                $lapagemagique25=1;
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if ($lapagemagique34==$lapagemagique33)
                                {
                                    if (!in_array($lapagemagique33,$lapagemagique26))
                                    {
                                        array_push($lapagemagique26,$lapagemagique33);
                                    }
                                    $lapagemagique24++;
                                    $lapagemagique21["lapagemagique36"][$lapagemagique17]++;
                                    if ($lapagemagique24==1)
                                    {
                                        $lapagemagique21["lapagemagique28_url"][$lapagemagique17]=$name;
                                        $lapagemagique27=strpos($lapagemagique30,$lapagemagique34);
                                        $lapagemagique29=strlen($lapagemagique34);
                                        $lapagemagique39=strlen($lapagemagique30);
                                        if ($lapagemagique39>$lapagemagique5)
                                        {
                                            $lapagemagique31=$lapagemagique27-(($lapagemagique5-$lapagemagique29)/2);
                                            $lapagemagique38=$lapagemagique31+$lapagemagique5;
                                            if ($lapagemagique31<0)
                                            {
                                                $lapagemagique38=$lapagemagique38-$lapagemagique31; $lapagemagique31=0;
                                            }
                                            if ($lapagemagique38>$lapagemagique39)
                                            {
                                                $lapagemagique38=$lapagemagique39;
                                            }
                                        }
                                        else
                                        {
                                            $lapagemagique31=0;
                                            $lapagemagique38=$lapagemagique39;
                                        }
                                        $position=substr($lapagemagique30,$lapagemagique31,$lapagemagique38-$lapagemagique31);
                                        $position=" ".$position." ";
                                        $position=ereg_replace(" ".$lapagemagique34." ","<span class=lapagemagique45>".$lapagemagique34."</span> ",$position);
                                        $position="...".$position."...";
                                        $lapagemagique21["lapagemagique37"][$lapagemagique17]=$position;
                                    }
                                    elseif ($lapagemagique24==2)
                                    {
                                        $lapagemagique44=ereg_replace(",","",$lapagemagique44);
                                        $lapagemagique35=$lapagemagique44;
                                    }
                                    elseif ($lapagemagique24>2)
                                    {
                                        if (strlen($lapagemagique35)<$lapagemagique6)
                                        {
                                            if ($lapagemagique35=="")
                                            {
                                                $lapagemagique49="";
                                            }
                                            else
                                            {
                                                $lapagemagique49=", ";
                                            }
                                            $lapagemagique34=ereg_replace(", ","",$lapagemagique34);
                                            $lapagemagique35.=$lapagemagique49.$lapagemagique34;
                                        }
                                        else
                                        {
                                            if ($lapagemagique25!=1)
                                            {
                                                $lapagemagique35=$lapagemagique35." ..."; $lapagemagique25=1;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                fclose($lapagemagique28);
                $lapagemagique21["lapagemagique32"][$lapagemagique17]=count($lapagemagique26);
                $lapagemagique21["lapagemagique35"][$lapagemagique17]=$lapagemagique35;
                if (count($lapagemagique26)>0)
                {
                    $lapagemagique17++;
                }
            }
        }
        closedir($lapagemagique20);
    }
}
function lapagemagique15()
{
    global $lapagemagique21,
    $lapagemagique17,$PHP_SELF,$lapagemagique9,$SERVER_NAME,$lapagemagique2,$lapagemagique11,
    $lapagemagique10,$lapagemagique7,$lapagemagique8;
    echo "<table width=100% border=0><tr><td>\nRésultat de la recherche<br>\n";
    $lapagemagique21_lapagemagique24=count($lapagemagique21["lapagemagique28_url"]);
    if ($lapagemagique21_lapagemagique24==0)
    {
        echo "<br><br>Aucun résultat pour votre recherche !<br><br></td></tr></table>\n";
    }
    else
    {
        @array_multisort($lapagemagique21["lapagemagique32"], SORT_DESC,$lapagemagique21["lapagemagique36"],SORT_DESC, $lapagemagique21["lapagemagique28_url"], $lapagemagique21["lapagemagique37"],$lapagemagique21["lapagemagique35"]);
        $lapagemagique10=ereg_replace(" ",", ",$lapagemagique10);
        if (count($lapagemagique11)>1)
        {
            echo "Vous recherchiez les termes suivants : ";
        }
        else
        {
            echo "Vous recherchiez le terme suivant : ";
        }
        echo "<font class=lapagemagique45>$lapagemagique10</font><br><br>\n";
        $lapagemagique40=$lapagemagique9*$lapagemagique2+1;
        $lapagemagique41=$lapagemagique40+$lapagemagique2-1;
        if ($lapagemagique41>$lapagemagique21_lapagemagique24)
        {
            $lapagemagique41=$lapagemagique21_lapagemagique24;
        }
        echo "Page $lapagemagique40-$lapagemagique41 sur un total de $lapagemagique21_lapagemagique24 page(s), résultats de la recherche classés par pertinence<br><br></td></tr></table>\n";
        for ($lapagemagique48=0;$lapagemagique48<$lapagemagique2;$lapagemagique48++)
        {
            $calculer=$lapagemagique9*$lapagemagique2+$lapagemagique48;
            $lapagemagique47=$calculer+1;
            if ($lapagemagique47<=$lapagemagique41)
            {
                echo "<table width=100% cellpadding=0 cellspacing=0 style='border-style:solid;border-width:1;border-color:666666'>\n";
                $lapagemagique43=1;
                $lapagemagique21["lapagemagique28_url"]
                [$calculer]=ereg_replace("\./","",$lapagemagique21["lapagemagique28_url"][$calculer]);
                $lapagemagique28=fopen($lapagemagique21["lapagemagique28_url"][$calculer],"r");
                while ($lapagemagique43<7)
                {
                    $lapagemagique30=fgetss($lapagemagique28,1000,"");
                    $lapagemagique30=trim($lapagemagique30);
                    if ($lapagemagique30!="")
                    {
                        echo "<tr><td height=16 colspan=2><span class=lapagemagique46>".$lapagemagique47.".</span><a href=".$lapagemagique21["lapagemagique28_url"][$calculer].">".$lapagemagique30."</a><br>";
                        break;
                    }
                    $lapagemagique43++;}fclose($lapagemagique28);
                    if ($lapagemagique21["lapagemagique32"][$calculer]==1)
                    {
                        $lapagemagique32="</font>occurence<font color=5E94ca>";
                    }
                    else
                    {
                        $lapagemagique32="</font>occurences<font color=5E94ca>";
                    }
                    if ($lapagemagique21["lapagemagique36"][$calculer]==1)
                    {
                        $lapagemagique36="</font>mot dans le texte<font color=5E94ca>";
                    }
                    else
                    {
                        $lapagemagique36="</font>mots dans le texte";
                    }
                    echo"\n";
                    echo $lapagemagique21["lapagemagique37"][$calculer]."<br>\n";
                    echo "<br>Mots identiques compris dans le texte de la page : <b><font color=5E94ca>".$lapagemagique21["lapagemagique35"][$calculer]."</b><br>".$lapagemagique21["lapagemagique32"][$calculer]."&nbsp;".$lapagemagique32." | ".$lapagemagique21["lapagemagique36"][$calculer]."&nbsp;".$lapagemagique36."</td>\n";
                    echo "<tr><td valign=top><br><a href=http://".$SERVER_NAME."/".$lapagemagique21["lapagemagique28_url"][$calculer]." target=_blank>\n";
                    # le repertoire courant est ici moteur : donc http://localhost/moteur
                    echo "http://".$SERVER_NAME."/".$lapagemagique21["lapagemagique28_url"][$calculer]."</a></td>\n";
                    echo "</td></tr></table><br>\n";
            }
        }
    }
    if ($lapagemagique21_lapagemagique24>0)
    {
        echo "Page :<font color=5E94ca>\n";
    }
    $j=ceil($lapagemagique21_lapagemagique24/$lapagemagique2)-1;
    for ($calculer=0;$calculer<=$j;$calculer++)
    {
        $lapagemagique42=$calculer+1;
        if (($lapagemagique9+1)!=$lapagemagique42)
        {
            echo "<a href=$PHP_SELF?lapagemagique10=$lapagemagique10&lapagemagique9=".$calculer."&lapagemagique7=".$lapagemagique7."&lapagemagique8=".$lapagemagique8.">";
        }
        echo $lapagemagique42;
        if (($lapagemagique9+1)!=$lapagemagique42)
        {
            echo "</a>";
        }
        echo "&nbsp;";
    }
    if ($lapagemagique21_lapagemagique24>0)
    {
        echo "\n";
    }
}
?>
</td>
</tr>
</table>
</body>
</html>
Au moins on a une petite chance de suivre le déroulement normal...

Ceci dit, ça fait quand même plus de 400 lignes de code et en fin de compte, on ne sait pas quelle est la nature du problème que tu n'as visiblement pas identifié ni cerné dans le code lui-même : je me trompe ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 67 Messages

24 févr. 2006, 16:16

Moi, pas trop non. ^^
Mais je ne suis pas assez expérimenté pour créer mon propre moteur de recherche. Alors si quelqu'un pourrais m'en proposer un pas trop complexe à mettre en place, ca serait sympa.
c'est pour une base mysql ?

sinon un simple select x from y where x like "%toto%" peut suffir a une recherche

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 févr. 2006, 17:35

PHPDig ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 30 Messages

25 févr. 2006, 20:22

Moi, pas trop non. ^^
Mais je ne suis pas assez expérimenté pour créer mon propre moteur de recherche. Alors si quelqu'un pourrais m'en proposer un pas trop complexe à mettre en place, ca serait sympa.
c'est pour une base mysql ?

sinon un simple select x from y where x like "%toto%" peut suffir a une recherche
Ouai en faite, j'y avais pas pensé ! Je vais essayé.

Merci ! :D

ViPHP
pjl
ViPHP | 2119 Messages

26 févr. 2006, 12:41

Je dois réaliser pour une école une plate-forme sur laquelle les enseignants pourront aller poster le cours en ligne et les élèves les consulter.
As tu commencé par regarder les solutions déjà existantes au sein de l'éducation nationale ?

Mammouth du PHP | 19672 Messages

26 févr. 2006, 12:44

Il y a pas Claroline qui fait ça ? :-s
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
pjl
ViPHP | 2119 Messages

26 févr. 2006, 12:47

Je ne connais pas les noms mais j'espère qu'il existe un standart de façon à ce qu'un prof muté puisse emporter ses cours avec lui le jour ou il est muté.

Mammouth du PHP | 19672 Messages

26 févr. 2006, 12:53

pjl, je suis pas bien fier de toi, Claroline ne te dit vraiment rien? Si je te parle de Moosh, ça évoque quelques chose dans ton esprit ? :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
pjl
ViPHP | 2119 Messages

26 févr. 2006, 23:32

J'avais oublié. :oops:
Mais c'est belge et mùoi, je parlais de l'éducation nationale française. :langue: