imagefilledrectangle() unter php4

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • imagefilledrectangle() unter php4

    hi,
    folgendes problem:
    hab lokal ein script geschrieben das ein PNG erzeugt. in diesem verwende ich
    imagefilledrectangle()
    funktioniert auch wunderbar.
    jetzt hab ich das hochgeladen und stelle fest - das bild wird erzeugt, alles andere (text, linien ...) werden wunderbar dargestellt aber alles was imagefilledrectangle() machen sollte fehlt. hab mir dann ma die phpinfo() angeschaut und festgestellt das dort PHP 4.4.2 läuft (lokal PHP5). daher schätze ich das dort irgendwie was verändert wurde, kann im manual allerdings nichts finden was darauf hindeuten das die funktion in php5 geändert wurde?

    kann mir da jmd helfen?

    mfg

    achja: lokal verwende ich laut phpinfo() GD Version bundled (2.0.28 compatible), auf dem server läuft "GD Version 2.0 or higher" (gute angabe, ich weiß *rolleyes*)

  • #2
    läuft das Skript unter
    error_reporting(E_ALL);
    ?
    Falls kein Error ausgespuckt wird und die Funktion auch in einem simplen Test-Case nicht funktioniert, geh deinem Hoster an die Gurgel ^^

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      hm ... ich bin verwirrt
      ein einfaches testscript funktioniert, also muss es prinzipiell an meinem code liegen.
      wenn ich
      error_reporting(E_ALL);
      einschalte, läuft das script nicht durch aufgrund von
      Notice: Undefined offset: 7 on line 40
      das ist allerdings lediglich
      for ($id=0;$entries[$id];$id++)
      ... von daher is das ja normal das er da eine notice ausspuckt wenn er das offset nichtmehr findet, daran kanns eigentlich net liegen.

      eigentlich soll das script nur daten aus einer datenbank holen und zu einem balkendiagramm verarbeiten ... ich bin halt bissl verwirrt weil das lokal einwandfrei geht. hier mal die codeauszüge die wichtig sein dürften:
      PHP-Code:
      /*
      $entries wird vorher mit einträgen aus der datenbank gefüllt 
      und enthält die anzahl an einträgen passend zu einem 
      wochentag (7 stück). das ganze sieht nachehr so aus:
      Array ( [0] => -1 [1] => 12 [2] => 35 [3] => 50 [4] => 66 [5] => 48 [6] => 1 ) 
      $ein_eintrag ist dazu da die höhe des balkens zu bestimmen 
      und enthält die anzahl pixel wie hoch der balken wachsen muss 
      für jeden eintrag. der wert ist 
      7.5757575757576
      Jetzt der entscheidende Code
      */
      $white imagecolorallocate($image,255,255,255);
      $color imagecolorallocate($image,210,210,210);
      imagefill($image,0,0,$white);
      for (
      $id=0;$entries[$id];$id++)
      {
        if (
      $entries[$id] != -1)
        
      imagefilledrectangle($image,$id*100+$id*5,$height,$id*100+$id*5+100,$height-round($ein_eintrag*$entries[$id]),$color);
      }
      /*
      Kurze Erklärung:
      Das ganze macht folgendes: Es schaut erstmal ob es für 
      einen wochentag überhaupt einen balken zeichnen muss (!= -1). 
      Wenn ja zeichnet es den balken. jeder balken ist 100px breit
      und zwischen den balken sind 5px breite lücken. auserdem 
      sollen die balken von unten nach oben gehen und nicht von 
      oben nach unten. darum muss beim letzten Y-Wert auch 
      das $height- vorangestellt werden. $height enthält 
      übrigens lediglich die Höhe des Bildes (500)
      */ 
      thx mfg

      PS: ich halte das jetzt mal für die wichtige stelle. falls ihr da keinen fehler rauslest dann sagt es mir, dann poste ich den ganzen code, dann muss ich ihn allerdings vorher kommentieren (hab das script letzte nacht geschrieben und stelle fest das es leicht verwirrend ist )
      Zuletzt geändert von blackwolf; 10.04.2006, 23:39.

      Kommentar


      • #4
        Mmhhh.... Register_globals? Beim einen on, beim anderen off?

        Kommentar


        • #5
          nein aber selbst wenn übergebe ich dem script keine werte über die url, von daher wäre es onehin hinfällig

          ich kann es mir auch nicht erklären o.O alles andere sieht genauso aus wie lokal, ich zeichen ja noch linien ein und schreibe text auf das bild. nur diese funktion ... tut nichts. ich hab auch schon die rechnungen für die X und Y werte ausgerechnet anzeigen lassen ... keine fehler zu erkennen.

          PS: bei einem zweiten, ähnlichen script habe ich genau das gleiche problem. allerdings ist das script sehr ähnlich von daher ist es wsl ein und das selbe problem

          Kommentar


          • #6
            Was sagen die Testausgaben von jeder beteiligten Variablen?

            Kommentar


            • #7
              habs -_-
              also prinzipiell versteh ich meinen fehler ja, allerdings muss mir dann doch mal wer erklären warum das lokal funktioniert hat:

              das problem war das bei mir der y1 wert größer war als der y2 wert. wenn ich die werte umdrehe zeigt er die balken gemütlich an.

              wieso geht das aber auf php5 und auf 4 nich? hab ich was verpasst?

              naja trotzdem danke für eure hilfe ich hätts glaub nich rausgefunden ohne jez nochma genau drüberzugehn

              mfg

              Kommentar


              • #8
                User Contributed Notes lesen!

                As of PHP 5, it seems to be no longer necessary to draw the rectangle from the upper left to the lower right corner. This led me into big trouble porting a script developed under PHP 5 to PHP 4.

                Kommentar


                • #9
                  damnit -_-

                  Kommentar

                  Lädt...
                  X