begin process at 2012 05 31 12:37:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

problème de création de moteur de recherche


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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 ???


1 2

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales