php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.02.2012, 12:47  
Neuer Benutzer
 
Registriert seit: 10.02.2012
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
freeze1179 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] JPGraph und Sessions

Moinsen zusammen,

ich will mal versuchen mein Problem kurz und knapp zu beschreiben.

Ich habe vor einiger Zeit ein Script geschrieben, welchen mir ein Bild herstellt. Die Daten zu dem habe ich in einer Datei gespeichert und mitles GET an die Datei, die das Bild erzeugt übergeben.
Das hat alles wunderbar funktioniert.

So nun das eingentliche Problem; nach einem Serverupdate vom längst veralteten Apache2Triad auf den aktuellen XAMPP funktioniert das Script nicht mehrm warum auch immer.
Nun habe ich gedacht, um die Serverlast etwas zu verringern, speicherste die Daten in Sessionvariablen.
Dazu habe ich 'ne weitere Datei mit 'ne Klasse geschrieben, die einmal die in der Session enthaltenen Daten entgegen nimmt und diese für die JPGraph-Routine zum zusammenbasteln des Bildes (Statistik) verfügbar macht.

So... wenn ich jetzt die Seite aufrufe, wo das Bild kommen sollte, passiert nix, man sieht keinen PHP-Fehler (E_ALL ist an), das Bild wird nur nicht angezeigt. Gehe ich in den Quelltext und klicke direkt auf's Bild kommt "Das Bild kann nicht angezeigt werden, weil es Fehler enthält" ...haha.

Belege ich die Variablen im Script manuell mit Dummydaten erscheint das Bild!
Die Sessionvariablen sind mit den Datengefüllt, habe es von außerhalb der Bilderstelldatei aufgerufen.
Kommentiere ich die Zeilen aus, wo ich auf die Session-Variable zugreife, kommt die JPGraph-Fehlermeldung, dass ich doch mind. 1 Wert angeben sein soll, was ja auch logisch ist...

Nun meine Frage, woran kann das liegen, dass das Bild von JPGraph nicht generiert wird, wenn ich auf Variablen wie $_GET oder $_SESSION zugreifen will??? Bitte um 'ne schnelle Antwort, mein Kunde wartet sehnsüchtig darauf, dass die Statistik wieder läuft.
freeze1179 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.02.2012, 15:44  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

sämtliche fehler beim erstellen des bildes catchen ( try + catch nutzen ) und die "fehler" am ende ( VOR DEM AUSGEBEN ) des bildes in eine Datei schreiben oder als header an den client weiterreiche ( X-MEINE-KOMISCHEN-FEHLER-Header bspw. ), kann man sich dann im netviewer der browser gemütlich reinziehen was dort "falsch" abgeht.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 10.02.2012, 16:20  
Neuer Benutzer
 
Registriert seit: 10.02.2012
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
freeze1179 befindet sich auf einem aufstrebenden Ast
Standard

wo der fehler auftritt weiß ich ja, nämlich bei auslesen der Superglobals ($_...), aber mich interessiert das warum...
Wie gesagt, setze ich Werte manuell, ohne dass ich auf die Superglobals zugreife, funktioniert es ja.
Die Werte kann ich, wenn ich die Klasse außerhalb der der grafikbaudatei aufrufe, auch sehen, d.h. die Werte werden richtig übergeben.
Nichts desto trotz ist das nicht mein Problem, wie's geht weiß ich...

Das Problem ist einfach, dass es vor dem Serverupdate ohne zucken funktioniert hat und nachdem nicht mehr funktioniert.

Das Script bricht scheinbar ab, wenn ich auf die Superglobals zugreife.
Da diese Statistik(en) dynamisch erzeugt werden (2 oder mehr Bilder werden erzeugt), hab ich mich im zuerst entschieden das per werte in csv-Datei schreiben entschieden und sie per get ans Bild übergebe. Nun läuft es nicht per Datei sondern per Session, der Weg ist der ähnlich, nur dass ich keine Datei nutze, um die Werte zu speichern.

Wie schon gesagt, kann ich auf die Session-Variablen zu greifen und diese sind auch mit den richtigen Werten gefüllt.
Will ich auf diese Session-Daten zugreifen passiert nix, bzw. der seltsame Fehler tritt auf. Auch der die Übergabe per Get grafik.php?wert1=0&wert2=1 oder so, funktioniert nicht mehr. Und es hat aber bis zum Update des ApacheServers funktioniert (alten deinstalliert, neuen installiert).
Der alte Server war Apache2Triad (PHP 5.0.x) jetzt XAMPP (1.7.7 mit PHP 5.3.8.).

Die Funktion, die nicht geht...

PHP-Code:
private function set_values()
{
    
$this->wert1 $_SESSION['wert1'];
    
$this->wert2 $_SESSION['wert2'];
    
$this->wert3 $_SESSION['wert3'];
    
$this->wert4 $_SESSION['wert4'];

ändere ich die Funktion so, dass ich die Werte manuell setze wie hier, dann funktionierts...

PHP-Code:
private function set_values()
{
    
$this->wert1 = array(1,2,3,4,3,2,1);
    
$this->wert2 = array(4,3,2,1,2,3,4);
    
$this->wert3 = array(2,1,3,2,4,4,1);
    
$this->wert4 = array(4,3,2,3,4,1,2);

wie schon gesagt, kann ich die Werte (wert1 - 4) sehen, wenn ich das Script von außerhalb der Bilderstelldatei aufrufe sehen und die Werte sind richtig als Array vorhanden, so wie's sein soll...

Meine Frage ist also, warum kann ich nicht auf die Superglobal $_SESSION zugreifen, bzw. warum bricht das Script ab und warum hat's vorher ohne Probleme über mehrere Monate funktioniert.?
freeze1179 ist offline   Mit Zitat antworten
Alt 10.02.2012, 16:33  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

behandel mal die eingabe und mach integer draus:
PHP-Code:
private function set_values() {
   
$wert1 = (array)$_SESSION['wert1'];
   foreach ( 
$wert1 => &$value $value = (int)$value;
   
$wert2 = (array)$_SESSION['wert2'];
   foreach ( 
$wert2 => &$value $value = (int)$value;
   
$wert3 = (array)$_SESSION['wert3'];
   foreach ( 
$wert3 => &$value $value = (int)$value;
   
$wert4 = (array)$_SESSION['wert4'];
   foreach ( 
$wert4 => &$value $value = (int)$value;

   
$this->wert1 $wert1;
   
$this->wert2 $wert2;
   
$this->wert3 $wert3;
   
$this->wert4 $wert4;

Außerdem solltest du auch sicherstellen ( und abfragen ) ob überhaupt werte in der Session übergeben sind. Und auch ob die Session überhaupt richtig übergeben wurde.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 10.02.2012, 18:06  
Neuer Benutzer
 
Registriert seit: 10.02.2012
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
freeze1179 befindet sich auf einem aufstrebenden Ast
Standard

ja, das ist alles ok. würde die Session nicht korrekt sein, würde man auf die Loginseite kommen.
Es geht mir auch nicht um die Session- und/oder Variablenbehandlung, das ist kein Problem, bin kein Anfänger mehr

Es geht mit nur darum zu wissen, warum das Script abbricht , wenn ich auf eine Superglobal zugreife.
Ich kann auch nicht auf $_GET zugreifen, da passiert das gleich, das Script bricht ab.

In der Sessionvariable ist auch kein Array sondern ein string gespeichert.
Der wird dann benutzt um mehrere Arrays zu befüllen.
Selbst wenn die Sessionvariable leer wäre, würde JPGraph mir sagen, dass ich doch mind. einen Wert angeben muss, damit etwas erstellt werden kann.
Wenn ein falscher Wert drin stehen sollte, würde JPGraph mir ebenfalls 'ne Fehlermeldung ausgeben.

Wenn ich mein Script so anpasse:

PHP-Code:
private function set_values()
  {
    
$this->forecast ""//$_SESSION['sto_graf_fc'];
    
$this->planung ""//$_SESSION['sto_graf_pl'];
    
$this->kplanung ""//$_SESSION['sto_graf_kpl'];
    
$this->ist ""//$_SESSION['sto_graf_ist'];
  

kommt die Meldung: JPGraph Error 25121
logisch, ist ja nix da.

ändere ich meinen code:

PHP-Code:
private function set_values()
  {
    
$this->forecast "0;0;900;1;1800;2;2700;2;3600;3"//$_SESSION['sto_graf_fc'];
    
$this->planung =  ""//$_SESSION['sto_graf_pl'];
    
$this->kplanung ""//$_SESSION['sto_graf_kpl'];
    
$this->ist ""//$_SESSION['sto_graf_ist'];
  

wird, wie erwartet auch 'ne Grafik angezeigt.

Da die Sessionvariable nach dem das Bild aufgerufen wird noch existiert und auch richtig befüllt ist, sollte der Wert, statt manuell gesetzt zu werden, im Normalfall übergeben werden.

Wenn ich jetzt nun folgendes mache:

PHP-Code:
private function set_values()
{
    
$this->forecast "0;0;900;1;1800;2;2700;2;3600;3"//$_SESSION['sto_graf_fc'];
    
$this->planung =  ""//$_SESSION['sto_graf_pl'];
    
$this->kplanung ""//$_SESSION['sto_graf_kpl'];
    
$this->ist ""//$_SESSION['sto_graf_ist'];
    
$test $_SESSION['user_name'];

sehe ich schon wieder kein Bild, nur den Platzhalter.

Ich greife also nur auf die Supergloble $_SESSION zu und das Script bricht ab.
Die Variable "user_name" existiert und wird beim Login belegt.
Diese Variable test hat NIX mit dem Rest zu tun und bewirkt nix. Im Normalfall sollte trotzdem das Bild wie zuvor angezeigt werden, ODER ???

Ich könnte statt dessen auch $test = $_GET[] eingeben, genau das gleiche Problem, das Script bricht ab.

WARUM passiert das???

Geändert von freeze1179 (10.02.2012 um 18:11 Uhr).
freeze1179 ist offline   Mit Zitat antworten
Alt 10.02.2012, 18:35  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

In welchem Kontext wird das Script aufgerufen ? CLI ? (fast)CGI ?

Edit: hmm, im Webserver-Kontext, sehs grad.

Nutzt du Error-Supression beim aufruf der Klassenmethode ?
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 10.02.2012, 18:38  
Neuer Benutzer
 
Registriert seit: 10.02.2012
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
freeze1179 befindet sich auf einem aufstrebenden Ast
Standard

es wird einfach aus dem Script heraus aufgerufen
PHP-Code:
<img src 'fkt_line_graph.php'
freeze1179 ist offline   Mit Zitat antworten
Alt 10.02.2012, 18:40  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von freeze1179 Beitrag anzeigen
es wird einfach aus dem Script heraus aufgerufen
PHP-Code:
<img src 'fkt_line_graph.php'
dump mal die Session-Variable in ein File innerhalb der funktion:

PHP-Code:
private function set_values()
{
    
$this->wert1 $_SESSION['wert1'];
    
$this->wert2 $_SESSION['wert2'];
    
$this->wert3 $_SESSION['wert3'];
    
$this->wert4 $_SESSION['wert4'];

    
file_put_contents('mydump.txt'var_export($_SESSION));

und guck dir das file an, unzwar NACHDEM du versuchst hast das bild innerhalb eines img-tags darzustellen und EXPLIZIT NICHT nachdem du das script aufgerufen hast im browser.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 10.02.2012, 18:44  
Neuer Benutzer
 
Registriert seit: 10.02.2012
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
freeze1179 befindet sich auf einem aufstrebenden Ast
Standard

is leer, steht nix drin
freeze1179 ist offline   Mit Zitat antworten
Alt 10.02.2012, 18:51  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

PHP-Code:
private function set_values()
{
    
$this->wert1 $_SESSION['wert1'];
    
$this->wert2 $_SESSION['wert2'];
    
$this->wert3 $_SESSION['wert3'];
    
$this->wert4 $_SESSION['wert4'];

    
file_put_contents('mydump.txt'is_null($_SESSION) ? 'Session nicht initialisiert' var_export($_SESSION));

Steht dann im File "Session nicht initialisiert" ?
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.

Geändert von tr0y (10.02.2012 um 18:58 Uhr). Grund: hab gepennt oO
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JpGraph X-Achse als Zeitlinie verwenden the|MIKE PHP Einsteiger 1 30.12.2010 08:17
[Erledigt] Parameterübergabe an jpgraph louis PHP-Fortgeschrittene 6 09.02.2010 18:33
SessionHandler - Sessions in einer Datenbank #Avedo Software-Design 11 04.05.2009 15:44
Login-System ohne Sessions ratsam? MauMau PHP Tipps 2008 4 02.09.2008 12:09
2 Sessions Kein Genie PHP Tipps 2006 8 21.07.2006 15:45
[Erledigt] probleme mit sessions PHP Tipps 2007 1 17.11.2005 10:43
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Sessions! DER_Brain PHP Tipps 2005-2 5 30.06.2005 14:51
2 Sessions? PHP Tipps 2005 5 29.04.2005 19:04
Proble mit Sessions PHP Tipps 2005 7 07.02.2005 17:42
[Erledigt] Umstieg von Xampp auf Einzelkomponenten: Sessions aktivieren PHP-Fortgeschrittene 1 19.01.2005 11:26
Sessions auf Apache2 gehen nicht! Server, Hosting und Workstations 1 27.09.2004 17:39
[Erledigt] Hinweis: PHP 5 und JpGraph PHP-Fortgeschrittene 1 19.07.2004 19:00
[Erledigt] Usermanagement mit Sessions - Sicherheitsprobleme ? PHP Tipps 2004 0 30.06.2004 09:49
Sessions, sessions und nochmal sessions PHP-Fortgeschrittene 0 06.06.2004 00:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
xampp 1.7.7 mysql sqldump wird nicht ein gelesen, jpgraph und php 5.3 probleme, php jpgraph session variablen, jpgraph error: 25121, jpgraph kein bild, jpgraph session variable, jpgraph bild in variable speichern, jpgraph variable session, jpgraph fehler 25121, jpgraph variable abfrage $_get, jpgraph sehe keine bilder, jpgraph kann nicht angezeigt werden, php 5.3.8 variable übergabe, jpgraph 1. x-wert falsch, jpgraph error 25121

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum