Undefined index: robots in c:\program files\easyphp1-8\www\i

misscasa2009

Nouveau WRInaute
Bonjour tout le monde,
je travaille sur un script de moteur de recherche en php; il m'affichait l'erreur cité au titre plusieurs fois, c'était parce qu'il y avait des pages sans balises méta, alors j'ai fais le tour de ma racine du site pour les mettre, ça a marché les lignes des erreurs ont diminué, mais il me reste une seule ligne, je suis sûr que j'ai insérer la balise méta robot dans toutes les pages!!!
voilà min script:


function ScanDir($Directory){
$MyDirectory = opendir($Directory);
while($Entry = readdir($MyDirectory)) {
/* vérifie que le fichier n'est pas un répertoire */
if(is_dir($Entry)&& $Entry != "." && $Entry != ".." ) {
ScanDir("$Entry/$Directory" );
}
else {
/* type de fichiers qui seront indexés */
if (eregi(".php",$Entry)) { //
$MetaTags = get_meta_tags($Directory."/".$Entry);
/* requete d'insertion du fichier dans la table */
if ($MetaTags["robots"] == "all" ) {
$MetaKey = $MetaTags["keywords"];
//$MetaKey = strtoupper($MetaKey); est-ce utile?
$MetaTitre = $MetaTags["description"];
$query = " ALTER TABLE search AUTO_INCREMENT=0";
$mysql_result = mysql_query($query) or die (" Erreur de modification de la table par la requete \"$query\"" );
$query = "INSERT INTO search (lien,keyword,titre)
VALUES(\"$Directory/$Entry\",\"$MetaKey\",\"$MetaTitre\" )";
$mysql_result = mysql_query($query) or die ("<br><br><b>Erreur de modification de la table par la requete</b><br> \"$query\"" );
}
}
}
}
closedir($MyDirectory);
}
$open_basedir="..";
ScanDir("." );
?>

Merci si vous avez une idée de résolution; c très important pour moi!!
 

UsagiYojimbo

WRInaute accro
Tu es sur du nom que tu as donné à tes balises meta robot (avec ou sans S) ? On peut avoir un exemple des metas de tes pages crawlées pour t'aider ?
 

misscasa2009

Nouveau WRInaute
voilà un exemple:

<meta NAME="Robots" CONTENT="all">

c'est avec s, je suis pas certaine que toutes les pages sont comme ça! pourquoi ça fait une différence?
 

e-kiwi

WRInaute accro
à priori l'erreur est là :
if ($MetaTags["robots"] == "all" )
car la variable n'est à un moment pas définie.
teste $MetaTags["robots"] avec un isset() pour voir si la variable est défini avant de rentrer dans ton if et tu n'aura plus l'erreur
 

UsagiYojimbo

WRInaute accro
misscasa2009 a dit:
voilà un exemple:

<meta NAME="Robots" CONTENT="all">

c'est avec s, je suis pas certaine que toutes les pages sont comme ça! pourquoi ça fait une différence?

Tu as nommé ta meta Robots et tu testes une entrée robots, voilà ton souci. PHP est case sensitive.

Par contre ce que te dit e-kiwi n'est pas non plus dénué d'intérêt.
 

misscasa2009

Nouveau WRInaute
ça y est ça marche!!

j'ai mis ça:
if (!isset($MetaTags["robots"])) { die ($Directory."/".$Entry . ' pas de metatags robots'); }

et ça a affiché le fichier ou il y a l'erreur, il s'agit des balise méta qui sont insérée en dehors du <head> !!

Merci bcp pour ton aide
 

Discussions similaires

Haut