PDA

View Full Version : récupération en auto des graphes


math
30th May 2006, 16:09
Bonjour,

je cherche a mettre en place (avt de passer en 1.3) un outil qui me permettrait de générer en auto les graph pour les insérer dans un doct annexe.
le but etant de faire un wget XXXX pour récupérer le PNG et apres mon script le copiera au bon endroit.

seul pblm lorsque que je fait (par ex) :
http://oreon/include/graph/graph_image.php?time=-7200&time2=0&timename=Courant&namerrd=793.rrd&path=/usr/local/oreon/rrd/&verticallabel=label&imgformat=PNG&width=500&height=100&ColGrilFond=FFFFFF&ColFond=FEFEFE&ColPolice=000000&ColGrGril=800000&ColPtGril=808080&ColContCub=000000&ColArrow=FFFFFF&ColImHau=C0C0C0&ColImBa=909090&ds1name=uptime&ds2name=&ColDs1=FF0000&ColDs2=&ds3name=&ds4name=&ColDs3=&ColDs4=&flamming=no&lowerlimit=0&areads1=yes&ticknessds1=1&gprintlastds1=yes&gprintminds1=yes&gprintaverageds1=yes&gprintmaxds1=yes&areads2=&ticknessds2=&gprintlastds2=&gprintminds2=&gprintaverageds2=&gprintmaxds2=&areads3=&ticknessds3=&gprintlastds3=&gprintminds3=&gprintaverageds3=&gprintmaxds3=&areads4=&ticknessds4=&gprintlastds4=&gprintminds4=&gprintaverageds4=&gprintmaxds4=&dsflg=1&name=graph_uptime%20-%20MACHINE

j'ai un résultat tout ce qui est illisible. (un binaire mal traduit on, dirait)

est ce que qqn aurait une petite piste?

merci[/img]

pepito
30th May 2006, 16:31
il faut que tu indiques dans les headers HTTP que tu récupères une image et pas du texte...
La fonction header() est ton amie :)

math
30th May 2006, 16:35
ok merci pour la réponse

donc faut faire un wget --header=header-line

mais faut mettre quoi comme parametre en header?

pepito
30th May 2006, 16:42
http://fr3.php.net/header :roll:

header('Content-Length: '.filesize($image));
header('Content-Type: image/png');

Ca c'est le code php.

C'est le serveur qui t'envoit l'image qui doit spécifier le type du fichier récupéré.
En passant l'argument à wget, tu dis au serveur ce que tu veux (le type d'encodage utf-8 ou iso, le langage préféré -francais, anglais, grolandais- la dernière de modification de ta page en cache...)

math
30th May 2006, 17:02
reponse de la personne qui essaye de bosser dessus :

J'ai encore un probleme : il semblerait qu'il refuse l'authentification que je lui passe en parametre de wget (http-user et http-passwd).
Je pensais les passer dans les variable de POST, mais quelles seraient les variables a renseigner ? "?user=toto&pass=tata" par exemple ?

pepito
30th May 2006, 17:15
regarde le code source de la page de login pour trouver les noms mais je ne crois pas que ca t'aidera.
C'est pas tout d'avoir login et password, il faut que la session soit créée.
En gros ca dépend de comment c'est codé derrière.

Soit il crée la session et exécute la page dans la foulée, soit tu es redirigé à la page d'accueil.
Ou bien il peut très bien te rediriger vers la page de login sans voir que tu viens de lui passer les paramètres de connexion.

Enfin ca dépend quoi :)

math
30th May 2006, 17:15
en essayant ce type de commande :

wget --http-user='huhu' --http-passwd='haha' --header='Content-Type: image/png' --post-data='time=-7200&time2=0&timename=Courant&namerrd=223.rrd&b..........' http://oreon.tasociete.com/include/graph/graph_image.php


ca retourne un fichier avec ca dedans :

Fatal error: Call to a member function on a non-object in /usr/local/oreon/include/graph/graph_image.php on line 89

math
30th May 2006, 17:16
oups j avais pas vu ta réponse =)

vais matter un peu plus le code.

est ce que cela serait simplifier en passant en 1.3?

pepito
30th May 2006, 17:17
ah... ben regarde ligne 89 :)

edit:

moi j'ai ca include_once ("../../lang/" . $oreon->user->get_lang() . ".php");


Ca veut dire que l'objet $oreon ou $oreon->user n'existe pas.

Je dirais que ta session n'est pas ouverte.

En plus ton mot de passe ne sert à rien du tout la vu que ce n'est pas de l'authentification http comme dans nagios mais de l'auth php (grace au formulaire)
L'authentification http t'ouvre une fenetre qui te demande login et mot de passe pour accèder à une zone restreinte

pepito
30th May 2006, 17:23
est ce que cela serait simplifier en passant en 1.3?

J'en sais rien je suis po dev :)

math
30th May 2006, 17:29
J'ai modifie le code pour forcer la langue ligne 89, le pb se repete a la ligne 221, j'imagine que si je force a ce niveau la ca petera a un autre endroit. En effet c'est plus que certainement des objets stockes dans une session.
Du coup, je commence a me dire que mes scripts qui vont faire des wget sur les images dans oreon sont pas pres d'etre operationnels
Quelqu'un ici saurait quelles variables renseigner dans le POST pour creer une session au moment du wget ?

Merci, désolé pour toutes ces questions

pepito
30th May 2006, 17:34
Duplique ce fichier et travaille dedans.
Tu forces la création de la session au début de ta page en codant tout en dur dedans.

Mais bon mets la à l'écart dans un dossier protégé. Cette fois tu pourras utiliser tes --http-user et --http-password ;)

math
30th May 2006, 17:57
Hehe, je pensais bien à faire un truc comme ca, meme si ca fait "bidouille"
Merci du coup de main, pour le coup je vais mm pas mettre de password, tout en dur !

pepito
30th May 2006, 18:01
you're welcome ;)