Page 1 sur 1

Erreur 500 pour categorizator

Posté : samedi, 10 janvier 2009, 12:35
par spespam
Salut
J'utilise categorizator avec l'add on RYA.
Y a un lien "vérifier que les images sont tjrs valables" dans la partie admin. Bizarrement, j'ai tjrs une erreur 500 après 5 secondes lorsque je clique dessus. Quelqu'un peut m'expliquer pkoi? Le fichier du script s'appelle checkthumbs.php
Merci

Re: Erreur 500 pour categorizator

Posté : samedi, 10 janvier 2009, 13:01
par spespam
Voici le code du fichier checkthumbs.php

Code : Tout sélectionner

<?
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>&nbsp;\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";
};

?>

Re: Erreur 500 pour categorizator

Posté : samedi, 10 janvier 2009, 13:27
par Keroin
Bonjour spespam,
Par défaut, le script checkthumbs n'est pas activé car il peut être dangereux pour la sécurité de ton annuaire...
Je suppose que c'est juste ça et que tu as tout simplement oublié de renommer le fichier "checkthumbs.php - ATTENTION LIRE CHECKTHUMBS.TXT !" en "checkthumbs.php".

Il y a un fichier texte qui explique ce qu'il faut faire dans le dossier "admin" du script
Ce fichier se nomme CHECKTHUMBS.TXT et je le reproduis ci dessous
"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 !
Tiens moi au courant ;-)

Re: Erreur 500 pour categorizator

Posté : dimanche, 11 janvier 2009, 16:17
par spespam
En fait je voulais parler du fichier check_images.php (vérifier si les images sont tjrs valides).

Re: Erreur 500 pour categorizator

Posté : dimanche, 11 janvier 2009, 19:06
par Keroin
Ah oui effectivement ce n'est pas du tout le même :sm7:

Alors vérifie si tu ne l'as pas modifié par erreur par rapport au fichier check_images.php original.

Voici le contenu original de ce fichier si tu ne l'a plus sous la mains :
<?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 />&nbsp;\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_serve ... sultat[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>&nbsp;</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;

?>
Vérifie également si le lien (dans la partie admin) est correct, survole le et fait un clic droit + copier l'adresse du lien et poste le si tu as un doute...

Quand tu clic sur le lien il y a un début d'affichage quand même ou rien du tout et direct une erreur 500 ?
Vérifie également si ton hébergeur autorise la fonction getimagesize() car elle est utilisée par le script et si l'hébergeur l'a bloquée ça ne fonctionnera pas ;-)

Re: Erreur 500 pour categorizator

Posté : dimanche, 11 janvier 2009, 22:31
par spespam
En fait je n'ai rien modifié au script. Je viens d'envoyer un mail à mon hébergeur pour la fonction getimagesize(), j'attends leur réponse. Ce qui est bizarre, c'est qu'avant ça marchait bien.

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 18:25
par spespam
mon hébergeur a bien la fonction getimagesize

par-contre, ils m'ont dit que si le script met plus de 30 sec à s'exécuter, il y a une erreur 500. A mon avis, mon problème vient de là. Je ne sais pas comment faire pour le faire exécuter pus vite.

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 18:33
par Keroin
Le faire exécuter plus vite? ça a mon avis tu ne pourras pas car ça doit dépendre de la puissance de la machine qui héberge...
Si tu le lances avec Firefox essaye avec un autre navigateur comme IE par exemple car il réagit différemment face aux pages longues à charger...
Ce script fonctionnait correctement pour moi chez 1&1 (qui n'est pourtant pas réputé pour la puissance et la réactivité des serveurs) aussi je ne vois pas trop pourquoi ça bloquerait pour toi...
Quel est ton hébergeur ?

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 18:37
par spespam
je suis chez nuxit.
Avant ça fonctionnait aussi. Je ne sais pas pkoi c'est devenu aussi lent. Je l'ai lancé sur IE et Firefox et aucun des deux ne marche :cry:

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 18:49
par Keroin
Le lien que tu clics dans l'admin il ressemble à quoi ?

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 19:04
par spespam
Dans la partie admin, quand je clique sur le lien "vérifier images" (check_images.php), j'ai un lien du type monsite.com/admin/check_images.php/session_id=numero_de_la_session

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 19:14
par Keroin
Je suppose que ton dossier admin est déjà protégé par un htaccess aussi essaye d'atteindre le script en retirant la fin voir si il y a du mieux ???
=> monsite.com/admin/check_images.php

Tu peux aussi essayer de supprimer le fichier check_images.php de ton ftp et de le recréer (faire un copier-coller) du code fourni précédemment car c'est peut être un souci de droit d'accès au fichier sur ton ftp ???

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 19:26
par spespam
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 ?

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 19:33
par spespam
Je leur ai envoyé de nouveau un mail, on verra ce qu'ils vont dire.
Je te tiens au courant. ;-)

Re: Erreur 500 pour categorizator

Posté : mardi, 13 janvier 2009, 19:37
par Keroin
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 ?
C'est vrai que c'est assez étrange et que là je pense qu'on a fait le tour de ce qui pourrait clocher de ton coté ???
Sauf peut être une modif des fichiers suivants
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
qui sont appelés au début du script mais j'en doute...

Re: Erreur 500 pour categorizator

Posté : mercredi, 14 janvier 2009, 16:18
par spespam
Ils me répondent que ça bloque si les images sont trop grosses et que ça prend du temps.
Or, ce sont des images de thumbshots et ils ne font pas plus de 3Ko pour chaque image. Nuxit ça devient vraiment de la daube sinon de la merdasse lol