Petit moteur de recherche

Bonjour, je débute en php et je souhaite créer un petit moteur de recherche dans mon site.
Lorsque je le mets en ligne, j'ai toujours se message d'erreur :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/venteart/public_html/mrech.php on line 77

Voici le code complet (je me suis basé sur un livre de programmation en php) :

<html>
<head>
<title>Résultat de la recherche</title>
</head>

<body>
<?php

//Test si la page correspond à la recherche
function test() {
global $texte, $l1, $l2, $l3, $l4;
$sat1=true;
$sat2=true;
if ($l1 != ' ' && strpos ($texte, $l1)===false) {$sat1=false;}
if ($l2 != ' ' && strpos ($texte, $l2)===false) {$sat1=false;}
if ($l1 == ' ' && $l2 == ' ') {$sat1=false;}
if ($l3 != ' ' && strpos ($texte, $l3)===false) {$sat2=false;}
if ($l4 != ' ' && strpos ($texte, $l4)===false) {$sat2=false;}
if ($l3 == ' ' && $l4 == ' ') {$sat2=false;}
return $sat1 || $sat2;
}

//Recuperation des locutions à chercher
$l1 = strtoupper (stripslashes($_POST['l1']));
$l2 = strtoupper (stripslashes($_POST['l2']));
$l3 = strtoupper (stripslashes($_POST['l3']));
$l4 = strtoupper (stripslashes($_POST['l4']));

//Lecture de la page de formulaire
$fp=fopen('mrech.htm', 'r');
$page=fread($fp, 32000);
fclose($fp);
$psb=strpos($page, '</body>');
$page=substr($page, 0, $psb);
$page.="\nRecherche de "; $l1;
if($l2!='') {$page.= 'ET'.$l2;}
if($l3!='') {$page.= 'OU'.$l3;}
if($l4!='') {$page.= 'ET'.$l4;}
$page.="<br /><br />\n";

//Lecture du catalogue du répertoire racine
$drac=getcwd();
$e=opendir($drac);
while (($f=readdir($e) !== false)){
if (($f != '.') && ($f != '..')){
if (strpos($f, '.')===false) {
$dirs[]=$f;
}else{
if (strpos($f, '.htm') !==false) {
$fhtm[]=$f;
}
}
}
}

//lecture des sous-répertoires
foreach ($dirs as $rep){
$dr=$drac.'/'.$rep;
$e=opendir($dr);
while (($f=readdir($e)) !== false) {
if (($f!='.') && ($f != '..')) {
if (strpos($f, '.') !== false){
if (strpos($f, '.htm') !== false){
$fhtm[]=$rep.'/'.$f;
}
}
}
}
}

//Examen des fichiers
foreach($fhtm as $fnam){
$fich=fopen($fnam, 'r');
$texte=strtoupper(fread($fich, 32000));
fclose($fich);
if (teste()){
$page.='<a href="'.$fnam'">'.$fnam.'</a>  ';
}
}
echo $page. "\n</body></html>";
?>

</body>
</html>

Est-ce que quelqu'un peut m'aider? Merci

7 réponses

  1. Tu nous aurais seulement donné la ligne 77 ...
    $page.='<a href="'.$fnam'">'.$fnam.'</a>  ';
    J'ai souligné l'endroit où est le problème, j'espère que tu comprendras.
    0
    1. S'il s'agit d'un . à rajouter, ca m'affiche deux autres erreurs :

      Warning: Invalid argument supplied for foreach() in /home/venteart/public_html/mrech.php on line 57

      Warning: Invalid argument supplied for foreach() in /home/venteart/public_html/mrech.php on line 72
      0
      1. $fhtm et $dirs ne sont pas des array.
        0
        1. J'ai effectué des corrections (rajouter des } et un . avant $l1), mais maintenant j'ai ça:

          Warning: opendir(/home/venteart/public_html/error_log) [function.opendir]: failed to open dir: Not a directory in /home/venteart/public_html/mrech.php on line 59

          Warning: readdir(): supplied argument is not a valid Directory resource in /home/venteart/public_html/mrech.php on line 60

          Fatal error: Call to undefined function teste() in /home/venteart/public_html/mrech.php on line 76
          0
          1. Es-tu sûr que "/home/venteart/public_html/error_log" soit un dossier ?
            Pour la dernière erreur, tu n'as pas défini la fonction teste().
            0
            1. Justement, je viens de supprimer error_log et quand je le fais, j'ai :

              Fatal error: Call to undefined function teste() in /home/venteart/public_html/mrech.php on line 76
              0
              1. Ça ne veut dire que tu n'as pas écrit la fonction teste().
                0