Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par :

Pbm avec PHP pour un moteur de recherche

albah, le mercredi 12 mai 2004 à 14:55:22 
 Signaler ce message aux modérateurs

Bonjour,
J'ai un script PHP pour un moteur de recherchequi ne fonctionne pas... Dedans, on trouve le commentaire suivant:

*/this script is written to work with php3 - if you are running php4, simply remove the 3 from the file name reference
make the same modification in the form tag on our search page*/

Mon hébergeur m'impose PHP4.1.1, mais a priori ce n'est pas un pbm de compatibilité.

Voici le message d'erreur lors du lancement d'une recherche:

Warning: OpenDir: Permission denied (errno 13) in /easyonline/www/www.koppen-lethem.fr/htdocs/reponse.php on line 28

Warning: Supplied argument is not a valid Directory resource in /easyonline/www/www.koppen-lethem.fr/htdocs/reponse.php on line 29

Warning: Supplied argument is not a valid Directory resource in /easyonline/www/www.koppen-lethem.fr/htdocs/reponse.php on line 91

Quelqun peut il ma'ider SVP, s'agit il d'un pbm de compatibilité en tre PHP3 et 4, d'un pbm de configuratin du script ou d'autre chose...?

Merci d'avance

1

flokocha, le mercredi 12 mai 2004 à 15:05:46

Si tu nous donnais au moins les lignes en question ça pourrait nous aider...

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.

Répondre à flokocha

2

albah, le mercredi 12 mai 2004 à 15:10:45

Voilà le code. Il y'a une autre page .php mais je ne crois pas qu'elle soit intéressante, elle envoie juste la valeur remplie dans le champ.
Si tu peux m'aider avec ca, merci....


<?
if (!empty($keywords))
{
?> </font></p>
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">
Vous recherchiez <b><? print ($keywords); ?></b> <?

/* this script must reside in your root directory and will search recursively down through your web site
this script is written to work with php3 - if you are running php4, simply remove the 3 from the file name reference
make the same modification in the form tag on our search page*/

$key = escapeshellcmd ($keywords); // let's make sure any metacharacters get escaped so as not to wreak havoc with our host
$tcount = 0; // initialize our file count

function scroll($current, $terms, &$total)
{ //print $terms;
$handle=opendir($current); // open the directory passed as the first argument
while (($file = readdir($handle))!=false) // keep cycling through all the files
{ $first = ""; // initialize first occurance of the match
$fcount = 0; // initialize number of matches per file
$found = false; // initialize flag - true or false
$no_title = true;
$file_p = $current . "/" . $file; // create the path to the file for the a href
if (($file != ".") && ($file != "..")) // ignore . and .. files
{
if (is_file($file_p) && (substr($file,0,1) != "_") && ((substr(strrev($file),0,1) == "l") || (substr(strrev($file),0,1) == "m") ||(substr(strrev($file),0,3) == "php"))) // limit our search to
// php3, php, html, htm and txt files
{
$file_b = fopen($file_p, "r"); // open the file for reading
while (!feof($file_b)) // continue to end of line
{ $line = fgets($file_b, 2000); // try and remove all data between <> when reading
$line = trim($line); // trim any leading or trailing white space
if (!empty($line))
{ //print $line;
if ($no_title == true)
{ preg_match ("/title+[\w\W]*title+/i", $line, $matches);
if ($matches)
{ $title = $matches[0];
$no_title = false;}
}
$newline = eregi_replace ("(<'.*>)", "", $line);
if ((strpos($newline , $terms) >=0 ) && (strpos($newline , $terms))) // check that line for a match, using the keywords, the line, and returning an array of the matches
{//print "match found" . strpos($newline , $terms);
$found = true; // set flag
$fcount++; //increment total found for this file
if ($first == "")
{
$first = $newline ; // set the variable to display the first line where the match occurred
}
}
}
}
if ($found == true)
{ $len = strlen($file_p); // this allows us to print the link, ignoring the starting /
$this_title = ereg_replace ("title", "", $title);
$this_title = preg_replace ("/>/", "", $this_title);
$this_title = preg_replace ("/</", "", $this_title);
$this_title = eregi_replace ("<", "", $this_title);
$this_title = eregi_replace (">", "", $this_title);
$this_title = eregi_replace ("/", "", $this_title);
$this_title = ereg_replace ("/", "", $this_title);
$t_len = strlen($this_title);
$total++; // increment total number of file matches
print ("<p><a href ='" . $file_p . "'>" . $this_title. "</a> contient ". $fcount . " correspondance(s).");
}
}
$found = false;
$no_title = true;
// this is the recursive call
if ((is_dir($file_p)) && (dirname($file_p) != "_private") && (dirname($file_p) != "_someothername"))// if the file is a directory and not a private one
{
$new_dir = $current . "/" . $file;
if (($new_dir != "./mysql") && ($new_dir !="./easyonline/www/www.koppen-lethem.fr/htdocs"))
scroll ($new_dir, $terms, &$total); // call the function recursively when it is a directory
}
// end of if (($file != ".") && ($file != ".."))
}
// end of while (($file = readdir($handle))!=false)
}
closedir($handle); // close the directory
// end of function
}

// print $key;

scroll(".", $key, $tcount); // initial call to the function, passing it the current directory as the start, the cleaned up search terms and the total number of files found - this is passed by reference so it can be incremeneted script-level
if ($tcount > 0)
{
print ("<p>Résultat(s) trouvé(s) : " . $tcount . " correspondant(s).");}
else
{
print ("Pas de réponse pour cette recherche.");}
}
else
{
print ("<p>#");
} // end of keywords not empty

?>

Répondre à albah

3

flokocha, le mercredi 12 mai 2004 à 15:14:50

C'est un problème de droits, tu n'as pas les droits nécessaires pour ouvrir un répertoire.


.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.

Répondre à flokocha

4

albah, le mercredi 12 mai 2004 à 15:38:01

Peux tu alors me dire quels sont les choses a faire pour résoudre ce problème?
dois je contacter mon hébergeur?

Merci de tont aide

Répondre à albah

5

flokocha, le mercredi 12 mai 2004 à 15:40:34

Pour changer les droits en php il y a bien la fonction chmod(), mais si tu n'as pas les droits nécessaires pour ouvir un répertoire, tu n'auras pas les droits non plus pour changer ces droits.

Essaie toujours de contacter ton hébergeur, oui.


.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.

Répondre à flokocha

6

albah, le mercredi 12 mai 2004 à 15:43:26

J'ai 751 comme attribut pourle répertoire qui contient tous les dossiers de mon site... et 644 pour mes deux fichiers php...
je peux changer ces droits... mais que dios je mettre et à quels dossiers...?

Merci

Répondre à albah

7

albah, le mercredi 12 mai 2004 à 15:51:10

Dois je rendre l'exeution possible pour le groupe ou le publique?

Répondre à albah

8

flokocha, le mercredi 12 mai 2004 à 15:54:20

Laisse 751 pour le répertoire mais il faut donner les droits au public.

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.

Répondre à flokocha

9

albah, le mercredi 12 mai 2004 à 15:57:16

J'ai essayé de donner les droits au publique pour le fichier php et ca ne marche toujours pas...?

Mission impossible?

Répondre à albah

10

 albah, le mercredi 12 mai 2004 à 16:43:49

Qqn peut m'aider SVP. Je peux changer les droits mais ca ne marche toujours pas

Répondre à albah
[PHP + MySQL] Rechercher des mot ressemblants Bonjour. Je souhaiterai créer une sorte de moteur de recherche sur mon site, mais qui chercherait le mot entré, et proposerait des mots ressemblants, comme dans Google, lors d'une faute de frappe. Je ne vois pas du tout comment effectuer cela. Merci.... www.commentcamarche.net/forum/affich-2203178-php-mysql-rechercher-des-mot-ressemblants
[PHP/MYSQL] Recherche sur une base de donnée (Résolu) Bonjour, Je m'explique je compte créer une page html avec formulaire ou je rentrerait des champs qui pas la page php enregistrera les données dans la base de donnée. Lorsqu'une personnes viendra sur une autres page html ou il aura un champ pour entrer... www.commentcamarche.net/forum/affich-4893667-php-mysql-recherche-sur-une-base-de-donnee
[PHP] Mot de passe sécurisé (Résolu) Bonjour, Le titre n'est pas claire, je sais .. En faite j'ai crée un formulaire PHP pour que les membres de mon site puissent modifier leur mot de passe... Le souci c'est qu'ils sont aujourd'hui libre pour la création de leur nouveau mot de passe et... www.commentcamarche.net/forum/affich-8807663-php-mot-de-passe-securise
Référencer son site : les moteurs de rechercheVoici quelques autres "trucs" à savoir pour référencer un site. Les moteurs de recherche où il faut à tout prix présenter son site : 1) DMOZ ( www.dmoz.org). Ce site est très important car Google, Yahoo, Lycos, Voila... vont tous rechercher des... www.commentcamarche.net/faq/sujet-217-referencer-son-site-les-moteurs-de-recherche
[vi/vim] Rechercher un motAfin de rechercher un mot sous Vi/Vim, il suffit de taper "/" ou "?", suivi du mot à rechercher afin de lancer la recherche respectivement vers le bas ou vers le haut. Une pression sur la touche "n" permet d'aller directement à l'occurence... www.commentcamarche.net/faq/sujet-865-vi-vim-rechercher-un-mot
[IE 7 et 8] Modifier le moteur de recherche par défautPour Internet Explorer 7 Ouvrez Internet Explorer. Faites un clic sur la flèche dans la barre de recherche en haut à droite. Cliquez sur "Modifier les paramètres de recherche par défaut". Vous pouvez : Définir un moteur de recherche... www.commentcamarche.net/faq/sujet-13305-ie-7-et-8-modifier-le-moteur-de-recherche-par-defaut
Meilleur site ou moteur recherche musiqueBonjour, je cherche bon site musique à télécharger et aussi quel est le meilleur moteur de recherche pour musique? Merci. www.commentcamarche.net/forum/affich-9542681-meilleur-site-ou-moteur-recherche-musique
PHP: navigation et numérotation de pagesBonjour à tous, Je suis à la recherche d'un petit script PHP (ou idée) afin de réaliser une numérotation de page et une navigation clair sur mon site. Si quelqu'un a des idées, merci d'avance. A+ www.commentcamarche.net/forum/affich-1261640-php-navigation-et-numerotation-de-pages
Script php mot de passe!! (Résolu)Hello, Normalement quand je fait un .htacess pour une page si j'ai envie de rentrer dans la page il me demande le login et le mot de passe avec le ***** par defaut (celui que l'on voit dans msn 6 ) maintenant j'aimerai un script demandant un login et... www.commentcamarche.net/forum/affich-1883861-script-php-mot-de-passe
Le moteur de recherche Bing disponible en France(Paris - Relax news) - Dévoilé le 28 mai dernier par Microsoft, le nouveau moteur de recherche Bing est désormais accessible en version test (bêta) aux internautes français. Présenté comme un outil d'aide à la décision, Bing.com a pour lourde tâche de... www.commentcamarche.net/actualites/le-moteur-de-recherche-bing-disponible-en-france-5849009-actualite.php3
PHP - Créer un moteur de rechercheIdée générale Le moteur de recherche ci-dessous ne correspond qu'à une idée possible de moteur de recherche simple, ne gérant qu'un seul mot clé. Le concept du fonctionnement de ce moteur est de créer une base de donnée contenant les mots clés de... www.commentcamarche.net/contents/php/phpmoteur.php3
Web - Moteur de rechercheIl existe une énorme quantité d'informations sur Internet (plusieurs millions ou milliards de documents), et ces informations sont pour la plupart renouvelées quotidiennement. Le moteur de recherche est un élément indispensable pour s'y... www.commentcamarche.net/contents/www/moteur-recherche.php3
Rechercher sur InternetRechercher sur Internet Etant donné le nom de pages web présentes pour le Web, il est nécessaire d'utiliser un outil pour rechercher une page spécifique correspondant à des critères de recherche: le moteur de recherche. Pour utiliser un moteur de... www.commentcamarche.net/contents/utile/recherch.php3