•  » Utilisation
  •  » [Résolu] Web services en intra site chez Free

#16 2010-01-28 18:31:16

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Web services en intra site chez Free

Il y a visiblement quelque chose qui m'échappe dans cette histoire... En reprenant ton exemple, j'aboutis à :

Notice: unserialize() [function.unserialize]: Error at offset 0 of 640 bytes in E:\www\monsite\phpwebgallery\test.php  on line 13

J'ai créé un fichier ws2.php sous la racine de ma galerie qui contient :

Code:

$_GET['method']='pwg.categories.getImages';
$_GET['format']='php';
$_GET['recursive']='true';
$_GET['order']='random';
$_GET['f_with_thumbnail']='true';
$_GET['per_page']='5';
$_GET['page']='0';

       ob_start();
            include  PHPWG_ROOT_PATH . "ws.php" ;
              $result .= ob_get_contents();
        ob_end_clean();
        
$thumbc1 = unserialize( $result);

if ($thumbc1["stat"]=='ok')
  {
    for ($i=0;$i<$thumbc1["result"]["images"]["count"];$i++)
      {
        $picture = $thumbc1["result"]["images"]["_content"][$i];
        // dans picture nous avons :  id, width, height, hit, file, name, comment, tn_url, element_url
        $HTML_txt = '<a href="./phpwebgallery/picture.php?/'.$picture['id'].'" title="'.$picture['name'].'">'.'<img src="'.$picture['tn_url'].'" alt="'.$picture['name'].'"></a>';
        echo $HTML_txt;
      }
  }

Si je rectifie "include  PHPWG_ROOT_PATH . "ws.php"; "  par "include  "ws.php";", j'obtiens bien la liste des images avec l'encapsulage html mais, évidemment, elle n'est pas interprétée comme telle.

Et si j'inclue mon fichier ws2.php dans une page html, j'ai une page blanche...

Hors ligne

#17 2010-01-28 18:51:30

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [Résolu] Web services en intra site chez Free

Ajoute     

if (!defined('PHPWG_ROOT_PATH')) define('PHPWG_ROOT_PATH', './');

   
        //===============================================================================
        global $user_id,$user ,$conf ;
        @include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
        @include_once( PHPWG_ROOT_PATH.'admin/include/functions.php' );


Cela devrait aller mieux.

Hors ligne

#18 2010-01-28 21:12:49

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Web services en intra site chez Free

Non, décidément, je pense que je ne suis pas en phase ce soir... Je résume ce qui est :

- La structure de mon site est :
[racine]
index.php
    |->[phpwebgallery]
                   |-> Ma galerie

- Un fichier nommé ws2.php à la racine de ma galerie. Soit ../phpwebgallery/ws2.php. Ce fichier contient :

Code:

<?php
if (!defined('PHPWG_ROOT_PATH')) define('PHPWG_ROOT_PATH', './');

global $user_id,$user ,$conf ;
@include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
@include_once( PHPWG_ROOT_PATH.'admin/include/functions.php' );

$_GET['method']='pwg.categories.getImages';
$_GET['format']='php';
$_GET['recursive']='true';
$_GET['order']='random';
$_GET['f_with_thumbnail']='true';
$_GET['per_page']='5';
$_GET['page']='0';

       ob_start();
            include PHPWG_ROOT_PATH . "ws.php" ;
              $result .= ob_get_contents();
        ob_end_clean();
        
$thumbc1 = unserialize( $result);

if ($thumbc1["stat"]=='ok')
  {
    for ($i=0;$i<$thumbc1["result"]["images"]["count"];$i++)
      {
        $picture = $thumbc1["result"]["images"]["_content"][$i];
        // dans picture nous avons :  id, width, height, hit, file, name, comment, tn_url, element_url
        $HTML_txt = '<a href="./phpwebgallery/picture.php?/'.$picture['id'].'" title="'.$picture['name'].'">'.'<img src="'.$picture['tn_url'].'" alt="'.$picture['name'].'"></a>';
        echo $HTML_txt;
      }
  }
?>

- Dans mon fichier index.php, à la racine de mon site, je fais un include ("phpwebgallery/ws2.php");

Si je lance ../phpwebgallery/ws2.php, j'ai :

<b>Notice</b>:  unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 0 of 4154 bytes in <b>E:\www\Infernoweb\phpwebgallery\ws2.php</b> on line <b>21</b>

Si je lance ma page d'index, rien...

Je ne comprends pas comment tu as fait pour obtenir le résultat que tu montres avec ton test_ws.php.

Hors ligne

#19 2010-01-28 23:11:32

oliv
Invité

Re: [Résolu] Web services en intra site chez Free

bonsoir,
j'ai le même souci que vous. Je possède un site sur free et les web services ne fonctionnent plus :-(
j'ai suivi les instructions pour essayer de les faire fonctionner à nouveau :
- j'ai créé un fichier test.php en mettant dedans :

Code:

<?php
$_GET['method']='pwg.categories.getImages';
$_GET['format']='php';
$_GET['recursive']='true';
$_GET['order']='random';
$_GET['f_with_thumbnail']='true';
$_GET['per_page']='5';
$_GET['page']='0';
       ob_start();
define('PHPWG_ROOT_PATH','../galerie/');
include(PHPWG_ROOT_PATH.'../galerie/ws.php');
              $result .= ob_get_contents();
        ob_end_clean();
$thumbc1 = unserialize( $result);
if ($thumbc1["stat"]=='ok') {
  for ($i=0;$i<$thumbc1["result"]["images"]["count"];$i++) {
    $picture = $thumbc1["result"]["images"]["_content"][$i];
    // dans picture nous avons :  id, width, height, hit, file, name, comment, tn_url, element_url
    $HTML_txt = '<a href="http://olivalery.free.fr/galerie/picture.php?/'.$picture['id'].'" title="'.$picture['name'].'">'.'<img src="'.$picture['tn_url'].'" alt="'.$picture['name'].'"></a>';
    echo $HTML_txt;
  }
  }
?>

ensuite entre firefox et internet explorer, j'ai une différence. Sur IE, les vignettes s'affichent correctement et sous firefox, j'ai la page qui s'affiche avec le code html des vignettes + les liens.
Que manque-t-il pour que cela fonctionne ?
Voici le lien : http://olivalery.free.fr/spip/test.php

Merci d'avance de votre aide

#20 2010-01-29 08:54:55

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [Résolu] Web services en intra site chez Free

Bonjour.

  Le problème vient de la base de référencement du programme.
   Ci joint le code pour un programme lancer directement sous la racine du site, ou a partir d'un include


exemple:
-  structure du site   :
[racine]
index.php
ws3.php
    |->[phpwebgallery]
                   |-> galleries

- Le fichier nommé ws3.php est à la racine de du sitet ../ws3.php.

  phpwebgallery =  la racine ou est installé piwigo
  galleries = le répertoire de base de la galerie photo.

Ce fichier contient :

Code:

<?php
    $files=$_SERVER['PHP_SELF'] ;
    $file= explode("/",$files);
    $file=$file[count($file)-1];
    $racine =  $_SERVER['SERVER_NAME'] . str_replace( $file ,"",$_SERVER['PHP_SELF']);

// il faut corriger les adresses des photos dans la base de données pour éviter les croix html
// dans la base de données l'adresse des   photos sont en relatif, sauf pour les sites distants.

    $adr_rel="http://". $racine."galleries";
    $adr_absolue="http://". $racine."Galerie/galleries";

  $_GET['method']='pwg.categories.getImages';
  $_GET['format']='php';
  $_GET['recursive']='true';
  $_GET['order']='random';
  $_GET['f_with_thumbnail']='false';
  $_GET['per_page']='5';
  $_GET['page']='1';
  
  if (!defined('PHPWG_ROOT_PATH')) define('PHPWG_ROOT_PATH', './Galerie/');
    include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
    global $conf;  
//=============== FIRE FOX, Chrome, Safari LOCAL ??? =============================  
// SI quelqu'un a une explication ....
//    echo '<div style="visibility:hidden; height:0 "><pre>';
//        print_r($conf);  
//     echo '</pre></div>'; 
//================================================================================     
  ob_start();    
     include  (PHPWG_ROOT_PATH . "ws.php") ;
    $result .= ob_get_contents();
  ob_end_clean();
 $thumbc1 = unserialize( $result);
 if ($thumbc1["stat"]=='ok') {
  for ($i=0;$i<$thumbc1["result"]["images"]["count"];$i++) {
    $picture = $thumbc1["result"]["images"]["_content"][$i];
   $picture['tn_url']=str_replace( $adr_rel,$adr_absolue,$picture['tn_url']);
    // dans picture nous avons :  id, width, height, hit, file, name, comment, tn_url, element_url
    $HTML_txt = '<a href="./Galerie/picture.php?/'.$picture['id'].'" title="'.$picture['name'].'">'.
  '<img src="'.$picture['tn_url'].'" alt="'.$picture['name'].'"></a>';
    echo $HTML_txt;
  }
 }
?>

A+

Dernière modification par cljosse (2010-01-29 18:32:33)

Hors ligne

#21 2010-01-29 09:25:07

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [Résolu] Web services en intra site chez Free

oliv a écrit:

ensuite entre firefox et internet explorer, j'ai une différence. Sur IE, les vignettes s'affichent correctement et sous firefox, j'ai la page qui s'affiche avec le code html des vignettes + les liens.
Que manque-t-il pour que cela fonctionne ?
Voici le lien : http://olivalery.free.fr/spip/test.php

Merci d'avance de votre aide

@oliv
Bonjour.

sous firefox il faut
encadrer le code avevec les balises HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document sans titre</title>
</head><body>
Ton code ...
</body>
</html>

A+

Hors ligne

#22 2010-01-29 10:12:16

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [Résolu] Web services en intra site chez Free

Il va falloir faire une synthèse de tout ça...


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#23 2010-01-29 12:41:56

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Web services en intra site chez Free

Merci Claude, je regarderai çà plus en profondeur ce soir !

Hors ligne

#24 2010-01-29 13:24:31

oliv
Invité

Re: [Résolu] Web services en intra site chez Free

Merci à vous de votre aide.
Je regarderai comme Eric ce soir. Je vous tiens au courant.

++

#25 2010-01-29 15:27:08

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [Résolu] Web services en intra site chez Free

Suite..

En testant sous FireFox, Chrome, Safari et en local uniquement j'affiche uniquement comme le dis oliv le code

Quant je regarde la source une balise "<pre>" à été insérée en début de fichier (visible avec firebug).

  Un function dans ws.php à l'air de l'activer lorsque je suis en local (easyphp 5.3). ??

Si je fais un print_r($conf) cette balise disparait.

????????


j'ai mis à jour le code précédent, (ajouté print_r) pour afficher les images en local.

A+

Hors ligne

#26 2010-01-29 17:35:18

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Web services en intra site chez Free

cljosse a écrit:

Suite..

En testant sous FireFox, Chrome, Safari et en local uniquement j'affiche uniquement comme le dis oliv le code

Quant je regarde la source une balise "<pre>" à été insérée en début de fichier (visible avec firebug).

  Un function dans ws.php à l'air de l'activer lorsque je suis en local (easyphp 5.3). ??

Si je fais un print_r($conf) cette balise disparait.

????????


j'ai mis à jour le code précédent, (ajouté print_r) pour afficher les images en local.

A+

J'ai bien suivi toutes tes indications mais cela ne fonctionne toujours pas (FF en local et en ligne). Si je laisse la partie de code que tu as ajouté concernant la balise <pre>, j'ai un truc comme cela qui s'affiche (extrait parce que très long) :

<div style="visibility:hidden; height:0 "><pre>Array
(
    [order_by] =>  order by file asc
    [order_by_inside_category] =>  ORDER BY date_available DESC, file ASC, id ASC
    [file_ext] => Array
        (
            [0] => jpg
            [1] => JPG
            [2] => jpeg
            [3] => JPEG
            [4] => png
            [5] => PNG
            [6] => gif
            [7] => GIF
            [8] => mpg
            [9] => zip
            [10] => avi
            [11] => mp3
            [12] => ogg
        )

    [picture_ext] => Array
        (
            [0] => jpg
            [1] => JPG
            [2] => jpeg
            [3] => JPEG
            [4] => png
            [5] => PNG
            [6] => gif
            [7] => GIF
        )

    [top_number] => 15
    [anti-flood_time] => 30
    [comment_spam_reject] => 1
    [comment_spam_max_links] => 3
    [calendar_datefield] => date_creation
    [calendar_show_any] => 1
    [calendar_show_empty] => 1
    [calendar_month_cell_width] => 80
    [calendar_month_cell_height] => 80
    [newcat_default_commentable] => 1
    [newcat_default_uploadable] =>
    [newcat_default_visible] => 1
    [newcat_default_status] => private
    [level_separator] =>  /
    [paginate_pages_around] => 2
(...)

Si on regarde en détail, il s'agit des paramètres passés à la galerie piwigo pour l'affichage de celle-ci ! Le code de sortie n'est déjà pas interprété comme du html et en plus il ne remonte pas les infos demandées... Si je commente la partie que tu as ajoutée, je reviens sur :

<br />
<b>Notice</b>:  unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 0 of 3855 bytes in <b>E:\www\monsite\ws2.php</b> on line <b>34</b><br />

Il doit forcément y avoir une astuce...

Hors ligne

#27 2010-01-29 17:40:30

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Web services en intra site chez Free

En fait, c'est normal d'avoir l'affichage des paramètres de Piwigo dans le premier cas : c'est à cause du print_r($conf) !! On affiche la conf mais pourquoi ?

Hors ligne

#28 2010-01-29 17:55:57

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Web services en intra site chez Free

Ok, j'ai pigé d'autres choses :

- Effectivement, en local (quelque soit le navigateur, pour moi), cela ne fonctionne absolument pas. Aucune balise html n'est interprétée.

- En ligne et en conservant le code d'origine (avec le print_r($conf)), il y a du mieux : les balises html sont interprétées mais c'est l'affichage des miniatures qui ne va pas : http://www.infernoweb.net/ws2.php

Je pense que la correction des adresses des photos en bdd n'est pas correcte. Je creuse de ce côté maintenant.

[edit] Erratum : A priori, c'est le $picture['tn_url'] qui ne remonte pas la bonne donnée. [/edit]

Dernière modification par Eric (2010-01-29 17:59:33)

Hors ligne

#29 2010-01-29 17:59:30

cljosse
Former Piwigo Team
2006-11-12
1167

Re: [Résolu] Web services en intra site chez Free

Je ne comprends pas mais en ajoutant ce print_r($conf) sous FireFox j'affiche les images et non le texte.

En fait en cherchant un peu et en modifiant

include/ws_protocols/php_encoder.php

        function getContentType()
     en remplaçant                return 'text/plain'  par return 'text/html' , il n'a plus ce problème sous FF


et je n'ai plus besoin de ce print_r($conf)

A+

Hors ligne

#30 2010-01-29 18:04:54

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Web services en intra site chez Free

Je sais pourquoi cela ne fonctionne pas en local : J'utilise Wampserver (mais c'est la même chose avec easyphp) en mode hors ligne. Ainsi, il ne peut pas interpréter correctement ces lignes :

Code:

    $files=$_SERVER['PHP_SELF'] ;
    $file= explode("/",$files);
    $file=$file[count($file)-1];
    $racine =  $_SERVER['SERVER_NAME'] . str_replace( $file ,"",$_SERVER['PHP_SELF']);

Si on passe en mode en ligne ou si on fait les tests sur un serveur d'hébergement, ce pb ne se pose plus.

Ceci dit, même en ligne ou sur mon serveur Free, je n'affiche toujours pas les TN des images...

Hors ligne

  •  » Utilisation
  •  » [Résolu] Web services en intra site chez Free

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact