GET funktioniert nicht

Alles, was PHP betrifft, kann hier besprochen werden.

GET funktioniert nicht

Postby jurismai » 14. August 2006 09:55

Hallo!
Also kurz mein Problem: Ich mache eine MySQL-Abfrage und gebe die Daten in einer kleine Tabelle aus. Darunter soll ein Tortendiagramm die Sache etwas anschaulicher machen.
Die Programmteile für sich funktionieren schon, ich weiß aber nicht WIE ich das zusammenbringe.
Ich muß ja das Array, welches die Daten aus der Abfrage enthält, irgendwie an die Grafik.php senden welches das image erstellt (wegen header() muß es ja extra gemacht werden). Mittels Formular wurde das ganze aber schon an die Bsp.php gesendet, die mir die Daten aufarbeitet und in der Tabelle ausgibt.
Wie kann ich das ganze jetzt realisieren, daß das Array ausgegeben wird und noch als Grafik auf der gleichen Seite angezeigt wird?

Ich hoffe ich hab mich halbwegs verständlich ausgedrückt. Ich komm nicht drauf wie ich das grundsätzlich mache (welche Daten wann und wie gesendet werden). Das ganze sollte natürlich OHNE register_globals=On laufen.

Danke
Last edited by jurismai on 22. August 2006 08:48, edited 1 time in total.
jurismai
 
Posts: 6
Joined: 14. August 2006 09:02

Postby kleinweby » 14. August 2006 10:29

moin,

also wenn deine Grafik.php die Daten per GET übernimmt könnte man es so machen.
Du scheribst dahin wo das Grafik hin soll volgendes:
Code: Select all
echo "<img src=\"Grafik.php?daten1=wert1&daten2=wert2\"></img>";

(Dies is PHP code muss also auch in <?php ?> oder so stehen.)

kleinweby
User avatar
kleinweby
AF Moderator
 
Posts: 393
Joined: 03. August 2005 19:52
Location: Magdeburg
Operating System: Mac OS X 10.7

Postby jurismai » 17. August 2006 11:59

Ok, erstmal Danke für die Antwort!

Und wie übernehme ich die Variablen dann in der Grafik.php? Mit $HTTP_GET_VARS hat es irgendwie nicht funktioniert.

Gruß
jurismai
 
Posts: 6
Joined: 14. August 2006 09:02

Postby kleinweby » 17. August 2006 12:05

moin,

man bekommt die daten über $_GET.

kleinweby
User avatar
kleinweby
AF Moderator
 
Posts: 393
Joined: 03. August 2005 19:52
Location: Magdeburg
Operating System: Mac OS X 10.7

Postby jurismai » 22. August 2006 08:40

Leider funktioniert das aus irgendeinem Grund nicht. Ich hab schon alles mögliche versucht. Ich poste mal den Code:
Die aufrufende Datei: Grafik-test.php
Code: Select all
$laenge[0] = "10";
$laenge[1] = "20";
$laenge[2] = "30";
$laenge[3] = "40";
$laenge[4] = "50";

print( "<IMG SRC='Grafik.php?daten=laenge'>" );


Und hier die Grafik.php:

Code: Select all
$laenge[] = $_GET[ daten ];
header('Content-type: image/png');

$img = Grafik_erstellen( $laenge );

Imagepng( $img );
ImageDestroy( $img );

FUNCTION Grafik_erstellen( $data ) {
...Grafik wird erstellt...
return( $img );
}


Das müßte doch eigendlich funktionieren, tut es aber nicht!
Ich hab auch schon alles probiert wie die Variablen in einfache und doppelte Anführungszeichen zu setzen etc.
Die Function Grafik_erstellen() funktioniert tadellos, hab sie schon getestet. Wenn ich das $laenge-Array in die Grafik.php kopiere läuft alles.
Bin für jeden Hinweis dankbar!
jurismai
 
Posts: 6
Joined: 14. August 2006 09:02

Postby kleinweby » 22. August 2006 12:18

moin,

funktionieren müssste es so nicht wie dus geschrieben hast.
1. Man kann keine Array mit GET übergeben. //Edit: Sorry hab ich eines besseren belehren lassen :) Ändere nun untem das beispiel.
2. du hast bei "abrufen" der daten die '' oder "" vergessen -> $_GET['daten'].
so müsste es aussehen:
Code: Select all
$laenge[0] = "10";
$laenge[1] = "20";
$laenge[2] = "30";
$laenge[3] = "40";
$laenge[4] = "50";

print( "<IMG SRC='Grafik.php?daten[]=".$laenge[1]."&daten[]=".$laenge[2]."&daten[]=".$laenge[3]."&daten[]=".$laenge[4]."'>" );

und
Code: Select all
$laenge = $_GET['daten'];
header('Content-type: image/png');

$img = Grafik_erstellen( $laenge );

Imagepng( $img );
ImageDestroy( $img );

FUNCTION Grafik_erstellen( $data ) {
...Grafik wird erstellt...
return( $img );
}


kleinweby
User avatar
kleinweby
AF Moderator
 
Posts: 393
Joined: 03. August 2005 19:52
Location: Magdeburg
Operating System: Mac OS X 10.7

Postby Wiedmann » 22. August 2006 16:51

Code: Select all
print( "<IMG SRC='Grafik.php?daten[]=".$laenge[1]."&daten[]=".$laenge[2]."&daten[]=".$laenge[3]."&daten[]=".$laenge[4]."'>" );

In URIs sollte man immer "&amp;" anstatt "&" schreiben. Um es besser zuordnen zu können, kann man das dann auch gleich "laenge" anstatt "daten" nennen:
Code: Select all
echo '<img src="Grafik.php?laenge[]='.$laenge[0].'&amp;laenge[]='.$laenge[1].'&amp;laenge[]='.$laenge[2].'&amp;laenge[]='.$laenge[3].'&amp;laenge[]='.$laenge[4].'">';


Code: Select all
$laenge = $_GET['laenge'];
$img = Grafik_erstellen($laenge);

Wenn man die Variable "$laenge" nirgends mehr benötigt, könnte man im Funktionsaufruf auch gleich auf's $_GET-Array zugreifen:
Code: Select all
$img = Grafik_erstellen($_GET['laenge']);



Als Alternative würde auch sowas gehen:
Code: Select all
echo '<img src="test2.php?laenge='.urlencode(base64_encode(serialize($laenge))).'">';

und
Code: Select all
$laenge = unserialize(base64_decode($_GET['laenge']));
$img = Grafik_erstellen($laenge);

oder
Code: Select all
$img = Grafik_erstellen(unserialize(base64_decode($_GET['laenge'])));
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby jurismai » 24. August 2006 17:47

Also erstmal TAUSEND DANK für die Hilfe. Ich werd's gleich mal testen.
Ich hab 3 Bücher zu PHP und stöbere regelmäßig im Netz zu diesem Thema aber daß man Araays auf diese Weise übergeben muß, hab ich noch nie gelesen.
Naja, so kann's gehen. Da sitz ich drei Tage an diesem Käse und hab schon an mir selbst gezweifelt.

Danke und Tschüß!
jurismai
 
Posts: 6
Joined: 14. August 2006 09:02

Postby jakimo72 » 30. August 2006 18:17

Und wie wäre die Verwendung eines Session-Arrays? Dann braucht man keine Klimmzüge mit base64_encode und die Länge ist auch nicht so sehr
eingeschränkt.

Einfach in jeder Seite ein "session_start();" ganz am Anfang einfügen.
Und schon kann jede Seite schreibend wie lesend auf das Array $_SESSION
zugreifen.
User avatar
jakimo72
 
Posts: 151
Joined: 07. February 2005 13:25
Location: Hamburg-Barmbek


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests