Avatar billede elskermad.dk Nybegynder
27. september 2005 - 15:39 Der er 2 kommentarer og
1 løsning

rewrite fører kun nogengange paramenter med

hej eksperter!

jeg har et problem der irriterer mig en del - hvert fald brugt nogen timer på det nu :S

jeg har en rewriterule i en .htaccess som gør at jeg kan strukturere mit website lidt kønnere:

RewriteRule ^(image|thumb)/([0-9]+)/([^&?/])+\.(gif|jpg|jpeg|png)$ /image.php?id=$2&mode=$1

Den skal så i image.php hente indholdet fra billedet navngivet med et id og udskrive det til browseren...
image.php ser sådan her ud:

<?

include("config.php");

$type     = hentimagetype($_GET['id']); // finder hvilken mappe billedet er gemt i ud fra id'et (mysql-tabel)
$url    = hentimageurl($_GET['id']); // finder navnet på filen som skal bruges (mysql-tabel)

$mappe     = ($_GET['mode'] == "image")? "grafik/" . $type . "/" . $sys['shopid'] : "grafik/" . $type . "/thumb/" . $sys['shopid'];

if ($image = file_get_contents($mappe . "/" . $url)) {
    echo $image;
}
else {
    $im     = imagecreate (150, 150);
    $gra     = imagecolorallocate ($im,122,122,122);
    $white     = imagecolorallocate ($im,255,255,255);
    imagestring ($im, 4, 15, 20, "Fejl i billedet", $white);
    imagepng($im);
}

?>

Hvis man henter billedet som en thumbnail (/thumb/43/skrald.jpg) virker det fint og man ser billedet korrekt, men hvis man i stedet vil se det i stort (/image/43/skrald.jpg) så er det som om at min rewrite ikke fører id'et med over i image.php, og den kan ikke finde filen:

Følgende fejl fremkommer:
Warning: file_get_contents(grafik//thumb/1/): failed to open stream: No such file or directory in e:\wwwroot\blaaah\image.php on line 10

så den har altså ikke kunne hente typen fra funktionen hentimagetype, som den ellers fint kan når det er en thumbnail der skal vises...

jeg kan virkelig ikke gennemskue hvad der er galt med min rewrite eller mit php-script?

På forhånd mange tak :)
Avatar billede coderdk Praktikant
27. september 2005 - 15:56 #1
Jeg kan ikke lgie se det...

$mappe    = ($_GET['mode'] == "image")? "grafik/" . $type . "/" . $sys['shopid'] : "grafik/" . $type . "/thumb/" . $sys['shopid'];

Kan dog skrives som:

$mappe    =  "grafik/" . $type . ( $_GET['mode'] == "image" ?  "/image/" : "/thumb/" ) . $sys['shopid'];

Virker det så?
Avatar billede elskermad.dk Nybegynder
27. september 2005 - 16:22 #2
nej det har desværre ingen indvirkning :S
Avatar billede elskermad.dk Nybegynder
20. oktober 2005 - 14:11 #3
øv bøv
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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