IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tracer courbe method post, get ou ???


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    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

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    avec la methode get je fais cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //echo "<img src='courbe.php?values=".serialize($tabvalues1)."&Site=".$Site."&NumTranche=".$NumTranche."&NomCapteur=".$NomCapteur."' alt='Mon graphique'/>";
    avec la method post
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    ="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é

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    voila le code que j'appelle avec la methode post :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  6. #6
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par cedre22
    avec la methode get je fais cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //echo "<img src='courbe.php?values=".serialize($tabvalues1)."&Site=".$Site."&NumTranche=".$NumTranche."&NomCapteur=".$NomCapteur."' alt='Mon graphique'/>";
    avec la method post
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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.

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par Mr N.
    Citation Envoyé par cedre22
    ok merci, mais je ne peux pas utiliser la sauvegarde en session
    Pourquoi ?

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  10. #10
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    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...

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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/vie...446573#2543145

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Mr N.
    ,
    Soit tu passes par les sessions
    comment par les sessions ?

  15. #15
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    et les fichiers ?

    comment sauvegarder l'image crée au lieu de l'afficher ?

  16. #16
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $graph->draw('chemin/vers/mon/fichier.gif');
    echo '<img src="chemin/vers/mon/fichier.gif" />';
    Un truc dans ce genre.

  17. #17
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    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

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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 ?

  19. #19
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 124
    Points : 60
    Points
    60
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $form = new Formulaire ("POST", "CourbePost.php");
    $form->champCache ("values", serialize($tabvalues1));
    $form->champValider ("Spectre","Spectre");
    echo $form->formulaireHTML();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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');
     
    ?>

  20. #20
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Félicitations, je vois que tu lis mes suggestions en entier !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/03/2009, 10h50
  2. [getRequestDispatcher] de post à get (et vice versa)
    Par Kimael dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 21/11/2008, 09h36
  3. [HTTP]passage de parametres via la methode post
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/03/2008, 14h11
  4. [Servlet] Form. Methode POST - Erreur 405
    Par Johnbob dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/11/2004, 16h46
  5. Passage de variable par methode post ?
    Par oazar dans le forum Flash
    Réponses: 33
    Dernier message: 16/10/2003, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo