Variable globalisieren

DaSashStYle

Mitglied
Hallo,

ich habe folgendes Problem:

Ich habe eine website auf der ich eine Flashslideshow (bilder) laufen lasse.
Allerdings habe ich mir gedacht, dass ich für diejenigen die Scripte Deaktiviert haben einen <noscript> - Teil nehme in der ich eine Manuelle Slideshow einbinde.
Den Weg dazu habe ich über einen Iframe gewählt, über das ich die Datei "manuell_inline.php" mit unten folgendem Code laufen lasse.
Dies funktioniert auch soweit. Allerdings habe ich im moment ein wenig Probleme meine Manuelle Slideshow zum laufen zu bekommen. Vielleicht kann mir dabei ja jemand helfen.

Es funktioniert, immer das erste Bild anzuzeigen. allerdings scheint mir da etwas mit der zaehler nich richtig zu funktionieren. Ich vermute mal dass es daran liegt, dass die Variable Zaehler immer wieder neu mit 0 initialisiert wird. Wie kann ich dieses Problem lösen, sodass die Variable nur beim ersten aufruf mit 0 initialisiert wird und danach wirklich der Zaehler hochzählt?


PHP:
<?php
	if (!isset ($zaehler))
		$zaehler=0; 

	$auswahl = array(); 
	
	$auswahl[0] = "image1.jpg"; $auswahl[1] = "image2.jpg"; $auswahl[2] = "image3.jpg"; $auswahl[3] = "image4.jpg"; 
	$auswahl[4] = "image5.jpg"; $auswahl[5] = "image6.jpg"; $auswahl[6] = "image7.jpg"; $auswahl[7] = "image8.jpg"; 
	$auswahl[8] = "image9.jpg";
	
	echo $zaehler; 
	echo '  <img src="Slider_team/'.$auswahl[$zaehler].'" style="position:absolute left: 0px; top: 0px;"/>';	
	echo '  <a href = "manuell_inline.php?action=forward">
				<img src="pfeil5.png" style="position:absolute; top:203px; left: 436px; border:0px; "/>
			</a>';
	echo '  <a href = "manuell_inline.php?action = backward">
				<img src="pfeil6.png" style="position:absolute; top:203px; left: 414px; border:0px;" / >			
			</a>';

	switch ( $_GET["action"]) {
		case "forward": $zaehler++;
						if ($zaehler >= 9) $zaehler=0; 	 break; 
		case "backward":$zaehler--; 
						if ($zaehler < 0)  $zaehler=9;   break;  
	}
?>
 
Du könntest zum Beispiel mit Sessions arbeiten.
http://de.php.net/session

Oder alternativ mit Cookies:
http://de.php.net/setcookie

Das sind jetzt zwei Methoden, die mir einfallen um den aktuellen Zählerstand zu speichern, wobei ich persönlich Sessions benutzen würde.

Edit: Bevor ichs untern Tisch fallen lasse. Du kannst es natürlich auch ganz klassisch über die URL ala manuell_inline.php?counter=1 aufrufen und dann mit $_GET['counter'] auslesen.
 
Manuelle Slideshow

Verschwunden aufgefunden.

Die muss doch nicht manuell sein. Für die mit ohne JS machst ein IFrame mit einer (X)HTML, die nur das Bild zeigt und nach ein paar Sekunden sich selbst aktualisiert über meta refresh.

IFrame: http://www.w3.org/TR/html401/present/frames.html#h-16.5
Meta: http://www.w3.org/TR/html401/struct/global.html#adef-http-equiv
Refresh speziell: http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung
(gut lesen, manche Browser machen zicken)
 
Danke es hat über die session super geklappt. Hatte mir schon sowas in der art vorgestellt.

Die Sache mit (X)html werd ich jedoch nicht außer acht lassen. Weiß du denn genauer mit welchen Browsern es welche Probleme gibt? Oder hast du dazu irgendwelche Informationen?
 
Nur das was bei den Links steht, insbesondere W3C:
Note. Some user agents support the use of META to refresh the current page after a specified number of seconds, with the option of replacing it by a different URI. Authors should not use this technique to forward users to different pages, as this makes the page inaccessible to some users. Instead, automatic page forwarding should be done using server-side redirects.
Entsprechendes ist auf selfHTML zu finden mit zusätzlichen Problemerläuterungen.
 
Zurück