audayls
Messages postés373Date d'inscriptionsamedi 9 juillet 2005StatutMembreDernière intervention11 août 2008 24 nov. 2006 à 22:07
Salut,
"indexation.php" : echo "
\n
\n
----
\n
Indexation du site en cours
\n, \n
\n
\n";"
par "echo '
----
Indexation du site en cours
,
';"
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 ;-)
audayls
Messages postés373Date d'inscriptionsamedi 9 juillet 2005StatutMembreDernière intervention11 août 2008 25 nov. 2006 à 15:52
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>
';
if ($connect === FALSE) echo 'Erreur lors de la connection au serveur MySQL.';
else {
if (empty($_POST)) {
mysql_close();
echo '
<form action="?" method="post" name="search" onsubmit="javascript: return verif()">
Rechercher :
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>
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>
</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 '
';
while($resultat=mysql_fetch_row($requete)) {
echo '----
// 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;
astuces_jeux
Messages postés731Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention27 mai 2010 25 nov. 2006 à 18:02
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 !!!
astuces_jeux
Messages postés731Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention27 mai 2010 25 nov. 2006 à 18:05
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
audayls
Messages postés373Date d'inscriptionsamedi 9 juillet 2005StatutMembreDernière intervention11 août 2008 25 nov. 2006 à 18:25
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...
$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 ???
astuces_jeux
Messages postés731Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention27 mai 2010 26 nov. 2006 à 12:31
bonjour,
pourquoi tu ne réponds plus sur le forum ???
en fait ce que j'aimerai faire c'est afficher les réponses comme
title avec lien vers url
keybord
description
url
et pas
title
keybord
description
tu peux m'aider ???
et pour la page de result encore quand tu n'as pas de réponses c'est possible qu'il écrive aucun résultats ???
et j'aimerai vraiment qu'il sache prendre le .php .cgi .aspx .asp
et quand je vais dans indexation.php il y a un écran blanc et dans la barre d'état (ie) il met "terminé, mais il y a des erreurs dans la page"
et je ne sais pas comment tu fais ton indexation mais in faudrait avoir plus de 3 millions de pages pour rechercher sur le web avec mon moteur comme msn search qui est devenu live search, altavista, google, yahoo etc !!
tu peux me refaire un nouveau code ???