Avatar billede ljungberg Nybegynder
01. maj 2003 - 19:07 Der er 10 kommentarer og
1 løsning

Image + header problem

Jeg har et php script der laver en lagkage graf udfra tal brugeren har indtastet i en form.

Problemet er så, at jeg vil præsentere den graf der bliver dannet, sammen med en masse andet HTML. derfor vil jeg gerne lave grafen på en side og så redirecte brugeren med "header location" funktionen og så på denne side vise grafen.

Her er der koden for de to sider:

<?php
ob_start();
Header("Content-type: image/PNG");

$img = ImageCreate(400,400);
$white = ImageColorAllocate($img, 255, 255, 255);
$blue = ImageColorAllocate($img, 0, 204, 51);
$nr1=$nr1*20;
$nr2=$nr2*20;
$nr3=$nr3*20;
$nr4=$nr4*20;
$nr5=$nr5*20;
$nr6=$nr6*20;
$nr7=$nr7*20;
$nr8=$nr8*20;
ImageFilledArc($img, 200,200, $nr1,$nr1, 270,315, $blue , IMG_ARC_PIE);
ImageFilledArc($img, 200,200, $nr2,$nr2, 315,360, $blue , IMG_ARC_PIE);
ImageFilledArc($img, 200,200, $nr3,$nr3, 0,45, $blue, IMG_ARC_PIE);
ImageFilledArc($img, 200,200, $nr4,$nr4, 45,90, $blue , IMG_ARC_PIE);
ImageFilledArc($img, 200,200, $nr5,$nr5, 90,135, $blue , IMG_ARC_PIE);
ImageFilledArc($img, 200,200, $nr6,$nr6, 135,180, $blue , IMG_ARC_PIE);
ImageFilledArc($img, 200,200, $nr7,$nr7, 180,225, $blue , IMG_ARC_PIE);
ImageFilledArc($img, 200,200, $nr8,$nr8, 225,270, $blue , IMG_ARC_PIE);
//ImagePNG($img);
//ImageDestroy();
Header("Location: result.php");
ob_end_flush();
?>

Koden for result.php:

...
<body>
    <table align="center" width="100%" border="1">
        <tr>
            <td align="center">
                <img src="test1.php">
            </td>
        </tr>
    </table>
</body>
</html>
Avatar billede tipsen Nybegynder
01. maj 2003 - 19:11 #1
Altså vil du have et script der genererer grafen (dvs. ét billede) og intet andet - og det script skal så kunne kaldes fra et andet script - evt. med nogle input parametre?
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 19:14 #2
Du skal ikke redirecte fra din php-kode, der laver grafikken.
Kald den bare med <img src="grafik.php?a=1&b=2"> - evt med parametre,
der bestemmer grafikken.
Avatar billede ljungberg Nybegynder
01. maj 2003 - 19:27 #3
tak erikjacobsen. Det var lige hvad jeg skulle bruge, nemlig sende parametre fra den side der skal bruge billedet. Det virker perfekt! Hvis du vil have point, må du lige lave et svar!
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 19:28 #4
Tak, jeg sanker ikke point
Avatar billede tipsen Nybegynder
01. maj 2003 - 19:34 #5
Der skal vistnok smides en passende image-header på graf-genereringsscriptet!
Avatar billede ljungberg Nybegynder
01. maj 2003 - 19:38 #6
Tak for dine inputs, tipsen, men svaret fra erikjacobsen løste problemet. Det gjorde nemlig at jeg kunne holde billedgenereringen i en PHP for sig og så bare kalde den i mit image tag med de parametre den skal bruge (som kommer fra en form)
Avatar billede tipsen Nybegynder
01. maj 2003 - 20:04 #7
Det er en tilføjelse til Eriks svar - ellers mener jeg ikke du kan være sikker på at det fungerer i alle browsere.
Avatar billede erikjacobsen Ekspert
01. maj 2003 - 20:24 #8
Er Header("Content-type: image/PNG"); ikke nok?
Jeg kan ikke huske hvad typen officielt hedder.
Avatar billede ljungberg Nybegynder
01. maj 2003 - 20:44 #9
Ok tipsen, det må komme an på en prøve! Tak for hjælpen!
Avatar billede tipsen Nybegynder
01. maj 2003 - 20:50 #10
Erik: ups - den havde jeg faktisk ikke set - til gengæld checkede jeg lige lidt rundt og det ser ud til at være det der skal til - mere skulle ikke være nødvendigt - sorry!
Avatar billede ljungberg Nybegynder
23. maj 2005 - 14:20 #11
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester