<?
// ===============================================================
// dico.php3
// version 1.4
// debut 16 juin 2000
// jln@iut.univ-lehavre.fr
// appel par
// http://acro.dico.free.fr/dico.php3?lettre=X
// http://acro.dico.free.fr/dico.php3?rech=XXXX pour une recherche
// 7 juillet 2000 comptage des lignes trouvÚes
// 10/07/00 affichage des liens texte
// 22/07/00 traitement du champ url
// ================================================================

// goodies de phpfrance

function lienhtml($chaine){
// pour remplacer un lien texte en lien html
return eregi_replace(
"(http|https|ftp)://([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)",
"<a href=\"\\1://\\2\">\\2</a>",
$chaine);
}

function enleveaccents($chaine){
$chaine = strtr($chaine,
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
return $chaine;
}

$host = "sql.free.fr";
$user = "acro.dico";
$passwd ="xxxxxxxx";
$database = $user; // par defaut chez free.fr

$admin_url = "dico_saisie.php3";

// test de la liaison sql
// chez free, elle n'est pas toujours dispo
$mylink = mysql_connect($host, $user, $passwd);

if ($mylink==0) {
$direct = true;
echo "no sql";
} else {
$direct = false;
mysql_close($mylink);
echo "sql";
}

// LA TETE
// =======
$myfilename = "dico_intro.htm";
$myfile = fopen($myfilename,"r");

if(!$myfile) {
print("erreur d'ouverture");
exit;
}
$tete = fread($myfile, filesize($myfilename));
fclose ($myfile);


// la lettre sera A si absente ou trop longue
if (isset($lettre)) {
if (!strlen($lettre) == 1) {$lettre = "A";}
} else {
$lettre = "A";
}
if (isset($rech)) {
$rech = ereg_replace("%", "", $rech);
//$lettre = "%" . $rech . "%";
$lettre = $rech;
// la rech sur une lettre explose le navigateur!!!
if(strlen($rech)<2) {unset($rech);}
}
$lettre = strtoupper($lettre);

$tete = ereg_replace("<!--repere -->A", $lettre, $tete);
//$tete = ereg_replace("<!--repere -->A", $lettre, $tete);
if (isset($rech)) {
$tete = eregi_replace("lettre ", "recherche ", $tete);
}

// absorber la fin de la page
$tete = ereg_replace("</TABLE></BODY></HTML>", "", $tete);

print($tete);
print("<UL>");


// LE CORPS
// ========

if ($direct) {
// pas de sql
$myfilename = "dictionnaire.htm";
$myfile = fopen($myfilename,"r");

if(!$myfile) {
print("erreur d'ouverture");
exit;
}
$dico = fread($myfile, filesize($myfilename));

// on tronque jusqu'a l'ancre de la $lettre
$dico = strstr($dico,"<a name=\"" . $lettre . "\"></a>");

// recherche de la position de la fin de la $lettre
$i = strpos($dico, "<a name=\"" . $lettre . $lettre . "\"></a>");

// on tronque le reste de la page
$dico = substr($dico, 0, $i);

if (strlen($dico) < 30) {
// la lettre est vide
$dico = "<P><P>&nbsp;&nbsp;&nbsp;acro.dico n'aime pas la lettre "
. $lettre . "&nbsp;!!!<P>";
}
print($dico);
fclose ($myfile);
} else {

// connexion mysql
// ===============
$mylink = @mysql_connect($host, $user, $passwd);

if ($mylink<1) { echo "<br>erreur de connexion mysql<br>"; }

if (!@mysql_select_db($database) ) { /*echo "<br>erreur mysql<br>"*/; }
if (isset($rech)) {
$lettre1 = "%" . strtolower($lettre) ."%";
$result = @mysql_query("SELECT * FROM acronymes WHERE
(acro like '$lettre1') or (valeur like '$lettre1')
order by acro");
} else {
$result = @mysql_query("SELECT * FROM acronymes
WHERE (acro like '$lettre%')
order by acro");
}
if (mysql_errno() != 0 ) { echo "<br>erreur mysql<br>"; }
if(@mysql_numrows($result)==0) {
echo "<br><FONT color=#009900><B><FONT face=\"Arial, Helvetica, sans-serif\"
size=3>&nbsp;&nbsp;&nbsp;acro.dico n'aime pas $lettre <br>";
} else {
// echo "c'est bon";
// initiale
$nb = 0;
$i = "";
while ($ligneacro = @mysql_fetch_array($result)) {

$nb++;

/* ordre des champs id, acro, valeur, timestamp, url */
$id = "$ligneacro[0]";
$acro = "$ligneacro[1]";
$valeur = "$ligneacro[2]";
$url = "$ligneacro[4]";

// test de nouvelle initiale
if (!($i == substr($acro, 0 ,1))) {
$i = substr($acro, 0 ,1);
print("<P><font size=\"4\"><B>" . $i . "</B><BR>");
}

// coloration en mode recherche
// orange
// <font color="#FF6600">
// vert
// <font color="#009900">
// capture avec () !!!!!
// on ne passe pas le mot en orange s'il y a un site
// sinon le tag <A> est abime

// mise en forme des liens textes en liens hypertextes
if (isset($rech) and !(eregi("http:", $valeur))) {
$valeur = eregi_replace("($lettre)",
"<font color=\"#FF6600\"><b>\\1</b><font color=\"#009900\">",
$valeur);
}

if ($url) {
print ("<li><FONT color=#009900><B>
<FONT face=\"Arial, Helvetica, sans-serif\" size=2>
<A href=\"http:/" . $PHP_SELF . "?rech=" . $acro
. "&submit=rechercher\">"
. $acro . "</A></b> " . lienhtml($valeur) );
} else {
print ("<li><FONT color=#009900><B>
<FONT face=\"Arial, Helvetica, sans-serif\" size=2>"
. $acro . "</b> " . lienhtml($valeur) );
}

}
// fin de la liste
print ("</ul><P>");
if ($nb>1) {
print ("&nbsp;&nbsp;" . $nb . " lignes trouv&eacute;es<P>");
} elseif ($nb>0) {
print ("&nbsp;&nbsp;Une ligne trouv&eacute;e<P>");
}

}
@mysql_close($mylink);

}

// LE PIED
// =======

$myfilename = "dico_fin.htm";
$myfile = fopen($myfilename,"r");

if(!$myfile) {
print("erreur d'ouverture");
exit;
}
$pied = fread($myfile, filesize($myfilename));

// recalage de l'url du compteur
if (isset($rech)) {
$pied = ereg_replace("p=acro_a", "p=acro_rech", $pied);
} else {
$pied = ereg_replace("p=acro_a", "p=acro_" . $lettre, $pied);
}

fclose ($myfile);

// et on livre le pied
print("</UL>");
print($pied);
print ("</TR></TABLE></BODY></HTML>");

?>