
<?
echo <<<EOF
<HTML><BASE HREF=$PMA_infos[url_rep]><HEAD><script language="JavaScript" src="js_annuaire.js"></script><link type="text/css" href="annuaire.css" rel="stylesheet"></HEAD><BODY STYLE=font-family:Arial><PRE><FONT STYLE=font-size:11px>
/**************** Rewrite YourPHPAnnuaire 1.0.5 *********************************************************************
/
/ Rewrite YourPHPAnnuaire 1.0.5 intègre une nouvelle méthode de détection de thumbnail d'un site (aperçu gaphique).
/ Lors de la soumission d'un site sur votre annuaire, le script va dans l'ordre :
/ 1 - Chercher si "ascreen.jpg" figure dans la racine du site
/ 2 - Rechercher une image à l'adresse : http://open.thumbshots.org/image.pxf?url=http://...
/ 3 - Rechercher une image à l'adresse : http://thumbnails.alexa.com/image_server.cgi?size=small&url=http://...
/
/ Le présent script (checkthumbs.php) a été créé afin que vous n'ayiez pas à revérifier tous les sites de l'annuaire.
/ "checkthumbs.php" va lister tous les sites de votre annuaire qui n'ont actuellement pas d'image, et afficher
/ à côté de chacun de ces sites son image correspondante grâce à la méthode décrite ci-dessus.
/ Vous n'aurez alors plus qu'à cocher les sites auquels vous souhaitez associer l'image correspondante.
/
*******************************************************************************************************************/
</FONT></PRE>
EOF;
// variables et fonctions de l'annuaire
include("../data_bd_annuaire.php");
include("../functions.php");
// Paramètres CGI
$update = isset($_GET['update']) ? $_GET['update'] : '';
$start = isset($_GET['start']) ? $_GET['start'] : 0;
$end = isset($_GET['end']) ? $_GET['end'] : '';
$n = isset($_GET['numero']) ? $_GET['numero'] : 0;
// Ouverture de la connexion SQL
$lk = connection_BD();
// S'il faut afficher les sites à mettre à jour
if (!$update)
{
find_sites($start,$n);
}
else // S'il faut appliquer les modifications
{
$image = array();
while ( list($key,$value) = each($_GET) )
{
if ( preg_match("/^i(\d+)$/",$key,$id) ) {
if ( isset($_GET["$id[1]"]) ) {
$image["$id[1]"] = $value;
};
};
};
while ( list($id,$url_image) = each($image) )
{
$sql = "SELECT id,titre,url FROM $T_sites WHERE id='$id'";
$res = @mysql_query($sql);
$resultat = mysql_fetch_array($res,MYSQL_ASSOC);
$sql2 = "UPDATE $T_sites SET url_image='$url_image' WHERE id='$id'";
$res2 = @mysql_query($sql2);
if ($res2) {
echo "<FONT COLOR=Green><B>L'image a été correctement ajoutée au site :</B></FONT> \n";
} else {
echo "<FONT COLOR=Red><B>L'image n'a pas pû être ajoutée au site :</B></FONT> \n";
};
echo "<A HREF=$resultat[url] TARGET=_blank>".ucfirst($resultat['titre'])." (id=$resultat[id])</A><P>\n";
};
// Vérifie si c'est la fin
if ( $end ) {
echo "<P><FONT SIZE=4 COLOR=Vert><B>Toutes les images ont été détectées<BR>Opération terminée.</B></FONT>\n";
} else {
find_sites($start,$n);
};
};
// Fermeture de la connexion SQL
mysql_close($lk);
echo "\n</BODY></HTML>";
function find_sites($start,$n)
{
global $T_sites, $T_categories;
// Commande SQL de sélection des sites n'ayant pas d'image
$sql = "SELECT s.*, c.id as id_cat, cat_name FROM $T_sites s, $T_categories c WHERE s.id_cat=c.id AND url_image='' ORDER BY titre ASC limit $start,600";
// Ajout de la colonne
echo "<B>DETECTION DES SITES N'AYANT PAS D'IMAGE ... VEUILLEZ PATIENTER ...</B><BR><FONT SIZE=1 FACE=Tahoma COLOR=Blue>Pour info, la commande exécutée est : <B>$sql</B></FONT></B><P> \n";
// Création de la requête SQL
$res = @mysql_query($sql);
echo "<FORM ACTION=$_SERVER[PHP_SELF] METHOD=Get>\n";
echo " <INPUT TYPE=Hidden NAME=update VALUE=yes>\n";
while ($resultat = mysql_fetch_array($res,MYSQL_ASSOC))
{
list($url,$resultat['url_image'],$nom_proprio,$email_proprio,$titre,$description) = preremplir_formulaire($resultat['url'],true);
$resultat['url_image'] = $resultat['url_image']=='http://' ? '' : $resultat['url_image'];
echo "<B>".++$n." -</B> ";
if ($resultat['url_image']) {
echo "<B><INPUT TYPE=Hidden NAME=i$resultat[id] VALUE=\"$resultat[url_image]\"><INPUT TYPE=Checkbox NAME=$resultat[id]> <FONT COLOR=Green>Cochez cette case pour associer cette image à ce site (id=$resultat[id])</FONT></B>\n";
$ok++;
} else {
echo "<B><FONT COLOR=Red>Aucune méthode n'a permis de détecter une image pour ce site (id=$resultat[id])</FONT></B>\n";
$notok++;
};
affiche_site($resultat);
if ( $ok==10 ) {
echo "<INPUT TYPE=Hidden NAME=start VALUE=".($start+$notok).">\n";
echo "<INPUT TYPE=Hidden NAME=numero VALUE=$n>\n";
break;
};
};
if ( $ok<10 ) echo "<INPUT TYPE=Hidden NAME=end VALUE=yes>\n";
echo "<INPUT TYPE=Submit VALUE=\"Valider et passer aux sites suivants >>>\">\n";
echo "</FORM>\n";
};
?>
"checkthumbs.php" est un utilitaire qui permet d'associer une image à chacun des sites de votre base.
Il est FORTEMENT recommandé de le lancer sous Internet Explorer qui, contrairement à Firefox,
affiche *progressivement* les résultats du scan. Sous Firefox vous devez attendre que le scan soit complètement fini ...
POUR VOTRE SECURITE :
-----------------------------
PLACEZ CE SCRIPT DANS UN REPERTOIRE PROTEGE PAR MOT DE PASSE
AFIN QUE N'IMPORTE QUI NE PUISSE PAS LE LANCER !
Il ne suffit pas de placer ce script dans le répertoire admin, il faut aussi que ce répertoire soit protégé par htpasswd !
AU PIRE, VOUS POUVEZ SIMPLEMENT EFFACER OU RENOMMER LE FICHIER checkthumbs.php DE VOTRE SERVEUR
(il n'est pas nécessaire au bon fonctionnement de Rewrite YourPHPAnnuaire, c'est juste un outil pratique)
PS : checkthumbs.php ne se lance pas dans le cadre de la session admin car la détection d'images pouvant être particulièrement lente,
suivant le nombre de sites de votre base, vous risquez d'être déconnecté avant la fin !



<?php
// vérificateur d'images
include("../data_bd_annuaire.php"); // Variables de l'annuaire
include("../functions.php"); // Fonctions de l'annuaire
include("secure.php"); // Vérification de la session + connexion a la BD
// Paramètres CGI
$delete = isset($_POST['delete']) ? $_POST['delete'] : '';
// Ouverture de la connexion SQL
$lk = connection_BD();
// HEADER
echo <<<EOF
<html>
<head>
<title>Vérificateur d'images de l'annuaire</title>
</head>
<body bgcolor="#ffffcc">
EOF;
echo "<a href=\"".addsess2url("admin.php",$session_id)."\">Retour à l'accueil de l'administration</a>";
echo <<<EOF
<br />
<CENTER>
<h2>Vérificateur d'images</h2>
<br /><br />
<font color="#ff0000">Attention, le vérificateur ne fonctionne pas avec certains hébergeurs qui ont désactivé la fonction <B>getimagesize()</B> !</font>
<br /><br />
La vérification d'images prend un certain temps... Donc si la page semble longue à charger ne vous inquiétez pas !
<br /><br /><br />
EOF;
// S'il faut afficher les sites à mettre à jour
if (!$delete)
{
// Ajout de la colonne
echo "<B>DETECTION DES SITES DONT L'IMAGE N'EST PAS ACCESSIBLE ... VEUILLEZ PATIENTER ...</B><br /> \n";
// Commande SQL de sélection des sites
$sql = "SELECT s.*, c.id as id_cat, cat_name FROM $T_sites s, $T_categories c WHERE s.id_cat=c.id AND url_image!='' ORDER BY titre ASC";
$res = @mysql_query($sql);
echo "<FORM ACTION=\"".addsess2url("check_images.php",$session_id)."\" METHOD=Post>\n";
//$_SERVER[PHP_SELF]
echo " <INPUT TYPE=Hidden NAME=delete VALUE=yes>\n";
$found = false;
while ($resultat = mysql_fetch_array($res,MYSQL_ASSOC))
{
$error = false;
$urlt = rtrim($resultat['url'],"/");
if ( preg_match("/open\.thumbshots\.org/",$resultat['url_image']) )
{
if ( ($a=@getimagesize("http://open.thumbshots.org/image.pxf?url=$resultat[url]")) && $a[0]<10 )
{
$error = true;
};
}
elseif ( preg_match("/thumbnails\.alexa\.com/",$resultat['url_image']) )
{
$purl = parse_url("http://thumbnails.alexa.com/image_server.cgi?size=small&url=$resultat[url]");
$fp = @fsockopen($purl['host'], 80, $errno, $errstr, 5);
@fputs($fp, "GET $purl[path]?$purl[query] HTTP/1.1\r\nHost: $purl[host]\r\n\r\nConnection: Close\r\n\r\n");
$ok = preg_match("!Location: /images/smalljpeg/!",@fread($fp,210));
@fclose($fp);
$error = $ok ? false : true;
}
else
{
$error = @getimagesize("$resultat[url_image]") ? false : true;
};
if ( $error ) {
$found = true;
echo "<br /><B><INPUT TYPE=Hidden NAME=i$resultat[id] VALUE=\"$resultat[url_image]\"><INPUT TYPE=Checkbox NAME=$resultat[id]> <FONT COLOR=Green>L'image de ce site est inaccessible ! Cochez cette case pour supprimer cette image.</FONT></B>\n";
affiche_site($resultat);
}
else
{
echo '> ';
};
};
echo "<P> </P>";
if ( $found )
echo "<INPUT TYPE=Submit>\n";
else
echo "<br /><FONT COLOR=Green><B>Toutes les images de votre annuaire sont valides !</B></FONT>\n";
echo "</FORM>\n";
}
else // S'il faut appliquer les modifications
{
$image = array();
while ( list($key,$value) = each($_POST) )
{
if ( preg_match("/^i(\d+)$/",$key,$id) ) {
if ( isset($_POST["$id[1]"]) ) {
$image["$id[1]"] = $value;
};
};
};
while ( list($id,$url_image) = each($image) )
{
$sql = "SELECT id,titre,url FROM $T_sites WHERE id='$id'";
$res = @mysql_query($sql);
$resultat = mysql_fetch_array($res,MYSQL_ASSOC);
$sql2 = "UPDATE $T_sites SET url_image='' WHERE id='$id'";
$res2 = @mysql_query($sql2);
if ($res2) {
echo "<FONT COLOR=Green><B>L'image a été supprimée pour le site :</B></FONT> \n";
} else {
echo "<FONT COLOR=Red><B>L'image n'a pas pû être supprimée pour le site :</B></FONT> \n";
};
echo "<A HREF=$resultat[url] TARGET=_blank>".ucfirst($resultat['titre'])."</A><P>\n";
};
};
// Fermeture de la connexion SQL
mysql_close($lk);
// FOOTER
echo <<<EOF
</CENTER>\n
</body>
</html>
EOF;
?>














spespam a écrit:non, le fichier htaccess ne restreint pas l'accès et j'ai déjà essayé en tapant monsite.com/admin/check_images.php mais rien n' y fait
cela marchait avant, donc j'en conclus que le souci vient de nuxit ?
include("../data_bd_annuaire.php"); // Variables de l'annuaire
include("../functions.php"); // Fonctions de l'annuaire
include("secure.php"); // Vérification de la session + connexion a la BD


Retourner vers Les Pages du Keroinsite
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité