PHP jpGraph Cach löschen

  • #1
D

Don_Pazo

Bekanntes Mitglied
Themenersteller
Dabei seit
16.09.2005
Beiträge
112
Reaktionspunkte
0
Hallo,
ich habe einen Formular. Nach dem er ausgefühlt und auf Anschauen geklickt wird, wird eine Diagramm generiert.
Die werden für die Diagramm Erzeugung lese ich aus der DB.

in der HTML füge ich die Diagramm mit
Code:
require_once('[url]http://.......'[/url]);

Beim erster Generierung der Diagramm funktioniert alles problemlos.
Das Problem ist:
beim zweiten Versuch, list er aus dem Cash die alte Diagramm (was eigentlich nicht sein sollte!!).

die Image.php :

Code:
require_once(../include/jpgraph/jpgraph.php);
require_once(../include/jpgraph/jpgraph_gantt.php);
require_once(../include/config.inc.php)

$link = dbConnect();
	if($link){
	
		// GRAPH-BREITE EINSTELLEN

		# Basic graph erstellen + Projektname		
		$graph = new GanttGraph();
     
        /* ALLES wie gewohnt */
           ...
           ...

        // MYSQL TRENNEN
		mysql_close($link);
	
     	$graph ->StrokeCSIM(basename( __FILE__));

   }

Ich weis es nicht worum es liegen kann, vermutte das jpGraph aus dem Cach die alte name des ImageMap list ( dem ich mit StrokeCSIM erstelle).

Wie kann ich die jpGraph Image Cach löschen?
 
  • #2
5.1 Enabling the cache system

The enabling disabling of the cache system is controlled by two defines (in jpg-config.php)

DEFINE( USE_CACHE, true);
DEFINE(READ_CACHE, true)

The first of these, USE_CACHE, is the master-switch which must be set to true to enable the caching system. The second switch READ_CACHE very seldom needs to be changed.

This second switch basically tells whether or not JpGraph should ever look in the cache. Setting this to false and the master-switch to true would then always generate an new updated image file in the cache and this new image would be send back to the browser. The main use for this (admittedly) strange setting is if you like to have the side effect of the script that a fresh image is always stored in the cache directory.

Once you have enabled the cache you must also make sure that a valid cache directory is setup. The cache directory is specified with the define

DEFINE( CACHE_DIR, /tmp/jpgraph_cache/);

You can of course change the default directory to whatever directory you fancy. But, you must remember one important thing. The cache directory must be writable for the user running Apache/PHP .

So stehts im Manual ;)

Das Problem dabei ist, das das Bild ja auch noch im Browser-Cache hängt.
Ich hab das bislang so geregelt, dass ich dem Image beim erstellen einen Timestamp mit in den Namen geschrieben habe, dann bist du sicher das immer das aktuelle Bild geladen wird.

Hierbei musst du allerdings beim Aufruf des Bildes den Timestamp wissen.
Den kannst du ja z.B. in die Session schreiben.
 
  • #3
Ich habe so was probiert, leider ladet er mir nach dem zweiten mal immer noch die alte Diagramm.

Code:
	DEFINE( USE_CACHE, true);
	DEFINE(READ_CACHE, true);
	
	DEFINE( CACHE_DIR, /tmp/jpgraph_cache/);
...

		$zeit = date(H:i s, mktime(date(H), date(i), date(s), date(m), date(d), date(Y)));
...

		$graph->title->Set($selProNameZiel['projektname'].$zeit);

Meintest du was anders mit:
Ich hab das bislang so geregelt, dass ich dem Image beim erstellen einen Timestamp mit in den Namen geschrieben habe, dann bist du sicher das immer das aktuelle Bild geladen wird.
 
  • #4
z.B. so:

Bild speichern
Code:
<?php
....
....
// Aktuelle Zeit in Session schreiben
$_SESSION[img] = time();
// Bild-Name festlegen
$graph->title->Set($selProNameZiel['projektname'] .->_' . $_SESSION[img]);
....
....
?>

Bild aufrufen
Code:
<?php
....
....
require_once('pfad_zum_bild/bild_name_' . $_SESSION[img] .->.jpg'); 
....
....
?>

==>> Die Session muss natürlich gestartet sein O0

Don_Pazo schrieb:
Ich habe so was probiert, leider ladet er mir nach dem zweiten mal immer noch die alte Diagramm.

Code:
	DEFINE( USE_CACHE, true);
	DEFINE(READ_CACHE, true);
	
	DEFINE( CACHE_DIR, /tmp/jpgraph_cache/);
...

		$zeit = date(H:i s, mktime(date(H), date(i), date(s), date(m), date(d), date(Y)));
...

		$graph->title->Set($selProNameZiel['projektname'].$zeit);

Ähm, du willst doch gar keinen Cache, dann muss das aber so aussehen ;)
Code:
DEFINE( USE_CACHE, false);
DEFINE(READ_CACHE, false);

Und das wird in der jpGraph-Konfiguration eingestellt:
The enabling disabling of the cache system is controlled by two defines (in jpg-config.php)
 
  • #5
Ich habe es gefunden!

Bis jetzt habe ich in der img.php Datei, also die Datei in der ich die jpGraph Diagramm generiere folgendes:

Code:
// Diagramm zurück schreiben
$graph ->StrokeCSIM(basename( __FILE__));

es soll aber anders gehen, und zwar:

Code:
$graph->Stroke( image001.png );
echo $graph ->GetHTMLImageMap (myimagemap001 );
echo <img src=\image001.png\ ISMAP USEMAP=\#myimagemap001\ border=0> ;

So behält man die Cach und alle $_SESSION´s und das Bilt wird immer frisch aus dem DB erneut gelesen und eingefügt !!
 
  • #6
Ähm, d.h. es geht jetzt, oder es geht immer noch nicht ?? ??? ??
 
  • #7
es geht :D mml
 
  • #8
OK, freut mich mml

Hatte nur nochma nachgefragt weil du den Thread nicht als Erledigt markiert hattest :°
 
Thema:

PHP jpGraph Cach löschen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben