Script Php pour moteur de recherche.

Fermé
loulou - 19 juin 2010 à 12:39
 Nico - 20 juin 2010 à 04:44
Bonjour,
j'ai lu le tutoriel sur le site commentcamarche pour faire un script php pour moteur de recherche, ce qui est bien avec ce script c'est que la base est automatiquement remplie et non pas manuellement. oui mais voilà ce script me renvoie beaucoup d'erreurs, prenons le script du remplissage que j'ai nommé remplissage.php et que voici
<?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 = "localhost";
$user = "root";
$password = "";
$bdd = "pfe2";

/* 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."/".$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();

?>


La premiere erreure se situe au niveau de la ligne en gras et le message est le suivant, "Parse error: parse error, expecting '','' or '';''" je ne me suis pas cassé la tête alors j'ai enlevé toute la ligne, (j'aimerais bien quand même qu'on me dise ou se situe l'erreur. Après avoir enlevé cette ligne, une autre erreur apparait avec comme message "
Fatal error: Cannot redeclare ScanDir()" il faut apparemment renommer scandir alors je l'ai renommé en scandir_all et quand je le fais et que j'execute le script apache se plante systematiquement, pourquoi ? Merci de m'aider.
A voir également:

3 réponses

Bonjour Loulou,


Il faut utiliser le caractère d'échappement, avec de mettre des guillemets dans des guillemets.

Ta ligne en gras devient alors : WIDTH=\"100%\">\n

Et voila.

Bien Cordialement

Nico - Webmaster - https://www.nc-concept.com/
0
Merci nico est ce que tu is pourquoi est ce que ca plante à chaque fois que j'execute le script ? j'ai firefox qui me dit "La connexion avec le serveur a été réinitialisée pendant le chargement de la page." et apache se ferme.
0
Apache qui plante ?

Peux-être que ton script a besoin d'un peu plus de temps pour faire tout son travail. Par défaut, dans le php.ini, il est prévu une durée de 30 secondes. Si ton anomalie intervient après 30 secondes, essaye ceci :
https://www.php.net/manual/fr/function.set-time-limit.php

Nico - Webmaster - https://www.nc-concept.com/
0