Problem mit Thumbnail Script.

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

  • Problem mit Thumbnail Script.

    Hallo,
    ich habe ein Tumbnail Script was funktoniert, nur es gibt ein Hacken:
    Wenn jetzt z.B. die bilder.php, 40 Bilder läd und es sind erst z.B. 20 geladen und man klickt dann schon auf ein Bild (das Popup öffnet sich) hört das Script auf die weiteren 20 Bilder zuladen... Kann mir da einer helfen? Vielleicht kann da sirgendwie mit einem Timeout zusammen hängen, hab aber leider keine Idee woran das genau liegt...

    Hier ist das Script:

    PHP-Code:
    <?php
    include("admin/dbconnect.php");
    include(
    "admin/config.php");      

    $result mysql_query("SELECT id, foto, art FROM $media WHERE
    kategorie = 'walls2004' ORDER BY id desc"
    ) or die(mysql_error());

    function 
    thumb_popup($file$save$width$height$prop TRUE) {



        if(!
    function_exists("show_popup")) {
            function 
    show_popup($original$thumb) {
                
    $infos = @getimagesize($original);
                
    $w $infos[0] + 40;
                
    $h $infos[1] + 40;
                
    $infos_th = @getimagesize($thumb);
                
    $link  "<a href=\"javascript:void(0);\" 
    onclick=\"window.open('"
    .$original."', 'window".md5(microtime())."',
    'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0,
    resizable=1, width="
    .$w.", height=".$h.", left = 20, top = 20');\">";
                
    $link .= "<img src=\"".$thumb."\" border=\"0\" ".$infos_th[3].
    style=\"filter:alpha(opacity=50)\" onMouseOver=\"nereidFade(this,100,100,100);\" 
    onMouseOut=\"nereidFade(this,50,100,100);\"></a>\n"
    ;
                return 
    $link;
            }
        }
        if(!
    file_exists($save) || @filemtime($thumb)< @filemtime($file)) {
            @
    unlink($save);
            
    $infos = @getimagesize($file);
            if(
    $prop) {
                
    // Proportionen erhalten
                
    $iWidth $infos[0];
                
    $iHeight $infos[1];
                
    $iRatioW $width $iWidth;
                
    $iRatioH $height $iHeight;
                if (
    $iRatioW $iRatioH)
                {
                
    $iNewW $iWidth $iRatioW;
                
    $iNewH $iHeight $iRatioW;
                } else {
                
    $iNewW $iWidth $iRatioH;
                
    $iNewH $iHeight $iRatioH;
                } 
    // end if
            
    } else {
                
    // Strecken und Stauchen auf Größe
                
    $iNewW $width;
                
    $iNewH $height;
            }

            if(
    $infos[2] == 2) {
                
    // Bild ist vom Typ jpg
                
    $imgA imagecreatefromjpeg($file);
                
    $imgB imagecreatetruecolor($iNewW,$iNewH);
                
    imagecopyresampled($imgB$imgA0000$iNewW,
                                   
    $iNewH$infos[0], $infos[1]);
                
    imagejpeg($imgB$save);
                return 
    show_popup($file$save);
            } elseif(
    $infos[2] == 3) {
                
    // Bild ist vom Typ png
                
    $imgA imagecreatefrompng($file);
                
    $imgB imagecreatetruecolor($iNewW$iNewH);
                
    imagecopyresampled($imgB$imgA0000$iNewW,
                                   
    $iNewH$infos[0], $infos[1]);
                
    imagepng($imgB$save);
                return 
    show_popup($file$save);
            } else {
                return 
    FALSE;
            }
        } else {
            return 
    show_popup($file$save);
        }
    }
    while(
    $row mysql_fetch_array($result))
    {


    // Quelldatei

    $from "img/fotos/walls2004/".$row['foto'];

    $to2 "img/fotos/walls2004/th/".$row['foto'];


    // Funktionsaufruf ohne Einbehaltung der Proportionen
    switch($row['art']) {
    case 
    "klein":
        echo 
    thumb_popup($from$to210050FALSE);
        
    $i++;           // setzt $i bei jedem foto um 1 höher
        
    break;
    case 
    "mittel":
        echo 
    thumb_popup($from$to220450FALSE);
        
    $i+=2;           // setzt $i bei jedem foto um 1 höher
        
    break;
    case 
    "gross":
        echo 
    thumb_popup($from$to241250FALSE);
        
    $i+=4;           // setzt $i bei jedem foto um 4 höher
        
    break;
    }

    if (
    $i>3
    {
    echo 
    "<br>"
    $i=0;         
    }
    }
    ?>

  • #2
    es sind erst z.B. 20 geladen und man klickt dann schon auf ein Bild (das Popup öffnet sich) hört das Script auf die weiteren 20 Bilder zuladen... Kann mir da einer helfen?
    ein arzt. oder du versuchst das unkontrolierte klicken selbst in den griff zu bekommen. am besten du legst deine hände erst gar nicht auf die maus, während die seite lädt.

    aber im ernst - evtl. helfen dir die output buffering funktionen weiter.

    Kommentar


    • #3
      kannst du mir evtl. genauer erläutern was das ist?

      Kommentar


      • #4

        Kommentar


        • #5
          Hab mir das hier mal anschaut:
          http://www.dynamic-webpages.de/php/ref.outcontrol.php

          Weis aber nicht wie ich das jetzt genau in dem Fall einsetzten kann. Gut wäre wenn man erzwingen könnte das man erst ein Popup öffnen kann wenn die while-Schleife kompl. ausgelesen ist bzw. wenn alle Bilder geladen sind.

          Kommentar


          • #6
            das ist der browser, der einen click auch gleichzeitig als stop-signal wertet.

            daher sehe ich das auch nicht als php-problem an.

            *MOVE* 2 OT
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X