Accueil > Forum > > > > problème de création de moteur de recherche
problème de création de moteur de recherche
vendredi 24 novembre 2006 à 16:53:51 |
problème de création de moteur de recherche

astuces_jeux
|
bonjour, j'ai utilisé le moteur de recherche ici : [ Lien ] et j'ai ces deux erreur :
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in search/result.php on line 27 et
Parse error: syntax error, unexpected '<' in //search/admin/indexation.php on line 22
on peut me les corrigés ces codes ???
voici les codes :
page de création de la base :
<html>
<head>
<title>Creation de la table</title>
</head>
<body>
<?php
$host = "Votre serveur de base de données";
$user = "Votre nom d'utilisateur";
$password = "Votre mot de passe";
$bdd = "Votre base de données sur le serveur";
mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
// on choisit la bonne base
mysql_select_db($bdd) or die ("Connexion a la base impossible");
$query = "CREATE TABLE search (
lien varchar(128) NOT NULL,
keyword text,
titre varchar(128),
id INT(11),
PRIMARY KEY (id)
)";
mysql_query($query) or die ("Erreur de modification de la table");
// on ferme la base
mysql_close();
?>
</body>
</html>
Page d'indexation :
<?php
echo "
<p>\n
<table bgcolor="#EFF2FB"border=\"0\" cellspacing=\"0\" cellpadding=\"1\" width="100%">\n
<tr><td>\n
<a name=\"#index\"><h2>Indexation du site en cours</h2></a>\n
</td></tr>\n
</table>\n
<p>\n";
$host = "Le serveur de base de données";
$bdd = "Votre base de données";
/* Connexion avec MySQL */
mysql_connect($host,$user,$password) or die ("Impossible de se connecter
au serveur de base de donnees");
mysql_select_db($bdd) or die ("Impossible d'accéder à la base $bdd");
$query = "DELETE FROM search";
mysql_query($query) or die ("Erreur de modification de la table");
function ScanDir($Directory){
$MyDirectory = opendir($Directory);
while($Entry = readdir($MyDirectory)) {
echo "<br>entry= $Entry<br>";
echo "repertoire= $Directory<br>";
echo "chemin= $Directory/$Entry<br>";
if(is_dir($Entry)&& $Entry != "." && $Entry != "..") {
echo "<b><font color=\"red\">$Entry</font></b> est un repertoire<br>";
ScanDir("$Entry/$Directory");
}
else {
if (eregi(".htm",$Entry)) {
$MetaTags = get_meta_tags($Directory."/index.php3".$Entry);
if ($MetaTags["robots"] == "all") {
$MetaKey = $MetaTags["keywords"];
$MetaKey = strtoupper($MetaKey);
echo "Meta($Directory/$Entry): $MetaKey \n";
$MetaTitre = $MetaTags["title"];
echo "Meta($Directory/$Entry): $MetaTitre \n";
$query = "INSERT INTO search (lien,keyword,titre)
VALUES(\"$Directory/$Entry\",\"$MetaKey\",\"$MetaTitre\")";
$mysql_result = mysql_query($query) or die ("Erreur
de modification de la table par la requete \"$query\"");
}
}
}
}
closedir($MyDirectory);
}
$open_basedir=".";
ScanDir(".");
mysql_close();
?>
Page de formulaire :
<form method="post" action="search.php3">
Entrez un mot clé:<br>
<input type="text" name="Mot" size="15">
<input type="submit" value="Rechercher" alt="Lancer la recherche!">
</form>
Page de résultats :
<?php
$host = "Votre serveur de base de données";
$user = "Votre nom d'utilisateur";
$password = "Votre mot de passe";
$bdd = "Votre base de données sur le serveur";
mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
// on choisit la bonne base
mysql_select_db($bdd) or die ("Connexion a la base impossible");
echo "
<html>
<head>
<title>Résultat de la recherche</title>
</head>
<body>";
if (($Mot == "")||($Mot == "%")) {
// Si aucun mot clé n'a été saisi, le script demande à l'utilisateur
// de bien vouloir préciser un mot clé
echo "
Veuillez entrer un mot clé s'il vous plaît!
<p>";
}
else {
// On selectionne les enregistrements contenant le mot clé dans les keywords ou le titre
$query = "SELECT distinct count(lien) FROM search
WHERE keyword LIKE \"%$Mot%\"
OR titre LIKE \"%$Mot%\"
";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$Nombre = $row[0];
// Si aucun enregistrement n'est retourné, on affiche un message adéquat
if ($Nombre == "0") {
echo "
<h2>Aucun résultat ne correspond à votre recherche</h2>
<p>
";
}
// Sinon, on affiche le nombre d'enregistrements correspondant et les résultats eux-mêmes
else {
$query = "SELECT distinct lien,keyword,titre FROM search
WHERE keyword LIKE \"%$Mot%\"
OR titre LIKE \"%$Mot%\" ORDER by titre ASC";
$result = mysql_query($query);
// Si un seul enregistrement est trouvé, on affiche un message au singulier
if ($Nombre == "1") {
echo "
<a name=\"#resultat\"><h2>Résultat: Un article trouvé</h2></a>
<p>";
}
// Dans le cas contraire le message est au pluriel...
else {
echo "
<a name=\"#resultat\"><h2>Résultat: $Nombre articles trouvés</h2></a>
<p>";
}
while($row = mysql_fetch_row($result))
{
echo "
<p>\n
<b>$row[2]</b>\n
<br><a href=\"../$row[0]\">Visualiser l'article</a>\n
<p>\n
";
}
}
}
// on ferme la base
mysql_close();
?>
</body>
</html>
______________________ Astuces_jeux
|
|
vendredi 24 novembre 2006 à 22:07:43 |
Re : problème de création de moteur de recherche

audayls
|
Salut, Changes dans "indexation.php" : " echo "
<p>\n
<table bgcolor="#EFF2FB"border=\"0\" cellspacing=\"0\" cellpadding=\"1\" width="100%">\n
<tr><td>\n
<a name=\"#index\"><h2>Indexation du site en cours</h2></a>\n
</td></tr>\n
</table>\n
<p>\n";" par " echo '<p> <table bgcolor="#EFF2FB" border="0" cellspacing="0" cellpadding="1" width="100%"> <tr> <td> <a name="#index"> <h2>Indexation du site en cours</h2> </a> </td> </tr> </table> </p>';" Sinon ton script est crade, si tu veux je peux t'aider à la nettoyer ( cela me fera progresser en MySQL  ) mais là j'ai pas le temps j'essayerai demain ;-) For every choice, a consequence ( Fable)
|
|
samedi 25 novembre 2006 à 08:53:56 |
Re : problème de création de moteur de recherche

astuces_jeux
|
merci ce serai sympa de le nettoyer mais pour les erreurs dans la page de résultats
|
|
samedi 25 novembre 2006 à 15:52:56 |
Re : problème de création de moteur de recherche

audayls
|
Salut jeune padawan Créer un fichier "index.php" : <?php require_once('config.php'); echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="robots" content="noindex,nofollow" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> <title>AmeraSearch</title> <style type="text/CSS"> .error { color: red; font-size: 13px; font-weight: bold; } </style> <script type="text/Javascript"> function verif() { if (document.search.search.value === "") { alert("Veuillez indiquer un terme à rechercher"); document.search.search.focus(); return false; } else return true; } </script> </head> <body>'; if ($connect === FALSE) echo '<span class="error">Erreur lors de la connection au serveur MySQL.</span>'; else { if (empty($_POST)) { mysql_close(); echo ' <form action="?" method="post" name="search" onsubmit="javascript: return verif()"> Rechercher : <input name="search" type="text" value="" /> <br /> Rechercher dans : <select name="rows"> <option value="all" selected="selected">Tous les champs</option> <option value="title">Seulement dans les titres</option> <option value="keywords">Seulement dans les mots clés</option> <option value="description">Seulement dans la description</option> </select><br /> <input name="submit" type="submit" value="Rechercher" /> </form>'; } else { echo '<form action="?" method="post" name="search" onsubmit="javascript: return verif();"> Rechercher : <input name="search" type="text" value="',$_POST['search'],'" /> <br /> Rechercher dans : <select name="rows"> <option value="all">Tous les champs</option> <option value="title">Seulement dans les titres</option> <option value="keywords">Seulement dans les mots clés</option> <option value="description">Seulement dans la description</option> </select><br /> <input name="submit" type="submit" value="Rechercher" /> </form>'; $query = 'SELECT `id`,`description`,`keywords`,`title` FROM `search` WHERE'; $_POST['search'] = explode(' ',$_POST['search']); $i = 0; $j = count($_POST['search']); while ($i < $j) { if ($_POST['rows'] === 'all') $query .= ' `description` LIKE "%'.$_POST['search'][$i].'%" OR `keywords` LIKE "%'.$_POST['search'][$i].'%" OR `title` LIKE "%'.$_POST['search'][$i].'%"'; elseif ($_POST['rows'] === 'title') $query .= ' `title` LIKE "%'.$_POST['search'][$i].'%"'; elseif ($_POST['rows'] === 'keywords') $query .= ' `keywords` LIKE "%'.$_POST['search'][$i].'%"'; elseif ($_POST['rows'] === 'description') $query .= ' `description` LIKE "%'.$_POST['search'][$i].'%"'; $i++; } $requete = mysql_query($query); mysql_close(); echo '<br /><table border="1">'; while($resultat=mysql_fetch_row($requete)) { echo '<tr> <td>',$resultat[0],'</td> <td>',$resultat[1],'</td> <td>',$resultat[2],'</td> <td>',$resultat[3],'</td> </tr>'; } echo '</table>'; } } echo '</body> </html>'; ?>Puis créer un fichier "indexation.php" <?php require_once('config.php');
// On crée la table mysql_query('CREATE TABLE `search` (`id` int(10) unsigned NOT NULL auto_increment,`description` VARCHAR(255) NOT NULL default "",`keywords` VARCHAR(255) NOT NULL default "",`title` VARCHAR(255) NOT NULL default "",PRIMARY KEY (`id`)) ENGINE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=1;'); // Optimisation des requêtes d'écriture mysql_query('LOCK TABLES `search` WRITE'); // Suppression des anciennes données mysql_query('DELETE FROM `search`');
function type($string) { $pos = strrpos($string, '.'); if ($pos === FALSE) return FALSE; else { $pos++; $ext = substr($string,$pos); return $ext; } } function indexation ($dir) { if (is_dir($dir) AND $dh = opendir($dir)) { // On ouvre le dossier while (($file = readdir($dh)) !== false) { // On lit les fichiers du dossier if (type($file) === 'html') { // On continue seulement sur les fichiers ayant l'extension "html" // On ouvre et on enregistre le contenu du fichier $temp1 = ''; $fp = fopen($dir.$file,'r'); while(!feof($fp)) $temp1 .= fgets($fp,4096); fclose($fp); // On cherche les balises meta tag preg_match_all('`<meta name="(title|keywords|description)" content="(.+?)">`sim',$temp1,$temp2); // Si au moins une balise a été trouvé on continue if (!empty($temp2[0])) { // On commence la requete $query = 'INSERT INTO `search` VALUES("",'; // On recherche les autres balises et on les ajoutes à la requete $temp3 = array_search('description', $temp2[1]); if ($temp3 !== FALSE) $query .= '"'.$temp2[2][$temp3].'",'; else $query .= '"",'; $temp3 = array_search('keywords', $temp2[1]); if ($temp3 !== FALSE) $query .= '"'.$temp2[2][$temp3].'",'; else $query .= '"",'; $temp3 = array_search('title', $temp2[1]); if ($temp3 !== FALSE) $query .= '"'.$temp2[2][$temp3].'");'; else $query .= '"");'; // On envoie la requete mysql_query($query); } } } // On ferme le dossier closedir($dh); } } // Debut de l'indexation indexation('./');
// Optimisation des requêtes d'écriture mysql_query('UNLOCK TABLES'); // On ferme la connection MySQL mysql_close(); ?> Et enfin créer un fichier "config.php" <?php define('MYSQL_HOST', ''); define('MYSQL_USER', ''); define('MYSQL_PASS', ''); define('MYSQL_BASE', '');
$connect = FALSE; if (@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) AND @mysql_select_db(MYSQL_BASE)) $connect = TRUE;
?>For every choice, a consequence ( Fable)
|
|
samedi 25 novembre 2006 à 17:50:39 |
Re : problème de création de moteur de recherche

astuces_jeux
|
merci beaucoup mais je dois mettre ou les infos de ma base ???
|
|
samedi 25 novembre 2006 à 18:02:55 |
Re : problème de création de moteur de recherche

astuces_jeux
|
en fait je dois mettre comment mes infos dans la base parce que je penses ne pas les avoirs mis correctement parce que je suis tombé sur erreur lors de la connexion mysql ??? et la table de données dans ma base s'appelle bien search ??? et en fait tu peux me faire le code que pour avoir une zone de texte et en dessous rechercher comme google ??? parce que je suis en trein de faire pour une recherche sur le web jors google mais sans mettre un moteur google sur mon site !!!
|
|
samedi 25 novembre 2006 à 18:05:23 |
Re : problème de création de moteur de recherche

astuces_jeux
|
un dernier truc en ouvrant indexation.php j'ai eu :
For every choice, a consequence (Fable) Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 5
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 5
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 7
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 7
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 9
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 9
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 58
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 58
Warning: mysql_close(): no MySQL-Link resource supplied in /www/sites/1/ifrance.com/p/r/pro.cdd/site/search/indexation.php on line 60
|
|
samedi 25 novembre 2006 à 18:10:29 |
Re : problème de création de moteur de recherche

astuces_jeux
|
je sais que je dois t'embêté mais est-ce que indexation.php est capable de trouvé tout les fichiers :
html, php, cgi, asp, aspx, pdf, etc
sinon je peux faire comment ???
|
|
samedi 25 novembre 2006 à 18:25:16 |
Re : problème de création de moteur de recherche

audayls
|
lol Fais attention à ne pas flooder... Alors pour mettre tes paramètres de connection c'est dans "config.php" : define('MYSQL_HOST', 'ici l'adresse de ton serveur MySQL (souvent c'est localhost)'); define('MYSQL_USER', 'ici c'est le pseudo de connection à la base'); define('MYSQL_PASS', 'ici c'est le mot de passe de connection à la base'); define('MYSQL_BASE', 'ici c'est le nom de la base a utilisé');
Sinon pour faire l'indexation des autres types (tels que php, cgi, asp etc..) cela risque d'être plus dur puisque si tu veux indexer une page php il faut l'interprété d'abord (quoi que c'est peut être possible avec "eval" je vais regarder après) pour asp aucune idée je ne connais pas ce language (enfin si mais juste de nom) et pour les types pdf je vois pas pourquoi les indexer puisqu'ils n'ont pas de balises meta...
For every choice, a consequence (Fable)
|
|
samedi 25 novembre 2006 à 18:36:31 |
Re : problème de création de moteur de recherche

astuces_jeux
|
oui dacord mais cgi, php, asp, aspx tu peux m'aider ???
et dans config.php je n'ai pas mis :
<?php define('MYSQL_HOST', ''); define('MYSQL_USER', ''); define('MYSQL_PASS', ''); define('MYSQL_BASE', '');
$connect = FALSE; if (@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) AND @mysql_select_db(MYSQL_BASE)) $connect = TRUE;
?>
mais :
<?php
$host = "ici mon serveur"; // l'adresse de votre serveur (localhost par default) $login = "ici mon login"; // votre login de connexion à la base $pass = "ici mon mot de passe"; // votre mot de passe $database = "ici ma base"; // nom de la base (votre login dans 90% des cas)
$connect = FALSE; if (@mysql_connect($host, $login, $pass) AND @mysql_select_db($database)) $connect = TRUE;
?>
Mais tu peux trouvé pour php, cgi, asp, aspx ??? parce que j'aimerai vraiment faire un moteur de recherche web comme google et tu peux me faire une deuxième page comme index.php mais que la zone de texte et à la ligne le bouton ???
et quand jouvre indexation.php sa crée bien la table mais l'écran reste blanc et rien ne s'affiche mais dans la bare d'état (ie 6) il met : "terminé mais il y a une erreur dans la page" tu pexu meider ???
|
|
Cette discussion est classée dans : mysql, mot, query, echo, entry
Répondre à ce message
Sujets en rapport avec ce message
echo $idcateg["macolonne"]; [ par fil ]
mysql_select_db($database, $perles);$query_idcateg = sprintf("SELECT $mescolonnes FROM $matable WHERE $matable = '%s'", $colname_idcateg);$idcateg = m
indexation et défillement [ par toffis ]
Bonjour,J'ai un petit probleme avec ce script compte tenu que l'indexation avec LIMIT ne fonctionne pas dans ce cas,je voudrais quand même avoir la po
submit ne renvoyant pas valeur d'une liste déroulante dans $_POST [ par dubitoph ]
ChristopheBonjour,Je suis dans une impasse. Dans le cadre d'une agence d'interim, un intérimaire peut, avant son inscription dans l'agence, avoir déjà
recuperer une variable d'un switch [ par ASPerix ]
Bonjour,Je n'arrive pas a transmettre une variable hors de mon switchj'utiliseune base MySQLswitch ($page) { case "1" : $query="select * from toto whe
probleme base de donnée mysql [ par morgandetoi06 ]
voila j ai une page qui reçoit des variables et qui doit les inserer dans une table "informations" de la base "cv"mais ça me dit "querry failed" je ne
Mysql, php et javascript [ par dcbastien ]
J'ai mis au point un petit script mais qui ne fonctionne pas comme je le souhaiterai:[red]session_start();if(!isset($_SESSION['nom'])) {echo'Veuillez
afficher images blob dans table mysql [ par RealKEV1 ]
Bonjour,Seriez-vous m'aider pour afficher toutes les images de type Blob de ma table MySql???Voici mon code, mais ça ne boucle pas sur les images, ça
Requette SQL dans 2 tables !!Aide [ par onvi ]
Bonjourj'ai un petit probléme qui au début me paraissait simple.Sur un projet que je suis amené à faire à l'université j'ai fait un site ou on peut cl
Affichage table [ par nagattaque ]
Bonjour a tous.... Je vous explique mon problème : J'ai une table qui contient des plats. Il y a 3 types de plats : entrée, plat, dessert. Je voudrai
Prob : Récuperer des valeurs à partir d'une liste [ par gssk ]
Je n'arrive pas à recuper une valeur à partir d'un id seclectioné ds une liste, l'erreur est sur le mysql_fetch_array (en rouge) est ce que qqun pourr
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|