Avatar billede powertools Nybegynder
03. marts 2006 - 13:49 Der er 36 kommentarer og
2 løsninger

Billedevisningsproblem på Surftowns server med SAFE_MODE on

Hej Folkens. jeg har en lille webshop hostet hos Surftown, og deres servere kører med SAFE_MODE on. Min shop har tidligere ligget hos Webhosting hvor billedevisningen fungerede fint, men hos surftown kan jeg ikke tilføje nye billeder til mine produkter. Det skyldes efter sigende at surftown kører med SAFE-MODE on. Jeg uploader billeder via en brugerinterface som simpelt spørger om hvor billedet ligger på computeren og derefter henter det og tilføjer det til det aktuelle produkt. Der kommer ikke en decideret fejlmeddelelse, når jeg uploader et billede, men billedet vises simpelthen ikke efter det er uploaded. Jeg vil sætte stor pris på en konkret ændring af nedenstående kode, der udgør selve billedeuploadingen, som jeg kan bruge med det samme, men forklaring til hvordan jeg kan løse problemet er selvfølgelig også velkommen. 200 point til den dygtige der løser problemet for mig!

Koden der skal ændres ser således ud:

<b>Billedstyring</b><br>
<br>

<?
// --------------------------------------------------------------//
if($submit)
{

if($strFile)
    {

// Difinere ny maks størrelse på thumbnailen
    $IMG_TN_WIDTH = 80;
    $IMG_TN_HEIGHT = 80;

// Difinere ny maks størrelse på stort billed
    $IMG_BIG_WIDTH = 180;
    $IMG_BIG_HEIGHT = 180;

// og fortæller hvor det skal uploades til
    //$IMG_ROOT = "../shop/pics/$product_id";
    $IMG_ROOT = ".";

    if(!file_exists("$IMG_ROOT"))
        {
        mkdir("$IMG_ROOT",0777);
        chmod ("$IMG_ROOT",0777);
        }

// Fjerner alt før extensionen
    $fileName = explode(".", $_FILES['strFile']['name']);

// Hvis der skulle komme nogle errors, kan man enable linjen under, og undgå at se dem
// error_reporting(53);

// Accepteret filtyper
    $acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');

// Tjekker om den valgte fil er blandt accepteret typer
    if(!in_array($_FILES['strFile']['type'], $acceptedTypes) OR trim($_FILES['strFile']['tmp_name']) == "" OR trim($_FILES['strFile']['tmp_name']) =="none")
    {
    echo "Billed er ikke supportet. Tjek at det er jpeg format";
    }
    else
    {

// De orginale størrelser på filen hentes
    $img_orig_size = getimagesize($_FILES['strFile']['tmp_name']);
    $img_orig_width = $img_orig_size[0];
    $img_orig_height = $img_orig_size[1];

// undersøger om det er main eller extra
// og tildeler filnavn derefter.
   
    if($pic_type == "main")
        {
        //$image_stored = "$product_id.jpg";
        $image_stored = "1.jpg";
        }
        else
        {
        if(file_exists("$IMG_ROOT/2.jpg"))
            {
            $i = 2;
            while(file_exists("$IMG_ROOT/$i.jpg"))
                {
                $image_stored = "$i.jpg";
                $i++;
                }
            }
            else
            {
            $image_stored = "2.jpg";
            echo "filen findes ikke - billednavn: $image_stored<br>";
            }   
        }

// Gemmer billede med nye størrelser som stort

    $img_original = ImageCreateFromJpeg($_FILES['strFile']['tmp_name']);   

// Tjekker om billede er mindre en max størrelserne

    if(($img_orig_width <= $IMG_BIG_WIDTH) AND ($img_orig_height <= $IMG_BIG_HEIGHT))
    {
    echo "gemt - billed ikke resized<br>";
    ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
    }
    else
    {
    echo "gemt - fuld størrelse<br>";
    // Gemmer original billed i fuldstørrelse
    ImageJPEG($img_original, "$IMG_ROOT/big_$image_stored");

    // for at holde propertionerne fra det orginale billed
    // regnes en ratio ud
    $mlt_w = $IMG_BIG_WIDTH / $img_orig_width;
    $mlt_h = $IMG_BIG_HEIGHT / $img_orig_height;
    $mlt = $mlt_w < $mlt_h ? $mlt_w:$mlt_h;

    // Udregner nye dimentioner
    $img_new_width = round($img_orig_width * $mlt);
    $img_new_height = round($img_orig_height * $mlt);

    // opretter et tomt billede
    $img_resized = imagecreatetruecolor($img_new_width, $img_new_height);

    // indsætter resized billede i det tomme
    // De første 2 parameter er det tomme billede og billed data der skal resizes
    // De næste 4 parameter er 0, men kan bruges til displace
    // De sidste 4 paramter er den nye højre og bredde og den orginale højre og bredde
    imagecopyresized($img_resized, ImageCreateFromJpeg($_FILES['strFile']['tmp_name']), 0 , 0 , 0 , 0, $img_new_width, $img_new_height, $img_orig_width, $img_orig_height);

    // Filnavnet bliver id.jpg
    echo "gemt - resized<br>";
    $img_name = $image_stored;
    Imagejpeg($img_resized, "$IMG_ROOT/$img_name");

    // Sletter midlertidig data
    ImageDestroy($img_resized);
    }

// Skriver information på skræmen
    echo "<b>Billed</b><br>
    Orginalt billednavn: {$_FILES['strFile']['name']}<br>
    Nyt billednavn: $image_stored<br>
    Width: $img_orig_width<br>
    Height: $img_orig_height<br>
    <a target='_blank' href='$IMG_ROOT/$image_stored'>Se billed</a><br><br>";

// Tjekker om billede er mindre en max størrelserne THUNBNAIL

    if($img_orig_width <= $IMG_TN_WIDTH AND $img_orig_height <= $IMG_TN_HEIGHT)
    {
    echo "Ingen resize nødvendig";
    ImageJPEG($img_original, "$IMG_ROOT/tn_$image_stored");
    }
    else
    {

// for at holde propertionerne fra det orginale billed
// regnes en ratio ud
    $mlt_w = $IMG_TN_WIDTH / $img_orig_width;
    $mlt_h = $IMG_TN_HEIGHT / $img_orig_height;
    $mlt = $mlt_w < $mlt_h ? $mlt_w:$mlt_h;

// Udregner nye dimentioner
    $img_new_width = round($img_orig_width * $mlt);
    $img_new_height = round($img_orig_height * $mlt);

// opretter et tomt billede
    $img_resized = imagecreatetruecolor($img_new_width, $img_new_height);

// indsætter resized billede i det tomme
// De første 2 parameter er det tomme billede og billed data der skal resizes
// De næste 4 parameter er 0, men kan bruges til displace
// De sidste 4 paramter er den nye højre og bredde og den orginale højre og bredde
    imagecopyresized($img_resized, ImageCreateFromJpeg($_FILES['strFile']['tmp_name']), 0 , 0 , 0 , 0, $img_new_width, $img_new_height, $img_orig_width, $img_orig_height);

// Filnavnet bliver tn_id.jpg
    $img_name = "tn_$image_stored";
    Imagejpeg($img_resized, "$IMG_ROOT/$img_name");

// henter filstørrelsen
    $mg_new_size = filesize("$IMG_ROOT/$img_name");

// Skriver information på skræmen
    echo "<b>Thumbnail</b><br>
    Max størrelse for thumbnails: $IMG_TN_WIDTH x $IMG_TN_HEIGHT<br>
    Width: $img_new_width<br>
    Height: $img_new_height<br>
    Filstørrelse: $mg_new_size (in bytes)<br>
    <img src='$IMG_ROOT/$img_name'><br><br>";
    }
    }

// Chmoder billederne

chmod ("$IMG_ROOT/$image_stored",0777);
chmod ("$IMG_ROOT/big_$image_stored",0777);
chmod ("$IMG_ROOT/$img_name",0777);
chmod ("$IMG_ROOT",0777);


// Afslutter if billed
}

}

// --------------------------------------------------------------//

?>

<form action="product_picture.php" method="post" enctype="multipart/form-data">

Hovedbilled (Jpeg):<br>
<input type="file" name="strFile" value="" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="main">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<br>

<form action="product_picture.php" method="post" enctype="multipart/form-data">

Ekstra billed (Jpeg):<br>
<input type="file" name="strFile" value="" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="extra">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>
Avatar billede coderdk Praktikant
03. marts 2006 - 14:13 #1
Du er nødt til at bruge is_uploaded_file for at finde ud af om der er uploadet en fil. Hvis der er det, skal du bruge move_uploaded_file og flytte den et andet sted hen, før du kan tilgå den med getimagesize() osv.
Avatar billede drbean Nybegynder
03. marts 2006 - 14:49 #2
Jeg havde samme problem hos surftown. Brug evt ftp istedet for:
http://dk.php.net/ftp

Det virkede for mig.
Avatar billede stingbat Nybegynder
03. marts 2006 - 14:55 #3
Har du sat permissions op på upload-mappen på serveren (altså selve mappen)? Du kan ikke selv ændre det via php (inden upload), grundet safemode. Efter hvad jeg husker, benyttes der 2 forskellige brugere på serveren, så der skal være sat 0777 på mappen (f.eks. /images/)
Avatar billede rasmus-madsen Nybegynder
03. marts 2006 - 15:10 #4
havde samme problem..

Ændre fra.
imagejpeg($dst_img, $dest_file, $CONFIG['jpeg_qual']);

Til.
$fh=fopen($dest_file,'w');
fclose($fh);
imagejpeg($dst_img, $dest_file, $CONFIG['jpeg_qual']);
Avatar billede powertools Nybegynder
03. marts 2006 - 16:46 #5
Hej Folkens. tak for jeres svar indtil videre.
til stingbat: jeg har sat alle filer og mapper relateret til billeder til 777 via ftp'en. kan man ændre permissions andre steder?
Coderdk: har du mulighed for at skrive de linjer kode som du mener der mangler i ovenstående script? hvis det kommer til at virke er der point til dig.
Rasmus-madsen: jeg synes ikke jeg kan finde den linje kode som du mener der skal ændres i ovenstående script?
Avatar billede stingbat Nybegynder
03. marts 2006 - 17:32 #6
Hvis du har ændret permissions, så burde det også gerne virke. Har selv haft fået det til at virke på surftown på et tidspunkt, så kan ikke lige huske 100% om der var andet der lige skulle gøres :)
Men rod-billed-mappen havde du ligeledes sat permissions på?!

Blev mappen forresten lavet via FTP eller med dit script? (lagde lige mærke til at du havde det med i scriptet)
Avatar billede stingbat Nybegynder
03. marts 2006 - 17:34 #7
Hmm... når den forresten forbi din if ($strFile) ??
Har du slået register_globals til?

prøv at lave en:
print_r($_FILES['strFile']);

og se hvad den indeholder. Blot lige hvis der også er fejl.
Avatar billede coderdk Praktikant
03. marts 2006 - 17:35 #8
Tror nok at jeg har fået rettet det - Det var forvirrende at se på ;)

<b>Billedstyring</b><br>
<br>

<?

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
        $srcim = imagecreatefromjpeg( $filename );
        $ow = imagesx( $srcim );
        $oh = imagesy( $srcim );
        $wscale = $maxw / $ow;
        $hscale = $maxh / $oh;
        $scale = ( $hscale < $wscale ? $hscale : $wscale );
        $nw = round( $ow * $scale, 0 );
        $nh = round( $oh * $scale, 0 );
        $dstim = imagecreatetruecolor( $nw, $nh );
        imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
        imagejpeg( $dstim, $newfilename );
        imagedestroy( $dstim );
        imagedestroy( $srcim );
    }

// --------------------------------------------------------------//
    if($submit)
    {

        if(is_uploaded_file( $_FILES['strFile']['tmp_name']))
        {
            // Difinere ny maks størrelse på thumbnailen
            $IMG_TN_WIDTH = 80;
            $IMG_TN_HEIGHT = 80;

            // Difinere ny maks størrelse på stort billed
            $IMG_BIG_WIDTH = 180;
            $IMG_BIG_HEIGHT = 180;

            // og fortæller hvor det skal uploades til
            //$IMG_ROOT = "../shop/pics/$product_id";
            $IMG_ROOT = ".";

            if(!file_exists("$IMG_ROOT"))
            {
                mkdir("$IMG_ROOT",0777);
                chmod ("$IMG_ROOT",0777);
            }

            // Fjerner alt før extensionen
            $fileName = explode(".", $_FILES['strFile']['name']);

            // Hvis der skulle komme nogle errors, kan man enable linjen under, og undgå at se dem
            // error_reporting(53);
           
            // Accepteret filtyper
            $acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');

            // Tjekker om den valgte fil er blandt accepteret typer
            if(!in_array($_FILES['strFile']['type'], $acceptedTypes) OR trim($_FILES['strFile']['tmp_name']) == "" OR trim($_FILES['strFile']['tmp_name']) =="none")
            {
                echo "Billed er ikke supportet. Tjek at det er jpeg format";
            }
            else
            {
                // undersøger om det er main eller extra
                // og tildeler filnavn derefter.

                if($pic_type == "main")
                {
                    //$image_stored = "$product_id.jpg";
                    $image_stored = "1.jpg";
                }
                else
                {
                    if(file_exists("$IMG_ROOT/2.jpg"))
                    {
                        $i = 2;
                        while(file_exists("$IMG_ROOT/$i.jpg"))
                        {
                            $image_stored = "$i.jpg";
                            $i++;
                        }
                    }
                    else
                    {
                        $image_stored = "2.jpg";
                        echo "filen findes ikke - billednavn: $image_stored<br>";
                    }
                }

                // Flyt fil så vi kan arbejde med den - SAFE_MODE fix
                $tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');
                if ( move_uploaded_file( $_FILES['strFile']['tmp_name'], $tmpfile ) )
                {
                    // De orginale størrelser på filen hentes
                    $img_orig_size = getimagesize($tmpfile);
                    $img_orig_width = $img_orig_size[0];
                    $img_orig_height = $img_orig_size[1];

                    // Gemmer billede med nye størrelser som stort
                    $img_original = ImageCreateFromJpeg($tmpfile);

                    // Tjekker om billede er mindre en max størrelserne
                    if(($img_orig_width <= $IMG_BIG_WIDTH) AND ($img_orig_height <= $IMG_BIG_HEIGHT))
                    {
                        echo "gemt - billed ikke resized<br>";
                        ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
                    }
                    else
                    {
                        echo "gemt - fuld størrelse<br>";
                        // Gemmer original billed i fuldstørrelse
                        ImageJPEG($img_original, "$IMG_ROOT/big_$image_stored");

                        // Filnavnet bliver id.jpg
                        echo "gemt - resized<br>";
                        $img_name = $image_stored;
                        Imagejpeg($img_resized, "$IMG_ROOT/$img_name");
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                    }

                    // Skriver information på skræmen
                    echo "<b>Billed</b><br>
                        Orginalt billednavn: {$_FILES['strFile']['name']}<br>
                        Nyt billednavn: $image_stored<br>
                        Width: $img_orig_width<br>
                        Height: $img_orig_height<br>
                        <a target='_blank' href='$IMG_ROOT/$image_stored'>Se billed</a><br><br>";

                    // Tjekker om billede er mindre en max størrelserne THUNBNAIL
                    if($img_orig_width <= $IMG_TN_WIDTH AND $img_orig_height <= $IMG_TN_HEIGHT)
                    {
                        echo "Ingen resize nødvendig";
                        ImageJPEG($img_original, "$IMG_ROOT/tn_$image_stored");
                    }
                    else
                    {
                        // Filnavnet bliver tn_id.jpg
                        $img_name = "tn_$image_stored";
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);

                        // henter filstørrelsen
                        $mg_new_size = filesize("$IMG_ROOT/$img_name");

                        // Skriver information på skræmen
                        echo "<b>Thumbnail</b><br>
                            Max størrelse for thumbnails: $IMG_TN_WIDTH x $IMG_TN_HEIGHT<br>
                            Width: $img_new_width<br>
                            Height: $img_new_height<br>
                            Filstørrelse: $mg_new_size (in bytes)<br>
                            <img src='$IMG_ROOT/$img_name'><br><br>";
                    }
                }

                // Chmoder billederne

                chmod ("$IMG_ROOT/$image_stored",0777);
                chmod ("$IMG_ROOT/big_$image_stored",0777);
                chmod ("$IMG_ROOT/$img_name",0777);
                chmod ("$IMG_ROOT",0777);

                // Slet temp fil
                unlink( $tmpfile );
               
                imagedestroy( $img_original );
            }
        }
    }

// --------------------------------------------------------------//

?>

<form action="product_picture.php" method="post" enctype="multipart/form-data">

Hovedbilled (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="main">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<br>

<form action="product_picture.php" method="post" enctype="multipart/form-data">

Ekstra billed (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="extra">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>
Avatar billede coderdk Praktikant
03. marts 2006 - 17:37 #9
Ja

if($submit)

burde være

if(isset( $_POST['submit'] ) )
Avatar billede powertools Nybegynder
03. marts 2006 - 17:48 #10
coderdk: er det script som du skrev klar til indrykning eller skal jeg rette if($submit) til if(isset( $_POST['submit'] ) ) som du har skrevet nedenfor?
Avatar billede rasmus-madsen Nybegynder
03. marts 2006 - 17:52 #11
Problemet er at GB er blevet opdateret..
Derfor skal man åbne billedet for skrivning (w).
Avatar billede coderdk Praktikant
03. marts 2006 - 19:16 #12
Du skal rette den :) Jeg glemte det!
Avatar billede powertools Nybegynder
03. marts 2006 - 19:40 #13
coderdk: jeg har lige forsøgt at lægge dit script ind med rettelser men der kommer en syntax erroe på linje 242. Hvis jeg presser dig kan jeg så få dig til at sende eller vise mig hele scriptet. Altså nøjagtig som den skal se ud fra start til slut?
Avatar billede powertools Nybegynder
03. marts 2006 - 19:54 #14
Coderdk: jeg prøvede at fjerne en { på linje 242 og kom forbi syntax fejlen, men efter billedet er hentet kommer der en 404 fejlside... jeg er desværre ikke selv i stand til at finde fejlen :-/ ser frem til at høre fra dig.
Avatar billede powertools Nybegynder
03. marts 2006 - 20:04 #15
rasmus-madsen: du skrev tidligere: Ændre fra.
imagejpeg($dst_img, $dest_file, $CONFIG['jpeg_qual']);

Til.
$fh=fopen($dest_file,'w');
fclose($fh);
imagejpeg($dst_img, $dest_file, $CONFIG['jpeg_qual']);

men jeg kan ikke finde den linje du henviser til.. hvor er det jeg skal forsøge at lave den ændring du foreslår?
Avatar billede coderdk Praktikant
03. marts 2006 - 20:14 #16
<b>Billedstyring</b><br>
<br>

<?

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
        $srcim = imagecreatefromjpeg( $filename );
        $ow = imagesx( $srcim );
        $oh = imagesy( $srcim );
        $wscale = $maxw / $ow;
        $hscale = $maxh / $oh;
        $scale = ( $hscale < $wscale ? $hscale : $wscale );
        $nw = round( $ow * $scale, 0 );
        $nh = round( $oh * $scale, 0 );
        $dstim = imagecreatetruecolor( $nw, $nh );
        imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
        imagejpeg( $dstim, $newfilename );
        imagedestroy( $dstim );
        imagedestroy( $srcim );
    }

// --------------------------------------------------------------//
    if($_POST['submit'])
    {

        if(is_uploaded_file( $_FILES['strFile']['tmp_name']))
        {
            // Difinere ny maks størrelse på thumbnailen
            $IMG_TN_WIDTH = 80;
            $IMG_TN_HEIGHT = 80;

            // Difinere ny maks størrelse på stort billed
            $IMG_BIG_WIDTH = 180;
            $IMG_BIG_HEIGHT = 180;

            // og fortæller hvor det skal uploades til
            //$IMG_ROOT = "../shop/pics/$product_id";
            $IMG_ROOT = "ud";
            chmod("$IMG_ROOT",0777);

            if(!file_exists("$IMG_ROOT"))
            {
                mkdir("$IMG_ROOT",0777);
                chmod ("$IMG_ROOT",0777);
            }

            // Fjerner alt før extensionen
            $fileName = explode(".", $_FILES['strFile']['name']);

            // Hvis der skulle komme nogle errors, kan man enable linjen under, og undgå at se dem
            // error_reporting(53);

            // Accepteret filtyper
            $acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');

            // Tjekker om den valgte fil er blandt accepteret typer
            if(!in_array($_FILES['strFile']['type'], $acceptedTypes) OR trim($_FILES['strFile']['tmp_name']) == "" OR trim($_FILES['strFile']['tmp_name']) =="none")
            {
                echo "Billed er ikke supportet. Tjek at det er jpeg format";
            }
            else
            {
                // undersøger om det er main eller extra
                // og tildeler filnavn derefter.

                if($pic_type == "main")
                {
                    //$image_stored = "$product_id.jpg";
                    $image_stored = "1.jpg";
                }
                else
                {
                    if(file_exists("$IMG_ROOT/2.jpg"))
                    {
                        $i = 2;
                        while(file_exists("$IMG_ROOT/$i.jpg"))
                        {
                            $image_stored = "$i.jpg";
                            $i++;
                        }
                    }
                    else
                    {
                        $image_stored = "2.jpg";
                        echo "filen findes ikke - billednavn: $image_stored<br>";
                    }
                }

                // Flyt fil så vi kan arbejde med den - SAFE_MODE fix
                $tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');
                if ( move_uploaded_file( $_FILES['strFile']['tmp_name'], $tmpfile ) )
                {
                    // De orginale størrelser på filen hentes
                    $img_orig_size = getimagesize($tmpfile);
                    $img_orig_width = $img_orig_size[0];
                    $img_orig_height = $img_orig_size[1];

                    // Gemmer billede med nye størrelser som stort
                    $img_original = ImageCreateFromJpeg($tmpfile);

                    // Tjekker om billede er mindre en max størrelserne
                    if(($img_orig_width <= $IMG_BIG_WIDTH) AND ($img_orig_height <= $IMG_BIG_HEIGHT))
                    {
                        echo "gemt - billed ikke resized<br>";
                        ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
                        chmod("$IMG_ROOT/$image_stored",0777);
                    }
                    else
                    {
                        echo "gemt - fuld størrelse<br>";
                        // Gemmer original billed i fuldstørrelse
                        ImageJPEG($img_original, "$IMG_ROOT/big_$image_stored");
                        chmod("$IMG_ROOT/big_$image_stored",0777);

                        // Filnavnet bliver id.jpg
                        echo "gemt - resized<br>";
                        $img_name = $image_stored;
                        Imagejpeg($img_resized, "$IMG_ROOT/$img_name");
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                    }

                    // Skriver information på skræmen
                    echo "<b>Billed</b><br>
                        Orginalt billednavn: {$_FILES['strFile']['name']}<br>
                        Nyt billednavn: $image_stored<br>
                        Width: $img_orig_width<br>
                        Height: $img_orig_height<br>
                        <a target='_blank' href='$IMG_ROOT/$image_stored'>Se billed</a><br><br>";

                    // Tjekker om billede er mindre en max størrelserne THUNBNAIL
                    if($img_orig_width <= $IMG_TN_WIDTH AND $img_orig_height <= $IMG_TN_HEIGHT)
                    {
                        echo "Ingen resize nødvendig";
                        ImageJPEG($img_original, "$IMG_ROOT/tn_$image_stored");
                    }
                    else
                    {
                        // Filnavnet bliver tn_id.jpg
                        $img_name = "tn_$image_stored";
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                        chmod("$IMG_ROOT/$img_name",0777);

                        // henter filstørrelsen
                        $mg_new_size = filesize("$IMG_ROOT/$img_name");

                        // Skriver information på skræmen
                        echo "<b>Thumbnail</b><br>
                            Max størrelse for thumbnails: $IMG_TN_WIDTH x $IMG_TN_HEIGHT<br>
                            Width: $img_new_width<br>
                            Height: $img_new_height<br>
                            Filstørrelse: $mg_new_size (in bytes)<br>
                            <img src='$IMG_ROOT/$img_name'><br><br>";
                    }
                }

                // Slet temp fil
                unlink( $tmpfile );

                imagedestroy( $img_original );
            }
        }
    }

// --------------------------------------------------------------//

?>

<form action="<?= $_SERVER['SCRIPT_NAME'] ?>" method="post" enctype="multipart/form-data">

Hovedbilled (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="main">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<br>

<form action="product_picture.php" method="post" enctype="multipart/form-data">

Ekstra billed (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="extra">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>
Avatar billede powertools Nybegynder
03. marts 2006 - 21:36 #17
coderdk: jeg er ked af det men jeg har netop prøvet at kopiere din kode ind i scriptet, og desværre så bliver der ikke vist nogle billeder. I interfacen vælger man hvilket produkt som billedet skal tilføjes til, og når det er gjort og billedet uploaded, sendes man retur til interfacens forside og der er intet billede på produktet.... sig til hvis du har brug for yderligere oplysninger eller lign. håber virkelig det kan komme til at virke ;-)
Avatar billede coderdk Praktikant
03. marts 2006 - 21:38 #18
Tjah, jeg ved ikke lige hvad der kan være galt. Jeg har testet scriptet på min egen server og der virkede det ;P
Avatar billede coderdk Praktikant
03. marts 2006 - 21:39 #19
Prøv at se i den folder som scriptet ligger om der ikke ligger nogle filer, som du har uploadet...
Avatar billede powertools Nybegynder
03. marts 2006 - 21:43 #20
meget mystisk...efter uploading af billede så hoppe den tilbage til index siden for interfacen...
Avatar billede coderdk Praktikant
03. marts 2006 - 21:45 #21
Jeg tror vi er nødt til at se hele scriptet, sorry, men det lyder lidt som noget rod ;)
Avatar billede powertools Nybegynder
03. marts 2006 - 21:53 #22
du har nok coderdk. det fulde script kommer her:

<b>Billedstyring</b><br>
<br>

<?

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
        $srcim = imagecreatefromjpeg( $filename );
        $ow = imagesx( $srcim );
        $oh = imagesy( $srcim );
        $wscale = $maxw / $ow;
        $hscale = $maxh / $oh;
        $scale = ( $hscale < $wscale ? $hscale : $wscale );
        $nw = round( $ow * $scale, 0 );
        $nh = round( $oh * $scale, 0 );
        $dstim = imagecreatetruecolor( $nw, $nh );
        imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
        imagejpeg( $dstim, $newfilename );
        imagedestroy( $dstim );
        imagedestroy( $srcim );
    }

// --------------------------------------------------------------//
    if($_POST['submit'])
    {

        if(is_uploaded_file( $_FILES['strFile']['tmp_name']))
        {
            // Difinere ny maks størrelse på thumbnailen
            $IMG_TN_WIDTH = 80;
            $IMG_TN_HEIGHT = 80;

            // Difinere ny maks størrelse på stort billed
            $IMG_BIG_WIDTH = 180;
            $IMG_BIG_HEIGHT = 180;

            // og fortæller hvor det skal uploades til
            //$IMG_ROOT = "../shop/pics/$product_id";
            $IMG_ROOT = "ud";
            chmod("$IMG_ROOT",0777);

            if(!file_exists("$IMG_ROOT"))
            {
                mkdir("$IMG_ROOT",0777);
                chmod ("$IMG_ROOT",0777);
            }

            // Fjerner alt før extensionen
            $fileName = explode(".", $_FILES['strFile']['name']);

            // Hvis der skulle komme nogle errors, kan man enable linjen under, og undgå at se dem
            // error_reporting(53);

            // Accepteret filtyper
            $acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');

            // Tjekker om den valgte fil er blandt accepteret typer
            if(!in_array($_FILES['strFile']['type'], $acceptedTypes) OR trim($_FILES['strFile']['tmp_name']) == "" OR trim($_FILES['strFile']['tmp_name']) =="none")
            {
                echo "Billed er ikke supportet. Tjek at det er jpeg format";
            }
            else
            {
                // undersøger om det er main eller extra
                // og tildeler filnavn derefter.

                if($pic_type == "main")
                {
                    //$image_stored = "$product_id.jpg";
                    $image_stored = "1.jpg";
                }
                else
                {
                    if(file_exists("$IMG_ROOT/2.jpg"))
                    {
                        $i = 2;
                        while(file_exists("$IMG_ROOT/$i.jpg"))
                        {
                            $image_stored = "$i.jpg";
                            $i++;
                        }
                    }
                    else
                    {
                        $image_stored = "2.jpg";
                        echo "filen findes ikke - billednavn: $image_stored<br>";
                    }
                }

                // Flyt fil så vi kan arbejde med den - SAFE_MODE fix
                $tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');
                if ( move_uploaded_file( $_FILES['strFile']['tmp_name'], $tmpfile ) )
                {
                    // De orginale størrelser på filen hentes
                    $img_orig_size = getimagesize($tmpfile);
                    $img_orig_width = $img_orig_size[0];
                    $img_orig_height = $img_orig_size[1];

                    // Gemmer billede med nye størrelser som stort
                    $img_original = ImageCreateFromJpeg($tmpfile);

                    // Tjekker om billede er mindre en max størrelserne
                    if(($img_orig_width <= $IMG_BIG_WIDTH) AND ($img_orig_height <= $IMG_BIG_HEIGHT))
                    {
                        echo "gemt - billed ikke resized<br>";
                        ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
                        chmod("$IMG_ROOT/$image_stored",0777);
                    }
                    else
                    {
                        echo "gemt - fuld størrelse<br>";
                        // Gemmer original billed i fuldstørrelse
                        ImageJPEG($img_original, "$IMG_ROOT/big_$image_stored");
                        chmod("$IMG_ROOT/big_$image_stored",0777);

                        // Filnavnet bliver id.jpg
                        echo "gemt - resized<br>";
                        $img_name = $image_stored;
                        Imagejpeg($img_resized, "$IMG_ROOT/$img_name");
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                    }

                    // Skriver information på skræmen
                    echo "<b>Billed</b><br>
                        Orginalt billednavn: {$_FILES['strFile']['name']}<br>
                        Nyt billednavn: $image_stored<br>
                        Width: $img_orig_width<br>
                        Height: $img_orig_height<br>
                        <a target='_blank' href='$IMG_ROOT/$image_stored'>Se billed</a><br><br>";

                    // Tjekker om billede er mindre en max størrelserne THUNBNAIL
                    if($img_orig_width <= $IMG_TN_WIDTH AND $img_orig_height <= $IMG_TN_HEIGHT)
                    {
                        echo "Ingen resize nødvendig";
                        ImageJPEG($img_original, "$IMG_ROOT/tn_$image_stored");
                    }
                    else
                    {
                        // Filnavnet bliver tn_id.jpg
                        $img_name = "tn_$image_stored";
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                        chmod("$IMG_ROOT/$img_name",0777);

                        // henter filstørrelsen
                        $mg_new_size = filesize("$IMG_ROOT/$img_name");

                        // Skriver information på skræmen
                        echo "<b>Thumbnail</b><br>
                            Max størrelse for thumbnails: $IMG_TN_WIDTH x $IMG_TN_HEIGHT<br>
                            Width: $img_new_width<br>
                            Height: $img_new_height<br>
                            Filstørrelse: $mg_new_size (in bytes)<br>
                            <img src='$IMG_ROOT/$img_name'><br><br>";
                    }
                }

                // Slet temp fil
                unlink( $tmpfile );

                imagedestroy( $img_original );
            }
        }
    }

// --------------------------------------------------------------//

?>

<form action="<?= $_SERVER['SCRIPT_NAME'] ?>" method="post" enctype="multipart/form-data">

Hovedbilled (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="main">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<br>

<form action="product_picture.php" method="post" enctype="multipart/form-data">

Ekstra billed (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="extra">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<?
echo "<table cellpadding=\"5\" cellspacing=\"0\" class=\"shop_product_table\">\n";

echo "<tr>\n";
echo "<td class=\"shop_product_td_head_large\" colspan=\"2\"></td>";
echo "</tr>\n";
   
echo "<tr><td class=\"shop_product_td_flow\">Klik på billed for at slette:<br><br><center>";

$i = 1;
while($i < 10)
    {
    if(file_exists("../shop/pics/$product_id/$i.jpg"))
            {
            echo "<a href=\"index.php?page=pages/product.php&mode=picture&browse=true&product_id=$product_id&image_no=$i\"><img src=\"../shop/pics/$product_id/tn_$i.jpg\" alt=\"Hovedbilled - klik for større billed\" border=\"0\"></a>\n";
            }
    $i++;
    $br_count++;
    if($br_count >= 4)
        {
        echo "<br><br>\n";
        $br_count = 0;
        }
        else
        {
        if(file_exists("../shop/pics/$product_id/$i.jpg"))
            {
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            }
        }
    }

echo "</center></td>";
echo "<td class=\"shop_product_td_end\">&nbsp;</td>";
echo "</tr>";
echo "<tr>";
echo "<td class=\"shop_product_td_bottom\" colspan=\"2\"></td>";
echo "</tr>";
echo "</table>";

?>


<?


// --------------------------------------------------------------//

if(!$submit_sub_fetch AND !$submit_sub_choose AND !$submit AND !$browse)
{
?>

<form action="index.php?page=pages/product.php&mode=picture" method="post" name="sub_group_fetch" class="form">

Vælg hovedgruppe:<br>
<?
require('config.php');

$mySQL_tabl = "CAX_groups_main";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl ORDER BY name");

if (mysql_num_rows($result) > 0)
{

echo "<select name=\"main_id\" class=\"pulldown\">";
//echo "<option value=\"\">Vælg en hovedgruppe</option>";

while($a = mysql_fetch_array($result))
    {
    echo "<option value=\"" . $a['main_id'] . "\">" . $a['name'] . "</option>";
    }
echo "</select>";
echo "<br><br>";

}
else
{
// er der ingen resultat
echo "&nbsp;&nbsp;Ingen hovedgrupper oprettet<br><br>\n";
}

mysql_close();

?>

<input type="submit" name="submit_sub_fetch" value=" Hent undergrupper " class="knap">

</form><br>

<?
}

// --------------------------------------------------------------//

elseif($submit_sub_fetch AND !$submit_sub_choose AND !$submit AND !$browse)
{
?>

<form action="index.php?page=pages/product.php&mode=picture" method="post">

<?
require('config.php');

$mySQL_tabl = "CAX_groups_sub";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE main_id='$main_id' ORDER BY name");

if (mysql_num_rows($result) > 0)
{

echo "<select name=\"sub_id\" class=\"pulldown\">";
//echo "<option value=\"\">Vælg en undergruppe</option>";

while($a = mysql_fetch_array($result))
    {
    echo "<option value=\"" . $a['sub_id'] . "\">" . $a['name'] . "</option>";
    }
echo "</select>";
echo "<br><br>";

}
else
{
// er der ingen resultat
echo "&nbsp;&nbsp;Ingen undergrupper oprettet\n";
}

mysql_close();

?>

<input type="hidden" name="main_id" value="<?=$main_id; ?>">
<input type="submit" name="submit_sub_choose" value=" Hent produkter " class="knap">

</form>

<?
}

// --------------------------------------------------------------//

elseif($submit_sub_choose AND !$submit_sub_fetch AND !$submit AND !$browse)
{

require('config.php');

$mySQL_tabl = "CAX_products";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE sub_id='$sub_id' ORDER BY model");

if (mysql_num_rows($result) > 0)
{

while($a = mysql_fetch_array($result))
    {
    echo "<a href=\"index.php?page=pages/product.php&amp;mode=picture&amp;browse=true&amp;product_id=" . $a[product_id] . "\">" . $a[name] . "</a><br>\n";
    }
echo "<br>";
}

mysql_close();

}
?>
Avatar billede powertools Nybegynder
03. marts 2006 - 21:54 #23
glemte at skrive "du har nok RET coderdk" ;-)
Avatar billede coderdk Praktikant
03. marts 2006 - 21:58 #24
De to scripts hænger jo ikke sammen... Kigger lige...
Avatar billede coderdk Praktikant
03. marts 2006 - 22:05 #25
Hmm ja, jeg tror ikke jeg kan gøre så meget mere end dette:

<b>Billedstyring</b><br>
<br>

<?

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
        $srcim = imagecreatefromjpeg( $filename );
        $ow = imagesx( $srcim );
        $oh = imagesy( $srcim );
        $wscale = $maxw / $ow;
        $hscale = $maxh / $oh;
        $scale = ( $hscale < $wscale ? $hscale : $wscale );
        $nw = round( $ow * $scale, 0 );
        $nh = round( $oh * $scale, 0 );
        $dstim = imagecreatetruecolor( $nw, $nh );
        imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
        imagejpeg( $dstim, $newfilename );
        imagedestroy( $dstim );
        imagedestroy( $srcim );
    }

// --------------------------------------------------------------//
    if($_POST['submit'])
    {

        if(is_uploaded_file( $_FILES['strFile']['tmp_name']))
        {
            // Difinere ny maks størrelse på thumbnailen
            $IMG_TN_WIDTH = 80;
            $IMG_TN_HEIGHT = 80;

            // Difinere ny maks størrelse på stort billed
            $IMG_BIG_WIDTH = 180;
            $IMG_BIG_HEIGHT = 180;

            // og fortæller hvor det skal uploades til
            $IMG_ROOT = "../shop/pics/$_REQUEST[product_id]";
            //$IMG_ROOT = "ud";

            if(!file_exists("$IMG_ROOT"))
            {
                mkdir("$IMG_ROOT",0777);
                chmod ("$IMG_ROOT",0777);
            }

            // Fjerner alt før extensionen
            $fileName = explode(".", $_FILES['strFile']['name']);

            // Hvis der skulle komme nogle errors, kan man enable linjen under, og undgå at se dem
            // error_reporting(53);

            // Accepteret filtyper
            $acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');

            // Tjekker om den valgte fil er blandt accepteret typer
            if(!in_array($_FILES['strFile']['type'], $acceptedTypes) OR trim($_FILES['strFile']['tmp_name']) == "" OR trim($_FILES['strFile']['tmp_name']) =="none")
            {
                echo "Billed er ikke supportet. Tjek at det er jpeg format";
            }
            else
            {
                // undersøger om det er main eller extra
                // og tildeler filnavn derefter.

                if($pic_type == "main")
                {
                    //$image_stored = "$product_id.jpg";
                    $image_stored = "1.jpg";
                }
                else
                {
                    if(file_exists("$IMG_ROOT/2.jpg"))
                    {
                        $i = 2;
                        while(file_exists("$IMG_ROOT/$i.jpg"))
                        {
                            $image_stored = "$i.jpg";
                            $i++;
                        }
                    }
                    else
                    {
                        $image_stored = "2.jpg";
                        echo "filen findes ikke - billednavn: $image_stored<br>";
                    }
                }

                // Flyt fil så vi kan arbejde med den - SAFE_MODE fix
                $tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');
                if ( move_uploaded_file( $_FILES['strFile']['tmp_name'], $tmpfile ) )
                {
                    // De orginale størrelser på filen hentes
                    $img_orig_size = getimagesize($tmpfile);
                    $img_orig_width = $img_orig_size[0];
                    $img_orig_height = $img_orig_size[1];

                    // Gemmer billede med nye størrelser som stort
                    $img_original = ImageCreateFromJpeg($tmpfile);

                    // Tjekker om billede er mindre en max størrelserne
                    if(($img_orig_width <= $IMG_BIG_WIDTH) AND ($img_orig_height <= $IMG_BIG_HEIGHT))
                    {
                        echo "gemt - billed ikke resized<br>";
                        ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
                        chmod("$IMG_ROOT/$image_stored",0777);
                    }
                    else
                    {
                        echo "gemt - fuld størrelse<br>";
                        // Gemmer original billed i fuldstørrelse
                        ImageJPEG($img_original, "$IMG_ROOT/big_$image_stored");
                        chmod("$IMG_ROOT/big_$image_stored",0777);

                        // Filnavnet bliver id.jpg
                        echo "gemt - resized<br>";
                        $img_name = $image_stored;
                        Imagejpeg($img_resized, "$IMG_ROOT/$img_name");
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                    }

                    // Skriver information på skræmen
                    echo "<b>Billed</b><br>
                        Orginalt billednavn: {$_FILES['strFile']['name']}<br>
                        Nyt billednavn: $image_stored<br>
                        Width: $img_orig_width<br>
                        Height: $img_orig_height<br>
                        <a target='_blank' href='$IMG_ROOT/$image_stored'>Se billed</a><br><br>";

                    // Tjekker om billede er mindre en max størrelserne THUNBNAIL
                    if($img_orig_width <= $IMG_TN_WIDTH AND $img_orig_height <= $IMG_TN_HEIGHT)
                    {
                        echo "Ingen resize nødvendig";
                        ImageJPEG($img_original, "$IMG_ROOT/tn_$image_stored");
                    }
                    else
                    {
                        // Filnavnet bliver tn_id.jpg
                        $img_name = "tn_$image_stored";
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                        chmod("$IMG_ROOT/$img_name",0777);

                        // henter filstørrelsen
                        $mg_new_size = filesize("$IMG_ROOT/$img_name");

                        // Skriver information på skræmen
                        echo "<b>Thumbnail</b><br>
                            Max størrelse for thumbnails: $IMG_TN_WIDTH x $IMG_TN_HEIGHT<br>
                            Width: $img_new_width<br>
                            Height: $img_new_height<br>
                            Filstørrelse: $mg_new_size (in bytes)<br>
                            <img src='$IMG_ROOT/$img_name'><br><br>";
                    }
                }

                // Slet temp fil
                unlink( $tmpfile );

                imagedestroy( $img_original );
            }
        }
    }

// --------------------------------------------------------------//

?>

<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post" enctype="multipart/form-data">

Hovedbilled (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="main">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<br>

<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post" enctype="multipart/form-data">

Ekstra billed (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="000010">
<input type="hidden" name="pic_type" value="extra">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<?
echo "<table cellpadding=\"5\" cellspacing=\"0\" class=\"shop_product_table\">\n";

echo "<tr>\n";
echo "<td class=\"shop_product_td_head_large\" colspan=\"2\"></td>";
echo "</tr>\n";

echo "<tr><td class=\"shop_product_td_flow\">Klik på billed for at slette:<br><br><center>";

$i = 1;
while($i < 10)
    {
    if(file_exists("../shop/pics/$_REQUEST[product_id]/$i.jpg"))
            {
            echo "<a href=\"index.php?page=pages/product.php&mode=picture&browse=true&product_id=$_REQUEST[product_id]&image_no=$i\"><img src=\"../shop/pics/$_REQUEST[product_id]/tn_$i.jpg\" alt=\"Hovedbilled - klik for større billed\" border=\"0\"></a>\n";
            }
    $i++;
    $br_count++;
    if($br_count >= 4)
        {
        echo "<br><br>\n";
        $br_count = 0;
        }
        else
        {
        if(file_exists("../shop/pics/$_REQUEST[product_id]/$i.jpg"))
            {
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            }
        }
    }

echo "</center></td>";
echo "<td class=\"shop_product_td_end\">&nbsp;</td>";
echo "</tr>";
echo "<tr>";
echo "<td class=\"shop_product_td_bottom\" colspan=\"2\"></td>";
echo "</tr>";
echo "</table>";

?>


<?


// --------------------------------------------------------------//

if(!$submit_sub_fetch AND !$submit_sub_choose AND !$submit AND !$browse)
{
?>

<form action="index.php?page=pages/product.php&mode=picture" method="post" name="sub_group_fetch" class="form">

Vælg hovedgruppe:<br>
<?
require('config.php');

$mySQL_tabl = "CAX_groups_main";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl ORDER BY name");

if (mysql_num_rows($result) > 0)
{

echo "<select name=\"main_id\" class=\"pulldown\">";
//echo "<option value=\"\">Vælg en hovedgruppe</option>";

while($a = mysql_fetch_array($result))
    {
    echo "<option value=\"" . $a['main_id'] . "\">" . $a['name'] . "</option>";
    }
echo "</select>";
echo "<br><br>";

}
else
{
// er der ingen resultat
echo "&nbsp;&nbsp;Ingen hovedgrupper oprettet<br><br>\n";
}

mysql_close();

?>

<input type="submit" name="submit_sub_fetch" value=" Hent undergrupper " class="knap">

</form><br>

<?
}

// --------------------------------------------------------------//

elseif(isset($_REQUEST['submit_sub_fetch']) AND !isset($_REQUEST['submit_sub_choose']) AND !isset($_REQUEST['submit']) AND !isset($_REQUEST['browse']))
{
?>

<form action="index.php?page=pages/product.php&mode=picture" method="post">

<?
require('config.php');

$mySQL_tabl = "CAX_groups_sub";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE main_id='$_REQUEST[main_id]' ORDER BY name");

if (mysql_num_rows($result) > 0)
{

echo "<select name=\"sub_id\" class=\"pulldown\">";
//echo "<option value=\"\">Vælg en undergruppe</option>";

while($a = mysql_fetch_array($result))
    {
    echo "<option value=\"" . $a['sub_id'] . "\">" . $a['name'] . "</option>";
    }
echo "</select>";
echo "<br><br>";

}
else
{
// er der ingen resultat
echo "&nbsp;&nbsp;Ingen undergrupper oprettet\n";
}

mysql_close();

?>

<input type="hidden" name="main_id" value="<?=$_REQUEST['main_id']; ?>">
<input type="submit" name="submit_sub_choose" value=" Hent produkter " class="knap">

</form>

<?
}

// --------------------------------------------------------------//

elseif(isset($_REQUEST['submit_sub_choose']) AND !isset($_REQUEST['submit_sub_fetch']) AND !isset($_REQUEST['submit']) AND !isset($_REQUEST['browse']))
{

require('config.php');

$mySQL_tabl = "CAX_products";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE sub_id='$_REQUEST[sub_id]' ORDER BY model");

if (mysql_num_rows($result) > 0)
{

while($a = mysql_fetch_array($result))
    {
    echo "<a href=\"index.php?page=pages/product.php&amp;mode=picture&amp;browse=true&amp;product_id=" . $a[product_id] . "\">" . $a[name] . "</a><br>\n";
    }
echo "<br>";
}

mysql_close();

}
?>

Det virker for mig, en smule rodet ;P
Avatar billede powertools Nybegynder
03. marts 2006 - 22:20 #26
ja det kan jeg godt give dig ret i. Jeg tror dog du har fat i det rigtige, men der er blot lige nogle bugs før jeg kan komme til at se om det faktisk virker det du har lavet. lige nu kan scriptet ikke finde de produktundergrupper som ligger i databasen...så jeg kan slet ikke komme til at vælge et produkt der skal have tilføjet et billede..i scriptet skal man først vælge kategori, underkategori og så produkt, før man kan tilføje nyt hovedbillede, ekstrabillede, eller slette billede. Er det en fejl du let kan rette? tak for din indsats indtil videre iøvrigt :-)
Avatar billede coderdk Praktikant
03. marts 2006 - 22:20 #27
Desværre - Jeg ville skrive det om, og dele det op ;P
Avatar billede powertools Nybegynder
03. marts 2006 - 22:50 #28
okay.. 200 point er nok ikke tilstrækkeligt til at få dig til gøre det... kan man overhovedet give flere point?...
Avatar billede powertools Nybegynder
06. marts 2006 - 19:42 #29
coderdk - din indsats har ledt mig på rette vej ;-) tak for det. hvordan giver jeg dig point her..?
Avatar billede coderdk Praktikant
06. marts 2006 - 19:57 #30
Jeg skal først svare :)
Avatar billede powertools Nybegynder
07. marts 2006 - 10:28 #31
Coderdk: ham der normalt laver mit kodeværk siger at der er et problem i scriptet som han ikke kan løse...det drejer sig om at 'filen ikke kan læses'. Den del som tjekker om filen eksisterer, bliver ikke kørt. jeg håber jeg kan få dig til at bruge 3 sek. til på min hovedpine :-) Scriptet kommer her:

<b>Billedstyring</b><br>
<br>

<?

    function resize( $filename, $newfilename, $maxw, $maxh )
    {
        $srcim = imagecreatefromjpeg( $filename );
        $ow = imagesx( $srcim );
        $oh = imagesy( $srcim );
        $wscale = $maxw / $ow;
        $hscale = $maxh / $oh;
        $scale = ( $hscale < $wscale ? $hscale : $wscale );
        $nw = round( $ow * $scale, 0 );
        $nh = round( $oh * $scale, 0 );
        $dstim = imagecreatetruecolor( $nw, $nh );
        imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
        imagejpeg( $dstim, $newfilename );
        imagedestroy( $dstim );
        imagedestroy( $srcim );
    }

// --------------------------------------------------------------//
    if($_POST[submit])
    {
    echo "submit fundet<br>";

        if(is_uploaded_file( $_FILES['strFile']['tmp_name']))
        {
    echo "fil fundet<br>";
            // Difinere ny maks størrelse på thumbnailen
            $IMG_TN_WIDTH = 80;
            $IMG_TN_HEIGHT = 80;

            // Difinere ny maks størrelse på stort billed
            $IMG_BIG_WIDTH = 180;
            $IMG_BIG_HEIGHT = 180;

            // og fortæller hvor det skal uploades til
            $IMG_ROOT = "../shop/pics/$_REQUEST[product_id]";
            //$IMG_ROOT = "ud";

            if(!file_exists("$IMG_ROOT"))
            {
                mkdir("$IMG_ROOT",0777);
                chmod ("$IMG_ROOT",0777);
            }

            // Fjerner alt før extensionen
            $fileName = explode(".", $_FILES['strFile']['name']);

            // Hvis der skulle komme nogle errors, kan man enable linjen under, og undgå at se dem
            // error_reporting(53);

            // Accepteret filtyper
            $acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg');

            // Tjekker om den valgte fil er blandt accepteret typer
            if(!in_array($_FILES['strFile']['type'], $acceptedTypes) OR trim($_FILES['strFile']['tmp_name']) == "" OR trim($_FILES['strFile']['tmp_name']) =="none")
            {
                echo "Billed er ikke supportet. Tjek at det er jpeg format";
            }
            else
            {
                // undersøger om det er main eller extra
                // og tildeler filnavn derefter.

                if($pic_type == "main")
                {
                    //$image_stored = "$product_id.jpg";
            echo "gemmer org billed<br>";
                    $image_stored = "1.jpg";
                }
                else
                {
                    if(file_exists("$IMG_ROOT/2.jpg"))
                    {
                        $i = 2;
                        while(file_exists("$IMG_ROOT/$i.jpg"))
                        {
                            $image_stored = "$i.jpg";
                            $i++;
                        }
                    }
                    else
                    {
                        $image_stored = "2.jpg";
                        echo "filen findes ikke - billednavn: $image_stored<br>";
                    }
                }

                // Flyt fil så vi kan arbejde med den - SAFE_MODE fix
                $tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');
                if(move_uploaded_file($_FILES['strFile']['tmp_name'], $tmpfile))
                {
        echo "hvis upped fil fundet<br>";
                    // De orginale størrelser på filen hentes
                    $img_orig_size = getimagesize($tmpfile);
                    $img_orig_width = $img_orig_size[0];
                    $img_orig_height = $img_orig_size[1];

                    // Gemmer billede med nye størrelser som stort
                    $img_original = ImageCreateFromJpeg($tmpfile);

                    // Tjekker om billede er mindre en max størrelserne
                    if(($img_orig_width <= $IMG_BIG_WIDTH) AND ($img_orig_height <= $IMG_BIG_HEIGHT))
                    {
                        echo "gemt - billed ikke resized<br>";
                        ImageJPEG($img_original, "$IMG_ROOT/$image_stored");
                        chmod("$IMG_ROOT/$image_stored",0777);
                    }
                    else
                    {
                        echo "gemt - fuld størrelse<br>";
                        // Gemmer original billed i fuldstørrelse
                        ImageJPEG($img_original, "$IMG_ROOT/big_$image_stored");
                        chmod("$IMG_ROOT/big_$image_stored",0777);

                        // Filnavnet bliver id.jpg
                        echo "gemt - resized<br>";
                        $img_name = $image_stored;
                        Imagejpeg($img_resized, "$IMG_ROOT/$img_name");
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                    }

                    // Skriver information på skræmen
                    echo "<b>Billed</b><br>
                        Orginalt billednavn: {$_FILES['strFile']['name']}<br>
                        Nyt billednavn: $image_stored<br>
                        Width: $img_orig_width<br>
                        Height: $img_orig_height<br>
                        <a target='_blank' href='$IMG_ROOT/$image_stored'>Se billed</a><br><br>";

                    // Tjekker om billede er mindre en max størrelserne THUNBNAIL
                    if($img_orig_width <= $IMG_TN_WIDTH AND $img_orig_height <= $IMG_TN_HEIGHT)
                    {
                        echo "Ingen resize nødvendig";
                        ImageJPEG($img_original, "$IMG_ROOT/tn_$image_stored");
                    }
                    else
                    {
                        // Filnavnet bliver tn_id.jpg
                        $img_name = "tn_$image_stored";
                        resize($tmpname, $img_name, $IMG_BIG_WIDTH, $IMG_BIG_HEIGHT);
                        chmod("$IMG_ROOT/$img_name",0777);

                        // henter filstørrelsen
                        $mg_new_size = filesize("$IMG_ROOT/$img_name");

                        // Skriver information på skræmen
                        echo "<b>Thumbnail</b><br>
                            Max størrelse for thumbnails: $IMG_TN_WIDTH x $IMG_TN_HEIGHT<br>
                            Width: $img_new_width<br>
                            Height: $img_new_height<br>
                            Filstørrelse: $mg_new_size (in bytes)<br>
                            <img src='$IMG_ROOT/$img_name'><br><br>";
                    }
                }

                // Slet temp fil
                unlink( $tmpfile );

                imagedestroy( $img_original );
            }
        }
    }

// --------------------------------------------------------------//


if(!$submit_sub_fetch AND !$submit_sub_choose AND !$submit AND $browse)
{
?>

<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post" enctype="multipart/form-data">

Hovedbilled (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="<?=$_REQUEST['product_id']; ?>">
<input type="hidden" name="pic_type" value="main">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<br>

<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post" enctype="multipart/form-data">

Ekstra billed (Jpeg):<br>
<input type="file" name="strFile" value=" class="felt"><br>
<br>

<input type="hidden" name="product_id" value="<?=$_REQUEST['product_id']; ?>">
<input type="hidden" name="pic_type" value="extra">
<input type="submit" name="submit" value=" Tilføj " class="knap">

</form>

<?
echo "<table cellpadding=\"5\" cellspacing=\"0\" class=\"shop_product_table\">\n";

echo "<tr>\n";
echo "<td class=\"shop_product_td_head_large\" colspan=\"2\"></td>";
echo "</tr>\n";

echo "<tr><td class=\"shop_product_td_flow\">Klik på billed for at slette:<br><br><center>";

$i = 1;
while($i < 10)
    {
    if(file_exists("../shop/pics/$_REQUEST[product_id]/$i.jpg"))
            {
            echo "<a href=\"index.php?page=pages/product.php&mode=picture&browse=true&product_id=$_REQUEST[product_id]&image_no=$i\"><img src=\"../shop/pics/$_REQUEST[product_id]/tn_$i.jpg\" alt=\"Hovedbilled - klik for større billed\" border=\"0\"></a>\n";
            }
    $i++;
    $br_count++;
    if($br_count >= 4)
        {
        echo "<br><br>\n";
        $br_count = 0;
        }
        else
        {
        if(file_exists("../shop/pics/$_REQUEST[product_id]/$i.jpg"))
            {
            echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            }
        }
    }

echo "</center></td>";
echo "<td class=\"shop_product_td_end\">&nbsp;</td>";
echo "</tr>";
echo "<tr>";
echo "<td class=\"shop_product_td_bottom\" colspan=\"2\"></td>";
echo "</tr>";
echo "</table>";

?>


<?
}

// --------------------------------------------------------------//

if(!$submit_sub_fetch AND !$submit_sub_choose AND !$submit AND !$browse)
{
?>

<form action="index.php?page=pages/product.php&mode=picture" method="post" name="sub_group_fetch" class="form">

Vælg hovedgruppe:<br>
<?
require('config.php');

$mySQL_tabl = "CAX_groups_main";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl ORDER BY name");

if (mysql_num_rows($result) > 0)
{

echo "<select name=\"main_id\" class=\"pulldown\">";
//echo "<option value=\"\">Vælg en hovedgruppe</option>";

while($a = mysql_fetch_array($result))
    {
    echo "<option value=\"" . $a['main_id'] . "\">" . $a['name'] . "</option>";
    }
echo "</select>";
echo "<br><br>";

}
else
{
// er der ingen resultat
echo "&nbsp;&nbsp;Ingen hovedgrupper oprettet<br><br>\n";
}

mysql_close();

?>

<input type="submit" name="submit_sub_fetch" value=" Hent undergrupper " class="knap">

</form><br>

<?
}

// --------------------------------------------------------------//

elseif(isset($_REQUEST['submit_sub_fetch']) AND !isset($_REQUEST['submit_sub_choose']) AND !isset($_REQUEST['submit']) AND !isset($_REQUEST['browse']))
{
?>

<form action="index.php?page=pages/product.php&mode=picture" method="post">

<?
require('config.php');

$mySQL_tabl = "CAX_groups_sub";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE main_id='$_REQUEST[main_id]' ORDER BY name");

if (mysql_num_rows($result) > 0)
{

echo "<select name=\"sub_id\" class=\"pulldown\">";
//echo "<option value=\"\">Vælg en undergruppe</option>";

while($a = mysql_fetch_array($result))
    {
    echo "<option value=\"" . $a['sub_id'] . "\">" . $a['name'] . "</option>";
    }
echo "</select>";
echo "<br><br>";

}
else
{
// er der ingen resultat
echo "&nbsp;&nbsp;Ingen undergrupper oprettet\n";
}

mysql_close();

?>

<input type="hidden" name="main_id" value="<?=$_REQUEST['main_id']; ?>">
<input type="submit" name="submit_sub_choose" value=" Hent produkter " class="knap">

</form>

<?
}

// --------------------------------------------------------------//

elseif(isset($_REQUEST['submit_sub_choose']) AND !isset($_REQUEST['submit_sub_fetch']) AND !isset($_REQUEST['submit']) AND !isset($_REQUEST['browse']))
{

require('config.php');

$mySQL_tabl = "CAX_products";

mysql_connect($mySQL_host,$mySQL_user,$mySQL_pass);
mysql_select_db($mySQL_name);

$result = mysql_query("SELECT * FROM $mySQL_tabl WHERE sub_id='$_REQUEST[sub_id]' ORDER BY model");

if (mysql_num_rows($result) > 0)
{

while($a = mysql_fetch_array($result))
    {
    echo "<a href=\"index.php?page=pages/product.php&amp;mode=picture&amp;browse=true&amp;product_id=" . $a[product_id] . "\">" . $a[name] . "</a><br>\n";
    }
echo "<br>";
}

mysql_close();

}
?>
Avatar billede coderdk Praktikant
07. marts 2006 - 11:58 #32
Hvilken del af det miskmask er problemet? :)
Avatar billede powertools Nybegynder
07. marts 2006 - 12:24 #33
;-) det er den del som ser om filen er der...

// Flyt fil så vi kan arbejde med den - SAFE_MODE fix
$tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');
                if(move_uploaded_file($_FILES['strFile']['tmp_name'], $tmpfile))

den if bliver ikke kørt selvom der er fil
Avatar billede coderdk Praktikant
07. marts 2006 - 12:45 #34
Hvis du lige efter den if-sætning smider en echo "HEJ!"; kommer den så ud?

Prøv lige efter $tmpfile =
at skrive den ud:

echo "\$tmpfile = $tmpfile";

og se hvad den skriver...
Avatar billede powertools Nybegynder
07. marts 2006 - 13:43 #35
Hej igen coderDK!

// Flyt fil så vi kan arbejde med den - SAFE_MODE fix
                $tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');
          echo "\$tmpfile = $tmpfile";
                if(move_uploaded_file($_FILES['strFile']['tmp_name'], $tmpfile))
                {
          echo "hvis upped fil fundet<br>";

Giver

$tmpfile = ../shop/pics/001086/upl_tmp_ANQaid

dvs if'en bliver ikke kørt da echo "hvis upped fil fundet<br>"; ikke bliver udført

hmm.. der må være noget med det der
$tmpfile = tempnam($IMG_ROOT, 'upl_tmp_');

jeg skal spørge hvad tempnam er og hvad upl_tmp_ er...

fordi..

$tmpfile = ../shop/pics/001086/upl_tmp_ANQaid

burde måske $tmpfile = ../shop/pics/001086/upl_tmp_/ANQaid
(altså med /)
Avatar billede coderdk Praktikant
07. marts 2006 - 14:09 #36
Det sker fordi den ikke kan flytte filen til $tmpfile - Er der skriverettigheder?

upl_tmp_ er bare et præfix, så man kan se at det er en temporær fil, der er blevet uploadet.
Avatar billede powertools Nybegynder
07. marts 2006 - 14:29 #37
hvis det er IMG_ROOT så ja, så er der sat 0777 Chmod. Er det evt. et andet sted der skal være skriverettigheder?
Avatar billede coderdk Praktikant
07. marts 2006 - 14:42 #38
Hmm underligt - Gad vide hvorfor den ikke vil flytte filen så...
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