WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Bakgrunds rotation (https://www.wn.se/forum/showthread.php?t=1057216)

MusikMixen 2013-03-15 07:47

Bakgrunds rotation
 
Jag använder mig av denna koden, men får inte den att fungera.
Den visar en massa konstig text istället för bild. Alla bilderna ligger i samma mapp och jag kör med
Kod:

background: transparent url('LÄNK/bg.php') no-repeat fixed center 0; scroll 0 0 ;transparent;
}
.main { width: 1002px; margin: 0 auto; }

i css filen för att infoga den. Kanske ska tillägga att det är i en joomla installation.

bg.php
Kod:

<?php
$img_array = array('bg1.jpg', 'bg2.jpg', 'bg3.jpg', 'bg4.jpg', 'bg5.jpg', 'bg6.jpg', 'bg7.jpg', 'bg8.jpg', 'bg9.jpg');

$img_rnd = rand(0, sizeof($img_array) - 1);

header('Content-type: image/jpg');
header('Content-Disposition: filename=' . $img_array[$img_rnd]);
readfile($img_array[$img_rnd]);
?>


gregoff 2013-03-15 07:53

Citat:

Ursprungligen postat av MusikMixen (Inlägg 20464861)
Jag använder mig av denna koden, men får inte den att fungera.
Den visar en massa konstig text istället för bild. Alla bilderna ligger i samma mapp och jag kör med
Kod:

background: transparent url('LÄNK/bg.php') no-repeat fixed center 0; scroll 0 0 ;transparent;
}
.main { width: 1002px; margin: 0 auto; }

i css filen för att infoga den. Kanske ska tillägga att det är i en joomla installation.

bg.php
Kod:

<?php
$img_array = array('bg1.jpg', 'bg2.jpg', 'bg3.jpg', 'bg4.jpg', 'bg5.jpg', 'bg6.jpg', 'bg7.jpg', 'bg8.jpg', 'bg9.jpg');

$img_rnd = rand(0, sizeof($img_array) - 1);

header('Content-type: image/jpg');
header('Content-Disposition: filename=' . $img_array[$img_rnd]);
readfile($img_array[$img_rnd]);
?>


Hade ett liknande problem själv tidigare. Då var problemet att min php-kod först skrev ut en varning och sedan bilden, vilket medför en korrupt bild.

MusikMixen 2013-03-15 07:54

Har du ngt förslag på en lösning?

gregoff 2013-03-15 08:04

Citat:

Ursprungligen postat av MusikMixen (Inlägg 20464863)
Har du ngt förslag på en lösning?

Ladda ner filen som skriptet genererar och öppna filen i t.ex. notepad och se om du hittar någon php-varning överst/underst.

Jake.Nu 2013-03-15 11:53

Ta bort Content-Disposition, man skall väl inte ladda ner filen?

0x5A5A5A5A 2013-03-15 12:01

Vad är den konstiga texten som visas?

Jake.Nu 2013-03-15 15:21

Sen är rätt header
Kod:

Content-Type: image/jpeg
http://www.iana.org/assignments/media-types/image

MusikMixen 2013-03-15 16:36

Tack för alla svar. Jag hittade denna och den fungerade, så problemet är löst!
Kod:

<?php

/*

        AUTOMATIC IMAGE ROTATOR
        Version 2.2 - December 4, 2003
        Copyright (c) 2002-2003 Dan P. Benjamin, Automatic, Ltd.
        All Rights Reserved.

        http://www.hiveware.com/imagerotator.php
       
        http://www.automaticlabs.com/
       
       
        DISCLAIMER
        Automatic, Ltd. makes no representations or warranties about
        the suitability of the software, either express or
        implied, including but not limited to the implied
        warranties of merchantability, fitness for a particular
        purpose, or non-infringement. Dan P. Benjamin and Automatic, Ltd.
        shall not be liable for any damages suffered by licensee
        as a result of using, modifying or distributing this
        software or its derivatives.
       
       
        ABOUT
        This PHP script will randomly select an image file from a
        folder of images on your webserver.  You can then link to it
        as you would any standard image file and you'll see a random
        image each time you reload.
       
        When you want to add or remove images from the rotation-pool,
        just add or remove them from the image rotation folder.


        VERSION CHANGES
        Version 1.0
                - Release version
       
        Version 1.5
                - Tweaked a few boring bugs
       
        Version 2.0
                - Complete rewrite from the ground-up
                - Made it clearer where to make modifications
                - Made it easier to specify/change the rotation-folder
                - Made it easier to specify/change supported image types
                - Wrote better instructions and info (you're them reading now)
                - Significant speed improvements
                - More error checking
                - Cleaner code (albeit more PHP-specific)
                - Better/faster random number generation and file-type parsing
                - Added a feature where the image to display can be specified
                - Added a cool feature where, if an error occurs (such as no
                  images being found in the specified folder) *and* you're
                  lucky enough to have the GD libraries compiled into PHP on
                  your webserver, we generate a replacement "error image" on
                  the fly.
               
    Version 2.1
        - Updated a potential security flaw when value-matching
          filenames

    Version 2.2
        - Updated a few more potential security issues
        - Optimized the code a bit.
        - Expanded the doc for adding new mime/image types.

        Thanks to faithful ALA reader Justin Greer for
        lots of good tips and solid code contribution!


        INSTRUCTIONS
        1. Modify the $folder setting in the configuration section below.
        2. Add image types if needed (most users can ignore that part).
        3. Upload this file (rotate.php) to your webserver.  I recommend
          uploading it to the same folder as your images.
        4. Link to the file as you would any normal image file, like this:

                        <img src="http://example.com/rotate.php">

        5. You can also specify the image to display like this:

                        <img src="http://example.com/rotate.php?img=gorilla.jpg">
               
                This would specify that an image named "gorilla.jpg" located
                in the image-rotation folder should be displayed.
       
        That's it, you're done.

*/




/* ------------------------- CONFIGURATION -----------------------


        Set $folder to the full path to the location of your images.
        For example: $folder = '/user/me/example.com/images/';
        If the rotate.php file will be in the same folder as your
        images then you should leave it set to $folder = '.';

*/


        $folder = '.';


/*       

        Most users can safely ignore this part.  If you're a programmer,
        keep reading, if not, you're done.  Go get some coffee.

    If you'd like to enable additional image types other than
        gif, jpg, and png, add a duplicate line to the section below
        for the new image type.
       
        Add the new file-type, single-quoted, inside brackets.
       
        Add the mime-type to be sent to the browser, also single-quoted,
        after the equal sign.
       
        For example:
       
        PDF Files:

                $extList['pdf'] = 'application/pdf';
       
    CSS Files:

        $extList['css'] = 'text/css';

    You can even serve up random HTML files:

            $extList['html'] = 'text/html';
            $extList['htm'] = 'text/html';

    Just be sure your mime-type definition is correct!

*/

    $extList = array();
        $extList['gif'] = 'image/gif';
        $extList['jpg'] = 'image/jpeg';
        $extList['jpeg'] = 'image/jpeg';
        $extList['png'] = 'image/png';
       

// You don't need to edit anything after this point.


// --------------------- END CONFIGURATION -----------------------

$img = null;

if (substr($folder,-1) != '/') {
        $folder = $folder.'/';
}

if (isset($_GET['img'])) {
        $imageInfo = pathinfo($_GET['img']);
        if (
            isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
        file_exists( $folder.$imageInfo['basename'] )
    ) {
                $img = $folder.$imageInfo['basename'];
        }
} else {
        $fileList = array();
        $handle = opendir($folder);
        while ( false !== ( $file = readdir($handle) ) ) {
                $file_info = pathinfo($file);
                if (
                    isset( $extList[ strtolower( $file_info['extension'] ) ] )
                ) {
                        $fileList[] = $file;
                }
        }
        closedir($handle);

        if (count($fileList) > 0) {
                $imageNumber = time() % count($fileList);
                $img = $folder.$fileList[$imageNumber];
        }
}

if ($img!=null) {
        $imageInfo = pathinfo($img);
        $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
        header ($contentType);
        readfile($img);
} else {
        if ( function_exists('imagecreate') ) {
                header ("Content-type: image/png");
                $im = @imagecreate (100, 100)
                    or die ("Cannot initialize new GD image stream");
                $background_color = imagecolorallocate ($im, 255, 255, 255);
                $text_color = imagecolorallocate ($im, 0,0,0);
                imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
                imagepng ($im);
                imagedestroy($im);
        }
}

?>



Alla tider är GMT +2. Klockan är nu 00:38.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson