webForumDet fria alternativet

Problem med image swap och IE

7 svar · 348 visningar · startad av kaxigt

kaxigtMedlem sedan okt. 2004636 inlägg
#1

Hej!

Någon som har ett bra tips och kan hjälpa mig. Jag har en imagerotator (php) som funkar bra i FF men absolut inte i IE, där visas ingen bild alls. Allt som allt är det ca 6 bilder som roterar vid varje reload i FF och det funkar toppen. Så kommer vi till IE där ingen bild ens funkar. Nu har jag gjort en "fuling" genom att lägga en bild på bakgrunden som är mindre än bilderna i rotatorn. Måste ju tänka på IE-surfarna.

Till saken då:
Nån - jag behöver antingen hjälp med att klura ut detta, men ännu bättre en kod jag kan använda som för de med IE visar en speciell bild och för de som har FF kan rotatorn fortsätta rotera mina bilder. Alltså - skicka besökaren "rätt" beroende webbläsare fast det är samma sida de hamnar på. Går detta?

Tack på förhand// Lena

@ndersMedlem sedan juni 200032 969 inlägg
#2

Om du visar koden du använder är det lättare att se vad som är knas.

mvh

kaxigtMedlem sedan okt. 2004636 inlägg
#3

phpscriptet funkar alltså - men endast i Firefox. Laddar du upp sidan rotate.php i IE så roterar bilderna men inte på själva sidan.

så ser länken ut som aktiverar scriptet och den finns i header.php

<img class="imgrot" src="http://kaxigt.com/img/rotate.php" width="" height="" alt="" />

och själva php-scriptet:

<?php
/*

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

	[url]http://www.hiveware.com/imagerotator.php[/url]
	
	[url]http://www.automaticlabs.com/[/url]
	
	
	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);
	}
}

?>

Jag har detta script och bilderna i samma mapp, header.php utanför i roten. Det funkar som sagt i FF men inte i IE. Jag mailade också Dan och han svarade så här:

I use your image rotator and it is beautiful in my mozilla Firefox 1.0 browser, but it doesn't work in IE 6.0 - why?

my very best Lena

---------------------------------------------

The browser you use may cache images, it's not the fault of the rotator
- nor is there anything you can do about it, other than change your
browser's cache settings and take a moment or so between reloads.

Best of luck,

D

Dessa "moments" blir till år om man ska vänta. Jag har haft en till som testkört sidan i IE utan att det funkar.

/Lena

PeeerMedlem sedan mars 20025 907 inlägg
#4

kaxigt skrev:

phpscriptet funkar alltså - men endast i Firefox.

Surfar jag till http://kaxigt.com/img/rotate.php så får jag inte upp en bild, varken i IE eller FF. Säker på att det fungerar som det ska?

kaxigtMedlem sedan okt. 2004636 inlägg
#5

jag skrev fel det ska vara

http://kaxigt.com/arbete/img/rotate.php

Och Åke J kollade i natt han fick inte heller IE att funka.

kaxigtMedlem sedan okt. 2004636 inlägg
#6

Just nu verkar webbhotellets server ligga nere för vi kommer inte heller in på sidan

PeeerMedlem sedan mars 20025 907 inlägg
#7

Plocka bort de fetmarkerade delarna så fungerar det

<img class="imgrot" src="http://kaxigt.com/img/rotate.php" [b]width="" height=""[/b] alt="" />
kaxigtMedlem sedan okt. 2004636 inlägg
#8

TUSEN TACK!
Att jag inte tänkte på detta ;)

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)