Avatar billede nina84 Nybegynder
14. april 2009 - 19:35 Der er 3 kommentarer

Hjælp til vandmærke funktion der fejler

Kære Eksperter,

Jeg har fornyligt flyttet mit site til en ny server hos Gigahost.

I den anledning har jeg opdaget et problem med et af mine scripts; nærmere et script der vandmærke mine billeder i højre hjørne.

Normalt kalder jeg scriptet således:
<img src="watermark.php?album=test&pid=1234.jpg" alt="">, og billedet plejer så at blive returneret.

Nu bliver der dog intet billede returneret, og følger jeg selv samme billede url får jeg flg. fejl:



Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.



$watermarkimage="images/whocard_watermark.png";
   
$image = "photos/".$_GET['album']."/".$_GET['pid'];
$watermark = $watermarkimage;

$im = imagecreatefrompng($watermark);
$ext = substr($image, -3);
   
if (strtolower($ext) == "gif") {
    if (!$im2 = imagecreatefromgif($image)) {
        echo "Error opening $image!"; exit;
    }
} else if(strtolower($ext) == "jpg") {
    if (!$im2 = imagecreatefromjpeg($image)) {
        echo "Error opening $image!"; exit;
    }
} else if(strtolower($ext) == "png") {
    if (!$im2 = imagecreatefrompng($image)) {
        echo "Error opening $image!"; exit;
    }
} else {
    die;
}
   
$bwidth  = imagesx($im2);
$bheight = imagesy($im2);
$lwidth  = imagesx($im);
$lheight = imagesy($im);
$src_x = $bwidth - ($lwidth + 5);
$src_y = $bheight - ($lheight + 5);
   
imagecopy($im2,$im,$src_x,$src_y,0,0,$lwidth,$lheight);
       
$last_modified = gmdate('D, d M Y H:i:s T', filemtime ($image));
   
header("Last-Modified: $last_modified");
header("Content-Type: image/jpeg");
header("filename='12345.jpg'");
header("Content-Disposition: attachment; filename=\"".$_GET['pid']."\";");
imagejpeg($im2,NULL,100);
imagedestroy($im);
imagedestroy($im2);


Håber i har nogle ideer, fordi jeg er selv helt blank :)
Avatar billede jakobdo Ekspert
14. april 2009 - 21:18 #1
Prøv at udkommenter:

header("Last-Modified: $last_modified");
header("Content-Type: image/jpeg");
header("filename='12345.jpg'");
header("Content-Disposition: attachment; filename=\"".$_GET['pid']."\";");

og tilføje denne linje:
header('Content-Type: text/html;');

Og se om du får nogle brugbare fejl.
Avatar billede nina84 Nybegynder
14. april 2009 - 23:20 #2
Hej Jacob,

Det fik det til at virke.. mærkelig fejl!

Tak for hjælpen, smider du et svar :)
Avatar billede jakobdo Ekspert
15. april 2009 - 08:33 #3
Svar!
Kan du fortælle hvad fejlen var, så andre måske kan bruge det en anden gang ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester