Serverabsturz dur fehlerhaften Aufruf ?

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

  • Serverabsturz dur fehlerhaften Aufruf ?

    Hallo @ll,


    ich habe hier ein richtiges problem...

    ich habe hier ein script das eine grafik mit einem watermark versieht... und den RICHTIGEN Pfad zum originalbild verbirgt.

    D.h. die benutzer können nur über einen aufruf der grafik zb. http://www.domain.de/image/showimage...g=meinbild.jpg


    Siehe Auszug:

    PHP-Code:
                           <?php
    // This script will show image with logo on it
    // Supported are PNGs,GIFs,JPEGs
    // ------------------------------------------------------
    // call it: [url]http://www.domain.com/showimage.php?img=[/url]<name>
    // where <name> is name of image...
    // example:
    // [url]http://www.domain.com/showimage.php?img=001.jpg[/url]
    // ------------------------------------------------------
    // You have to set parameters here:
    // ------------------------------------------------------
    $image_quality="70";
    // quality of JPEG conpression [0-100]
    // ------------------------------------------------------
    $image_path="./originalbild/";
    // path to images
    // examples:
    // $image_path="./images/";
    // $image_path="../../images/";
    // ------------------------------------------------------
    $logo_path="copyright.png";
    // path and name of the LOGO image (PNG,GIF,JPEG)
    // examples:
    // $logo_path="./logos/img_logo.png";
    // $logo_path="../../logos/img_logo.png"
    // ------------------------------------------------------
    $logo_pos_x="center";
    // left, right, center
    $logo_pos_y="bottom";
    // top, middle, bottom
    // ------------------------------------------------------
    $error_not_found="File doesn't exists";
    // where image is not found, show this error text
    $error_not_supported="This image type isn't supported";
    // where image is not supported, show this error text
    $error_bg_color=array(255,255,255);
    // image background color in RGB - (RED,GREEN,BLUE)
    $error_text_color=array(255,0,0);
    // text color in RGB - (RED,GREEN,BLUE)
    // ------------------------------------------------------
    //  YOU DON'T HAVE TO EDIT CODE BELOW THIS LINE
    // ------------------------------------------------------
    // SCRIPT written by Ladislav Soukup, [root@soundboss.cz]
    // ------------------------------------------------------
    function NewImage($width,$height,$text=""){
       global 
    $error_bg_color,$error_text_color;
       if (
    function_exists("imagecreatetruecolor")){
          if (!@
    $img=imagecreatetruecolor($width,$height)){
             
    $img=imagecreate($width,$height);
          }
       } else {
          
    $img=imagecreate($width,$height);
       }
       
    $imgbgcolor=ImageColorAllocate($img,$error_bg_color[0],$error_bg_color[1],$error_bg_color[2]);
       
    $imgtextcolor=ImageColorAllocate($img,$error_text_color[0],$error_text_color[1],$error_text_color[2]);
       
    imagefilledrectangle($img,0,0,$width,$height,$imgbgcolor);
       
    imagestring($img,5,10,10,$text,$imgtextcolor);
       return(
    $img);
    }
    Header("Content-type: image/jpeg");
    $exp=GMDate("D, d M Y H:i:s",time()+999);
    Header("Expires: $exp GMT");
    $rep_from=array("./","../");
    $rep_to=array("","",);
    $_GET["img"]=str_replace($rep_from,$rep_to,$_GET["img"]);
    $file=$image_path $_GET["img"];
    if (
    file_exists($file)){
       
    $info=getimagesize($file);
       
    $width=$info[0];
       
    $height=$info[1];
       if (
    $info[2]==1){
          
    $img=@imagecreatefromgif($file);
       } else if (
    $info[2]==2){
          
    $img=@imagecreatefromjpeg($file);
       } else if (
    $info[2]==3){
          
    $img=@imagecreatefrompng($file);
       } else {
          
    $width=640;
          
    $height=480;
          
    $img=NewImage($width,$height,$error_not_supported);
       }
    } else {
       
    $width=640;
       
    $height=480;
       
    $img=NewImage($width,$height,$error_not_found);
    }
    if (
    file_exists($logo_path)){
       
    $info=getimagesize($logo_path);
       
    $logo_width=$info[0];
       
    $logo_height=$info[1];
       if (
    $info[2]==1){
          
    $img_logo=imagecreatefromgif($logo_path);
       } else if (
    $info[2]==2){
          
    $img_logo=imagecreatefromjpeg($logo_path);
       } else if (
    $info[2]==3){
          
    $img_logo=imagecreatefrompng($logo_path);
       } else {
          
    $logo_width=120;
          
    $logo_height=20;
          
    $img=NewImage($logo_width,$logo_height,$error_not_supported);
       }
       
    // positioning - X
       
    if ($logo_pos_x=="left"){
          
    $dst_x=10;
       } else if (
    $logo_pos_x=="center"){
          
    $dst_x=round(($width-$logo_width)/2);
       } else if (
    $logo_pos_x=="right"){
          
    $dst_x=$width-10-$logo_width;
       } else {
          
    $dst_x=round(($width-$logo_width)/2);
       }
       
    // positioning - Y
       
    if ($logo_pos_y=="top"){
          
    $dst_y=5;
       } else if (
    $logo_pos_y=="middle"){
          
    $dst_y=round(($height-($logo_height/2))/2);
       } else if (
    $logo_pos_y=="bottom"){
          
    $dst_y=$height-5-$logo_height;
       } else {
          
    $dst_y=round(($height-($logo_height/2))/2);
       }
       
    imagecopy($img,$img_logo,$dst_x,$dst_y,0,0,$logo_width,$logo_height);
    }
    ImageJpeg($img,"",$image_quality);
    ?>

    Jetzt ist mein Problem das mir andauern der Server abschmiert und hängen bleibt.

    hat da jemand eine idee von euch ?!

    ich kann leider nichts erkennen wie eine fehlerhafte schleife ?!



    gruss dennis
    Zuletzt geändert von derdemo; 11.05.2005, 18:22.

  • #2
    also wenn das 1 zu 1 aus deinem Skript kopiert ist, sollte dir schon was anhand des highlightnings auffallen!

    kleiner Tip:

    image_path="./originalbild/

    da fehlt dann auch was!

    gruss

    Kommentar


    • #3
      EDIT:

      hi,

      sorry beim ändern was in der zeile gelöscht


      natürlich ist die zeile im originalscript

      $image_path="./originalbild/


      so richtig....

      $image_path="./originalbild/";


      sonst keiner eine Idee ?!

      kann es sein das dieses Script mir die proleme macht ?!

      gruss dennis

      Zuletzt geändert von derdemo; 11.05.2005, 15:43.

      Kommentar


      • #4
        Script frisst memory ! ServerCrash...

        Hallo,

        wie kann ich nicht mehr gebruchte Prozesse beenden, da es mir so scheint das mir ein php script den speicher frisst, wenn zu viele verbindungen zum server existieren. denn immer bei memory +- 4000 KB ist feierabend....


        mein script habe ich schon gepostet...

        fällt euch da was ein ?1


        gruss dennis

        Kommentar


        • #5
          mein script habe ich schon gepostet...
          Wo?

          ne ist gut, hab's schon gefunden, aber editiere mal die fehlerhafte Zeile wo das "; fehlt, da ansonsten der Code wegen des fehlerhaften highlightings schlecht lesbar ist.

          P.S.
          Doppelte Post's sind ned so gern gesehen hier.
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Re: Script frisst memory ! ServerCrash...

            @derdemo: unterlasse zukünftig das doppelposten!

            *zusammenführ*
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              wieso willst du prozesse beenden?
              php-scripte werden entweder vom apache in einem eigenen prozess oder als modul apache-intern ausgefuehrt und zwar nur dann und solange ein aufruf dauert. sobald die verarbeitung abgeschlossen ist und die daten beim user gelandet sind wird der speicher auch wieder freigegeben.
              ich vermute daher ein anderes problem oder etwas was man von hier aus kaum loesen kann.
              1101100 1101001 1100110 1100101 1101001 1110011 1100001 1100010 1101001 1110100 1100011 1101000

              /(bb|[^b]{2})/

              Kommentar


              • #8
                @loci

                hab zu meiner blutigen Anfängerzeit auch mal irgendeinen Schrott gecoded der weder durch das Schließen des Browser noch durch die max_execution_time von 30 Sekunden beendet wurde, was den Server schließlich vollends blockiert hat.

                Nach 10 Minuten hat das Telefon geklingelt und der Provider hat sich freundlich bedankt (noch einmal -> *kick*)
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  Schau halt in deine Logs?
                  Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                  var_dump(), print_r(), debug_backtrace und echo.
                  Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                  Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                  Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                  Kommentar

                  Lädt...
                  X