Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/02/2006, 10h24   #1
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
Par défaut Tracer courbe method post, get ou ???

bonjour

voila je voudrais tracer des courbes a partir d'une base de donnees

via la method get cela marche mais j'ai le probleme de la taille max de l'url donc ca va pas des que mes graphes sont trop gros

via la method post pas moyen d'affichier mon menu et mon entete sinon il m'affiche cela
Code :
1
2
3
4
Avertissement PHP : Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\bd_transfert_etapom\entete.php:4)
Ligne 355 du script c:\program files\easyphp1-8\www\bd_transfert_etapom\Artichow-php4+5\php4\Image.class.php
 
‰PNG 
cela marche seulement si je ne mets pas mon menu et mon entete

c quoi cette erreur et comment faire ???

merci a tous
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 10h46   #2
Membre du Club
 
Inscription : février 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 57
Points : 40
Points : 40
c'est une erreur qui arrive dès que tu veux envoyer un header (exemple session_start() APRES avoir envoyé la balise <html> ou n'importe quelle autre balise.
si tu fais tes courbes avec une librairie GD, tu dois surement dire que le fichier est de type "image", et ceci tu dois le dire TOUT au début du code source...
par contre ce que je comprend pas c'est, si tu supprime les GET en mettant des POST a la place que ca t'affiche une erreur
Gimmly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 10h52   #3
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
avec la methode get je fais cela
Code :
//echo "<img src='courbe.php?values=".serialize($tabvalues1)."&Site=".$Site."&NumTranche=".$NumTranche."&NomCapteur=".$NomCapteur."' alt='Mon graphique'/>";
avec la method post
Code :
1
2
3
4
5
6
7
	  // Premier tableau: présentation standard, en colonnes
	  $form = new Formulaire ("POST", "CourbePost.php");
	  $form->debutTable(HORIZONTAL);
	  $form->champCache ("values", serialize($tabvalues1));
	  $form->finTable();
	  $form->champValider ("Spectre","Spectre");
	  echo $form->formulaireHTML();
j'ai pas trop compris cette histoire de header
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 10h53   #4
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
Citation:
="Gimmly"]c'est une erreur qui arrive dès que tu veux envoyer un header (exemple session_start() APRES avoir envoyé la balise <html> ou n'importe quelle autre balise.
si tu fais tes courbes avec une librairie GD, tu dois surement dire que le fichier est de type "image", et ceci tu dois le dire TOUT au début du code source...
je comprend pas désolé
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 10h56   #5
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
voila le code que j'appelle avec la methode post :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
<?php
session_start();
include("entete.php");
include("menu.php");
require_once ("Util.php");
require_once ("Formulaire.php");
?>
<html>
<head>
<div class="contenu">
<?php
// On vérifie que les données à afficher sur le graphique existent
if(isset($_POST['values']) === FALSE) 
{
  exit;
}
 
// On récupère les valeurs à afficher sur le graphique dans $_POST['values'] et on les désérialize
$data = @unserialize($_POST['values']);
//$Site=$_POST["Site"];	
//$NumTranche=$_POST["NumTranche"];	
//$NomCapteur=$_POST["NomCapteur"];	
 
// On vérifie que les données passées en POST sont correctes
if(is_array($data) === FALSE) 
{
  exit;
}
 
require_once ".\Artichow-php4+5\LinePlot.class.php";
 
 
$graph = new Graph(750, 370);
$graph->setAntiAliasing(TRUE);
 
// On créé une courbe basique avec les données
$plot = new LinePlot($data);
 
// Set a background gradient
$plot->setBackgroundGradient(
	new LinearGradient(
		new Color(210, 210, 210),
		new Color(255, 255, 255),
		0
	)
);
 
// Set semi-transparent background gradient
$plot->setFillGradient(
	new LinearGradient(
		new Color(230, 150, 150, 20),
		new Color(230, 230, 180, 50),
		90
	)
);
 
// On créé le graphique et on y ajoute la courbe
$plot->yAxis->setLabelPrecision(1);
$plot->xAxis->label->setInterval(10);
 
// Set title
//$graph->title->set('Spectre de '.$Site ." Tranche ". $NumTranche . " Capteur ". $NomCapteur);
 
$plot->yAxis->title->set("Db");
$plot->yAxis->title->setFont(new TuffyBold(10));
$plot->yAxis->title->move(-4, 0);
$plot->yAxis->setTitleAlignment(LABEL_TOP);
 
 
$plot->xAxis->title->set("Hz");
$plot->xAxis->title->setFont(new TuffyBold(10));
$plot->xAxis->setTitleAlignment(LABEL_RIGHT);
 
 
$graph->add($plot);
$graph->draw();
?>
</div>
<?php
include("pied.php");
?>
  </body>
</html>
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 10h58   #6
Membre du Club
 
Inscription : février 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 57
Points : 40
Points : 40
Citation:
Envoyé par cedre22
avec la methode get je fais cela
Code :
//echo "<img src='courbe.php?values=".serialize($tabvalues1)."&Site=".$Site."&NumTranche=".$NumTranche."&NomCapteur=".$NomCapteur."' alt='Mon graphique'/>";
avec la method post
Code :
1
2
3
4
5
6
7
	  // Premier tableau: présentation standard, en colonnes
	  $form = new Formulaire ("POST", "CourbePost.php");
	  $form->debutTable(HORIZONTAL);
	  $form->champCache ("values", serialize($tabvalues1));
	  $form->finTable();
	  $form->champValider ("Spectre","Spectre");
	  echo $form->formulaireHTML();
j'ai pas trop compris cette histoire de header
pk tu fais pas ton formulaire en html ?
<form action="tongraphique.php" method="post">
je comprend pas très bien pk tu te complique la vie...

sinon l'histoire des header faut que je vois le début du code source du fichier qui te renvoie une erreur de header.
Un header php s'envoie au début du fichier. tu en envoie forcément un autre part dans la page, pour dire que le fichier est une image, et ca fait planter.
Gimmly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h09   #7
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par cedre22
voila le code que j'appelle avec la methode post :

Tu ne peux pas envoyer à la fois du code html et le contenu de ton image.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h10   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par Mr N.
Citation:
Envoyé par cedre22
ok merci, mais je ne peux pas utiliser la sauvegarde en session
Pourquoi ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h15   #9
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
j'ai essayé le formulaire en html mais qu'est ce que ca change et puis en plus je ne sais pas mais ca marche pas

voila le code html du formulaire :

Code :
1
2
3
4
5
 
<form action="CourbePost.php" method="post"> 
<INPUT TYPE='hidden' NAME='values' VALUE=\"serialize($tabvalues1)\">
<input type="submit" value="Spectre">
</form>
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h18   #10
Membre du Club
 
Inscription : février 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 57
Points : 40
Points : 40
ce que je veux dire c'est que tu ne dois pas mettre le formulaire et la graphique sur la même page, parce qu'il faut pas de code html dans l'image...
alors le formulaire pointera directement sur ton graphique, qui est juste une image...
Gimmly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h21   #11
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Le formulaire n'a rien à voir avec ton problème. Ton problème est lié avec le code qui traite la réception des données de ce formulaire :
Il faut bien que tu comprennes que tu ne peux pas envoyer à la fois du code html et le contenu d'une image.
Enfin si, il y a bien une methode mais à utiliser avec parcimonie :
http://www.developpez.net/forums/viewtopic.php?t=446573#2543145
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h34   #12
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
voila j'ai reussi a afficher la courbe en enlevant mon entete et mon menu comme cela il n'y a plus de code html dans l'image mais le probleme est qu'il m'affiche le graphe crée dans une page differente, comment faire pour affichier cette image du graphe dans le contenu de mon site

voila le code :

Code :
1
2
3
4
5
6
 
// Premier tableau: présentation standard, en colonnes
$form = new Formulaire ("POST", "CourbePost.php");
$form->champCache ("values", serialize($tabvalues1));
$form->champValider ("Spectre","Spectre");
echo $form->formulaireHTML();
et puis pour l'image
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
<?php
 
// On vérifie que les données à afficher sur le graphique existent
if(isset($_POST['values']) === FALSE) 
{
  exit;
}
 
// On récupère les valeurs à afficher sur le graphique dans $_GET['values'] et on les désérialize
$data = @unserialize($_POST['values']);
//$Site=$_POST["Site"];	
//$NumTranche=$_POST["NumTranche"];	
//$NomCapteur=$_POST["NomCapteur"];	
 
// On vérifie que les données passées en GET sont correctes
if(is_array($data) === FALSE) 
{
  exit;
}
 
require_once ".\Artichow-php4+5\LinePlot.class.php";
 
 
$graph = new Graph(750, 370);
$graph->setAntiAliasing(TRUE);
 
// On créé une courbe basique avec les données
$plot = new LinePlot($data);
 
// Set a background gradient
$plot->setBackgroundGradient(
	new LinearGradient(
		new Color(210, 210, 210),
		new Color(255, 255, 255),
		0
	)
);
 
// Set semi-transparent background gradient
$plot->setFillGradient(
	new LinearGradient(
		new Color(230, 150, 150, 20),
		new Color(230, 230, 180, 50),
		90
	)
);
 
// On créé le graphique et on y ajoute la courbe
$plot->yAxis->setLabelPrecision(1);
$plot->xAxis->label->setInterval(10);
 
// Set title
//$graph->title->set('Spectre de '.$Site ." Tranche ". $NumTranche . " Capteur ". $NomCapteur);
 
$plot->yAxis->title->set("Db");
$plot->yAxis->title->setFont(new TuffyBold(10));
$plot->yAxis->title->move(-4, 0);
$plot->yAxis->setTitleAlignment(LABEL_TOP);
 
 
$plot->xAxis->title->set("Hz");
$plot->xAxis->title->setFont(new TuffyBold(10));
$plot->xAxis->setTitleAlignment(LABEL_RIGHT);
 
 
$graph->add($plot);
$graph->draw();
 
?>
mais il m'affiche la courbe dans une autre page et non pas dans mon site si vous me comprenez ?
comment faire ?

merci
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 11h41   #13
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Soit tu passes par la méthode que j'ai cité ci-dessus,
Soit tu passes par les sessions
Soit tu passes par un fichier
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 13h05   #14
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
Citation:
Envoyé par Mr N.
,
Soit tu passes par les sessions
comment par les sessions ?
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 13h09   #15
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
et les fichiers ?

comment sauvegarder l'image crée au lieu de l'afficher ?
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 13h18   #16
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par cedre22
et les fichiers ?

comment sauvegarder l'image crée au lieu de l'afficher ?
C'est à mon avis la solution la plus propre surtout en terme de performances (pas besoin de recalculer une image pour les meme parametres)

Alors selon la doc :
Citation:
Envoyé par [url
http://www.artichow.org/doc/Graph#method.draw[/url]]public draw(string $file = NULL)
Créé et affiche l'image à l'utilisateur. Tous les composants précédemment ajoutés avec add() sont dessinés sur l'image. Cette méthode appelle successivement create(), drawComponent() autant de fois que de composants ont été ajoutés et send(). Si vous souhaitez enregistrer l'image dans un fichier plutôt qu'à l'écran, indiquez un nom de fichier destination pour le paramètre $file. Ce paramètre est optionnel, et si il n'est pas rempli, alors l'image sera affichée à l'écran.
j'en déduit donc (non testé) :
Code :
1
2
3
 
$graph->draw('chemin/vers/mon/fichier.gif');
echo '<img src="chemin/vers/mon/fichier.gif" />';
Un truc dans ce genre.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 13h29   #17
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
ca marche !!!

merci

mais comment faire pour que lors de mon submit avec le formulaire (pour utiliser la method post, je sois renvoyer vers une page
parce que la il m'enregistre la courbe dans le dossier mais m'affiche une page blanche
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 13h31   #18
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Je pense que tu n'as pas besoin de formulaire... Enfin ça c'est toi qui voit je connaios pas tes besoins.

Sinon on peut voir ton code ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 13h34   #19
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 124
Points : 28
Points : 28
Citation:
Envoyé par Mr N.
Je pense que tu n'as pas besoin de formulaire... Enfin ça c'est toi qui voit je connaios pas tes besoins.

Sinon on peut voir ton code ?
si on peut utiliser la methode post sans formulaire
je suis preneur mas comment ??

Code :
1
2
3
4
5
 
$form = new Formulaire ("POST", "CourbePost.php");
$form->champCache ("values", serialize($tabvalues1));
$form->champValider ("Spectre","Spectre");
echo $form->formulaireHTML();
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
<?php
 
// On vérifie que les données à afficher sur le graphique existent
if(isset($_POST['values']) === FALSE) 
{
  exit;
}
 
// On récupère les valeurs à afficher sur le graphique dans $_POST['values'] et on les désérialize
$data = @unserialize($_POST['values']);
//$Site=$_POST["Site"];	
//$NumTranche=$_POST["NumTranche"];	
//$NomCapteur=$_POST["NomCapteur"];	
 
// On vérifie que les données passées en POST sont correctes
if(is_array($data) === FALSE) 
{
  exit;
}
 
require_once ".\Artichow-php4+5\LinePlot.class.php";
 
 
$graph = new Graph(750, 370);
$graph->setAntiAliasing(TRUE);
 
// On créé une courbe basique avec les données
$plot = new LinePlot($data);
 
// Set a background gradient
$plot->setBackgroundGradient(
	new LinearGradient(
		new Color(210, 210, 210),
		new Color(255, 255, 255),
		0
	)
);
 
// Set semi-transparent background gradient
$plot->setFillGradient(
	new LinearGradient(
		new Color(230, 150, 150, 20),
		new Color(230, 230, 180, 50),
		90
	)
);
 
// On créé le graphique et on y ajoute la courbe
$plot->yAxis->setLabelPrecision(1);
$plot->xAxis->label->setInterval(10);
 
// Set title
//$graph->title->set('Spectre de '.$Site ." Tranche ". $NumTranche . " Capteur ". $NomCapteur);
 
$plot->yAxis->title->set("Db");
$plot->yAxis->title->setFont(new TuffyBold(10));
$plot->yAxis->title->move(-4, 0);
$plot->yAxis->setTitleAlignment(LABEL_TOP);
 
 
$plot->xAxis->title->set("Hz");
$plot->xAxis->title->setFont(new TuffyBold(10));
$plot->xAxis->setTitleAlignment(LABEL_RIGHT);
 
 
$graph->add($plot);
$graph->draw('.\Courbes\Spectre.png');
 
?>
cedre22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2006, 13h45   #20
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Félicitations, je vois que tu lis mes suggestions en entier !
Code :
1
2
$graph->draw('chemin/vers/mon/fichier.gif');
echo '<img src="chemin/vers/mon/fichier.gif" />';
Cette deuxième ligne je la vois pas dans ton code... normal ?

Essaie déjà d'afficher ton image on s'occupera de ton formulaire après, si besoin.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h22.


 
 
 
 
Partenaires

Hébergement Web