Categorizator - problème Méta automatique

MarieLer.
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 19 Oct 2007

Categorizator - problème Méta automatique

Message le Jeu Déc 13, 2007 12:13

bonjour,

j'ai installé categorizator, et ensuite la mise à jour la version rewriting récente.

seul probleme, dans mon admin, quand j'ajoute moi meme un site, dans une catégorie, lorsque je clique sur le bouton méta , il ne me met pas l'image sur site (meme ceux qui en on une) et il ne me met pas les métas automatiquement... comme il devrait le faire normalement...

meme probleme quand j'essaye d'ajouter un site, par la zone visiteur "proposer un site" , il ne trouve pas les métas, me met juste l'url, rien d'autre...

pourtant j'ai bien regarder, aucun fichiers ne manque...

merci pour votre aide


titiplanti
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 440
Inscription: 4 Nov 2004

Message le Jeu Déc 13, 2007 13:14

Salut,
Tu as une fonction pour mettre à jour les images de sites dans ton admin. Pour qu'elle fonctionne il faut renommer un fichier qui se trouve dans le dossier /admin/

MarieLer.
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 19 Oct 2007

Message le Jeu Déc 13, 2007 15:34

titiplanti a écrit:Salut,
Tu as une fonction pour mettre à jour les images de sites dans ton admin. Pour qu'elle fonctionne il faut renommer un fichier qui se trouve dans le dossier /admin/

oui mais c'est pas ca le problème :wink:


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Jeu Déc 13, 2007 18:08

il y a deux solutions : soit le paramètre func_get_meta_tags de la table infos_annuaire n'est pas a true soit il doit y avoir une problème dans une des fonctions appelée dans la function preremplir_formulaire (fopen, fread, get_meta_tags)

MarieLer.
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 19 Oct 2007

Message le Jeu Déc 13, 2007 22:06

j'ai pas trouvé; la function preremplir_formulaire .

voila la table infos_annuaire , je n'ai pas de vu de True :

Image

Image

Image

ma page function : (je vois une true à $detected = true;)

Code: Tout sélectionner
function preremplir_formulaire($url,$fill)
// Préremplir le formulaire d'inscription grâce aux metas et la détection d'images
{
   if ( $fill )
   {
      global $PMA_infos;
      
      preg_match("/^(\d)(\d)(\d)$/",$PMA_infos['detect_images'],$detect_images);
      
      $detect_images = array (
         'ascreen'   => $detect_images[1],
         'thumbshots'   => $detect_images[2],
         'alexa'      => $detect_images[3],
      );
      
      asort($detect_images);
      
      $detected = false;
      foreach ( $detect_images as $methode => $ordre )
      {
         if ( $ordre )
         {
            $url_image = detect_images($methode,$url);
            
            if ( $url_image ) {
               $detected = true;
               break;
            };
         };
      };
      
      $url_image = $detected ? $url_image : 'http://';
      
      if ( $PMA_infos['func_get_meta_tags'] )
      {
         $fp = @fopen($url, 'r');
         $head = @fread($fp, 1024);
         @fclose($fp);
      }
      else
      {
         $head = null;
      };
      
      if ( $head )
      {
         $tags = @get_meta_tags($url);
         
         $nom_proprio = isset($tags['author']) ? $tags['author'] : '';
         $email_proprio = isset($tags['reply-to']) ? $tags['reply-to'] : ( isset($tags['email']) ? $tags['email'] : '' );
         $titre = preg_match( "/<title>([^<]*)<\/title>/si", $head, $match ) ? $match[1] : '';
         $description = $tags['description'] ? $tags['description'] : '';
      };
      
      return array( $url, $url_image, $nom_proprio, $email_proprio, $titre, $description );
   }
   else
   {
      $url = 'http://';
      $url_image = 'http://';
      $nom_proprio = null;
      $email_proprio = null;
      $titre = null;
      $description = null;


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Jeu Déc 13, 2007 22:23

la fonction preremplir_formulaire test si la zone $PMA_infos['func_get_meta_tags'] est vrai pour récupérer le contenu de l'url. dans ton cas c'est bon car $PMA_infos['func_get_meta_tags'] = 1 (0=faux, et 1=vrai). ce paramètre est modifié dans la partie administation en cliquant sur "Modifier les paramètres
de l'annuaire" avec la page /admin/param_annuaire.php

La fonction get_meta_tags ne doit pas fonctionner avec ta configuration. il faut regarder du coté de l'hébergeur pour vérifier.

MarieLer.
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 19 Oct 2007

Message le Jeu Déc 13, 2007 23:56

webmasterlamogere a écrit:la fonction preremplir_formulaire test si la zone $PMA_infos['func_get_meta_tags'] est vrai pour récupérer le contenu de l'url. dans ton cas c'est bon car $PMA_infos['func_get_meta_tags'] = 1 (0=faux, et 1=vrai). ce paramètre est modifié dans la partie administation en cliquant sur "Modifier les paramètres
de l'annuaire" avec la page /admin/param_annuaire.php

La fonction get_meta_tags ne doit pas fonctionner avec ta configuration. il faut regarder du coté de l'hébergeur pour vérifier.

ok, il faut donc que je contacte mon hebergeur ?

je dois leur demander quoi ?


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Ven Déc 14, 2007 9:31

il y a peut-être un petit test a faire pour trouver l'origine de l'erreur : enlever les @ devant fopen, fread, fclose et get_meta_tags pour voir si un message d'erreur est affiché (le préfixe @ empèche l'affichage des erreurs).

MarieLer.
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 19 Oct 2007

Message le Ven Déc 14, 2007 16:29

webmasterlamogere a écrit:il y a peut-être un petit test a faire pour trouver l'origine de l'erreur : enlever les @ devant fopen, fread, fclose et get_meta_tags pour voir si un message d'erreur est affiché (le préfixe @ empèche l'affichage des erreurs).

j'ai enlevé et il me marque ca :

Code: Tout sélectionner
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /home/.arizona/video/e-gratuit.com/annuaire/functions.php on line 625

Warning: fopen(http://www.tchat.com) [function.fopen]: failed to open stream: no suitable wrapper could be found in /home/.arizona/video/e-gratuit.com/annuaire/functions.php on line 625

Warning: fread(): supplied argument is not a valid stream resource in /home/.arizona/video/e-gratuit.com/annuaire/functions.php on line 626

Warning: fclose(): supplied argument is not a valid stream resource in /home/.arizona/video/e-gratuit.com/annuaire/functions.php on line 627


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Ven Déc 14, 2007 16:47

il y a surement un paramétrage du serveur qui interdit la lecture du contenu d'une url. Il faire un phpinfo(); et regarder si allow_url_fopen = On
Si ce n'est pas le cas, il faut modifier le fichier php.ini et mettre allow_url_fopen = On si tu as la main sur ce fichier. sinon il faut voir avec l'hébergeur.

MarieLer.
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 19 Oct 2007

Message le Lun Déc 17, 2007 0:24

mon hebergeur m'a répondu ca :? :

im betting its trying to remotely
open a file. We have this disabled by default. Here is a useful.

The PHP option allow_url_fopen would normally allow a programmer to open, include or otherwise use a remote file using a URL rather than a local file path. For security reasons, server has disabled this feature; however, a feature-rich alternative exists in the form of the bundled cURL library, and you can always get around the problem by compiling your own version of PHP.


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Lun Déc 17, 2007 8:07

j'ai l'impression qu'ils conseillent d'utiliser curl : voici un petit exemple a adapter :
Code: Tout sélectionner
      if (($ch = curl_init($url)) === false) {
         $num_erreur = curl_errno($ch);
         $text_erreur = curl_error($ch);
         return "<font color=\"red\">Erreur d'initialisation de la session cURL pour $url : $num_erreur : $text_erreur</font>";
      }
      if (!curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8')) {
         $num_erreur = curl_errno($ch);
         $text_erreur = curl_error($ch);
         return "<font color=\"red\">Erreur d'ajout de l'option cURL USERAGENT pour $url : $num_erreur : $text_erreur</font>";
      }
      if (!curl_setopt($ch, CURLOPT_HEADER, false)) {
         $num_erreur = curl_errno($ch);
         $text_erreur = curl_error($ch);
         return "<font color=\"red\">Erreur d'ajout de l'option cURL HEADER pour $url : $num_erreur : $text_erreur</font>";
      }
      if (!curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)) {
         $num_erreur = curl_errno($ch);
         $text_erreur = curl_error($ch);
         return "<font color=\"red\">Erreur d'ajout de l'option cURL RETURNTRANSFER pour $url : $num_erreur : $text_erreur</font>";
      }
      if (!curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true)) {
         $num_erreur = curl_errno($ch);
         $text_erreur = curl_error($ch);
         return "<font color=\"red\">Erreur d'ajout de l'option cURL FOLLOWLOCATION pour $url : $num_erreur : $text_erreur</font>";
      }
      $header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
      $header[] = "Accept-Language: fr\r\n";
      if (!curl_setopt($ch, CURLOPT_HTTPHEADER, $header)) {
         $num_erreur = curl_errno($ch);
         $text_erreur = curl_error($ch);
         return "<font color=\"red\">Erreur d'ajout de l'option cURL HTTPHEADER pour $url : $num_erreur : $text_erreur</font>";
      }
      if (!empty($referer)) {
         if (!curl_setopt($ch, CURLOPT_REFERER, $referer)) {
            $num_erreur = curl_errno($ch);
            $text_erreur = curl_error($ch);
            return "<font color=\"red\">Erreur d'ajout de l'option cURL REFERER pour $url : $num_erreur : $text_erreur</font>";
         }
      }
      if (($res = curl_exec($ch)) === false) {
         $num_erreur = curl_errno($ch);
         $text_erreur = curl_error($ch);
         return "<font color=\"red\">Erreur d'exécution cURL pour $url : $num_erreur : $text_erreur</font>";
      }
      $url_reelle = convert_url(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL));
      $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
      curl_close($ch);
      if (($http_code <> 200) && ($http_code <> 301) && ($http_code <> 302)) {
         $description = get_http_code_description($http_code);
         return "<font color=\"red\">Code retour $http_code : $description</font>";
      }

MarieLer.
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 19
Inscription: 19 Oct 2007

Message le Mer Déc 19, 2007 1:49

et ce code que tu me donne, j'en fais quoi ?
je dois le coller dans une page ?

merci


alliax
WRInaute impliqué
WRInaute impliqué
 
Messages: 561
Inscription: 29 Aoû 2005

Message le Mer Déc 19, 2007 1:53

il faut transformer les appels fopen en utilisant curl, je t'avoue que c'est pas facile si tu ne connais rien à PHP, sinon c'est faisable en connaissant un petit peu et en sachant trouver et utiliser un exemple de conversion dans ton cas particulier.
Car cela arrive souvent que les hébergeurs au bout d'un moment désactive les url dans fopen et qu'il faille utiliser curl à la place.


keroin
WRInaute passionné
WRInaute passionné
 
Messages: 2308
Inscription: 29 Avr 2006

Message le Mer Déc 19, 2007 2:55

Heu...juste au cas où, l'option
Pouvez-vous utilisez la fonction get_meta_tags() de PHP ?

est bien à "oui" dans les paramêtres de l'annuaire ? :wink:


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités