AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] - Von PHP 4 auf 5 -> Code überarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] - Von PHP 4 auf 5 -> Code überarbeiten

Ein Thema von Flips · begonnen am 7. Jan 2008 · letzter Beitrag vom 10. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#1

[PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 7. Jan 2008, 15:53
Hi.

Nach einem PHP-Versionswechsel von 4 auf 5 bin ich nun dabei die Scripte anzupassen. Ein Script nervt besonders.
Das gesamte Script handelt von einem virtuellen Rundgang, der angesprochene Teil zeichnet auf eine Image (Plan) einen Aufenthaltspunkt, welchen es aus der Datenbank entnimmt. Soweit sogut, hat auch alles wunderbar geklappt. Doch jetzt, nach der Umstellung, meldet der Browser immer
Code:
Die Grafik ".../plan.php?id=2" kann nicht angezeigt werden, weil sie Fehler enthält.
Ich habe die Ursache auf einen Includedatei begrenzen könne, sie enthällt die Klasse "Location".
Man übergibt ihr die ID des Bildes und die Klasse besorgt einem dann alles was man über das Bild in der Datenbank hat.
Hier der Code
Code:
<?php  
include ("../config.inc.php");  //An dieser weiteren Include liegts nicht.
$dummy = ";;;;;;;;;;;";
   
class Location { 
  var $id;            
  var $name;
  var $room_nr;
  var $directions     = array ();   //of bool
  var $direction_paths = array ();   //id array  
  var $direction_names = array ();
  var $quer;
  var $koordinaten = array ();
  var $door;
  var $stockwerk;
  var $turn;
  var $dummy_names = array ();
  var $visits;
  // Hab hier schon public vorgeschrieben, bringt auch nix
  public function GetProperties ($id,$inc) {       
   //An SQL-Codes liegts nicht...
   $query = mysql_query ("SELECT ... FROM ... WHERE id = '$id'");  
    if (!$query) {
      die ("Error in SQL-Syntax
".mysql_error ());
    }
    $r = mysql_fetch_array ($query);
    $this->id             = $id;
    $this->name           = $r[1];
    $this->room_nr        = $r[2];
    $this->quer           = $r[5];
    $this->directions     = explode (";",$r[3]);
    $this->direction_paths = explode (";",$r[4]);
   
    $this->door = $r[7];
   
    $this->koordinaten = explode (";",$r[6]);
    $this->stockwerk = $r[8];    
    $this->turn = $r[9];
                                 
    if (!empty($r[10])) {
      $this->dummy_names = explode(";",$r[10]);
    } else {
      $this->dummy_names = explode(";",$dummy);
    }
                             
   $this->visits = $r[11]+1;
   if ($inc) {
       $handle = fopen ("buffer.dat","r");
       $allVisits = fread ($handle,filesize ("buffer.dat"));
       fclose ($handle);
   
       $allVisits++;
    
       $handle = fopen ("buffer.dat","w");
       fwrite ($handle,$allVisits);
            fclose ($handle);  
      
       mysql_query ("UPDATE ... SET visits = visits+1 WHERE id = '$id'");
   }
 
   
         
    foreach ($this->direction_paths as $v) { 
      $query = NULL;
      $query = mysql_query ("SELECT ... FROM ... WHERE id = '$v'");
      if (!$query) {
        die ("Error in SQL-Syntax
".mysql_error ());
      } 
      $buffer = mysql_fetch_array ($query);
      array_push($this->direction_names,$buffer[0]);  
    } 
  }   
}
?>
Was ist an dieser Klasse falsch??? Wie gesagt, unter PHP 4 ging alles reibungslos.

Thx, Flips
Philipp F.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 7. Jan 2008, 16:05
Wie sieht die Fehlermeldung im Detail aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#3

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 7. Jan 2008, 16:13
Hehe, die Fehlermeldung ist so wie oben, hab nur den Host "zensiert"
Gibt nicht mehr, keine PHP-Fehler
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#4

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 7. Jan 2008, 16:47
Schau die mal die Ausgabe des Scriptes an nich das was im img Tag steht
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#5

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 7. Jan 2008, 17:01
dummy ist nicht initalisiert in der klasse.
wenn du dummy nutzen willst, als parameter übergeben oder "global" machen.

dieses würde dir aber auch als fehlermeldung angezeigt werden, wenn du die fehlermeldungen anschaltest in der php.ini.

Code:
error_reporting = E_ALL
display_errors = On
instanzierst du die klasse irgendwo?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 7. Jan 2008, 17:20
Und die in der Logdatei des Php-Interpreters?
Markus Kinzler
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#7

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 8. Jan 2008, 19:44
Hi.

Sry für die späte Antwort, hab jetzt über
Code:
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
die Fehlerausgabe aktiviert, auch wenn das erste ini_set false zurückgibt. Naja egal, jedenfalls liefert der Aufruf der location.php (Code oben gepostet) im Browser keine Fehlermeldung -> Fehlerfrei.
In der Bild-erzeugenden Datei, die ich gleich poste, wird diese Datei eingebunden.

Ich kann alles was mit der Klasse zusammenhängt ausklammern (wie im Code unten), erst wenn ich die location.php selbst nicht mehr einbinde, wird das Bild dargestellt.

Code:
<?php    
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
//Hier stehn alle Variablen drin, die noch benötigt werden
include ($CONFIG);

/*
include ("location.php");
$Location = new Location ();
$Location->SetPropertys ($_REQUEST["id"],false);  
$x = $Location->koordinaten[0];
$y = $Location->koordinaten[1];
*/ 

header ("Content-type: image/png");
//Damit ein Bild kommt
$handle = @imagecreatefromPNG ("pics/ug.png");  

/*
switch ($Location->stockwerk) {
  case -1 : $handle = @imagecreatefromPNG ("pics/ug.png"); break;
  case 0 : $handle = @imagecreatefromPNG ("pics/eg.png"); break;
  case 1 : $handle = @imagecreatefromPNG ("pics/1og.png"); break;
  case 2 : $handle = @imagecreatefromPNG ("pics/2og.png"); break;
}
$viewpoint_color = ImageColorAllocate ($handle,$r,$g,$b);      
$border_color = ImageColorAllocate ($handle,0,0,0);
ImageFilledArc ($handle,$x+7,$y+6,14,14,0,360,$viewpoint_color,IMG_ARC_PIE); //IMG_ARC_PIE IMG_ARC_CHORD      
ImageFilledArc ($handle,$x+7,$y+6,14,14,0,360,$border_color,IMG_ARC_NOFILL);      
*/



ImagePNG ($handle);
?>
Der Code hat mit PHP 4 geklappt, nur jetzt wird erst ein Bild angezeigt, wenn die location.php ausgebunden wird (und damit dann keine Variablen fehlen hab ich alles damit verbundene ebenfalls in Kommentarzeilen gesetzt.).

Wieso will er die location.php nicht einbinden, obwohl sie fehlerfrei ist????

Achso @generic, ja ich instanziere sie doch über $Location = new Location ();
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#8

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 8. Jan 2008, 19:57
Du musst dir die Source anzeigen lassen. Einfach das BIld aufrufen
und dann Strg+U beim Firefox drücken. Dann bekommst du die Fehler angezeigt.

Alternativ kannst du auch den header()-Aufruf weglassen, mit dem du deinem
Browser sagst, es handle sich um ein Bild.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 8. Jan 2008, 20:00
Oder halt die Logdatei anschauen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#10

Re: [PHP] - Von PHP 4 auf 5 -> Code überarbeiten

  Alt 8. Jan 2008, 20:42
Zitat von mkinzler:
Oder halt die Logdatei anschauen
PHP loggt Script-Fehler mit?

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz